程序设计学生选修课程系统设计与实现
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
通达学院
程序设计
(2017/2018学年第1学期)
题目:学生选修课程系统设计与实现
专业计算机科学于技术(嵌入式)
学生姓名
班级学号
指导教师徐小龙
指导单位计算机学院·计算机科学与技术系
日期 2017年10月27日
南京邮电大学通达学院
程序设计
指导教师成绩评定表
一、课题内容和要求
学生选修课程系统设计与实现
假定有n门课程,每门课程有课程编号,课程名称,课程性质,总学时,授课学时,实验或上机学时,学分,开课学期等信息,学生可按要求(如总学分不得少于60)自由选课。试设计一选修课程系统,使之能提供以下功能:(1)系统以菜单方式工作
(2)课程信息录入功能(课程信息用文件保存)--输入
(3)课程信息浏览功能--输出
(4)查询功能:按学分查询、按课程性质查询
(5)学生可以选修课程
二、需求分析
本系统的功能模块如图所示
1.使系统以菜单方式工作:输出个菜单,用于显示以从文件中加载的
课程信息和若干个可选的功能选项。根据客户输入的选项来运行不同的功能,运行不同的函数。
2.录入课程信息:使用户可以将课程信息输入文件
3.浏览课程信息:使用户可以按照学分或者课程性质浏览文件中的课程信
息
4.进入选课操作:输入学号,姓名进行选课
5.统计选课情况:从选课文件中统计信息
三、概要设计
(1)主函数的设计
在主函数中按照提示输入相对应数字进入相应的操作,同时,在输入序号
数字错误时,会自动提示“输入错误,请重新输入”,然后,重新输入一
个数字,继续进行相应的操作。
(注:输入的数字要在0~5之内)
算法设计如下:
S1: 从键盘上输入一个0~5的数字,进入相应的操作
S2: 如果选择序号1,则进入课程信息录入操作
S3: 如果选择序号2,则进入浏览课程信息操作
S4: 如果选择序号3,则进入查询课程信息操作
S5: 如果选择序号4,则进入学生选择课程操作
S6: 如果选择序号5,则进入统计选课情况操作
S7: 如果选择序号0,则退出学生选课管理系统
S8: 如果选择除0~5的其他操作,则提示“输入错误,请重新输入”
然后返回S1
具体流程图如下:
(2)录入函数的设计
对于录入函数,就是在D盘建立一个“course.txt”文件,然后通过scanf 从键盘上输入课程信息,再通过fprintf将输入的信息保存在文件中,关闭文件。
算法设计如下:
S1: 在D盘建立“course.txt”文件
S2: 提示让学生输入选课门数
S3: 从键盘上输入课程信息并保存
S4: 当指针指向文件尾部,返回S3
具体流程图如下:
(3)浏览函数的设计
对于浏览函数,通过fscanf读取文件中的课程信息,然后再通过
printf将信息输出
算法设计如下:
S1: 打开“course.txt”文件
S2: 读取文件中的信息
S3: 输出信息
S4: 当指针未指向文件尾部,返回S2
具体流程图如下:
(4)查询函数的设计
对于查询函数,输入1或2选择查询方式,如果不是,则重新输入。
对于不同方式的查询,如果输入的方式与文件中有相符的,则输出查
询结果
算法设计如下:
S1: 选择查询方式
S2: 如果方式是学分查询,输入想查询的学分,打开文件,未指向文
件尾部,如果文件中存在,则输出查询结果
S3: 如果方式是课程性质查询,输入想查询的课程性质,打开文件,未指向文件尾部,读取文件信息,如果文件中存在,则输出查询结果
S4: 如果方式数字不存在,则退出查询
具体流程图如下:
(5)选课函数的设计
对于选课函数,先从键盘上输入学号,姓名,课程编号,课程名称,打开“course.txt”文件,如果,课程存在,则进入下一步,建立“student.txt”文件,将选课信息保存在文件中,退出。
算法设计如下:
S1: 输入选课信息,包括学号,姓名,课程编号,课程名称
S2: 打开文件“course.txt”
S3: 如果课程存在,则进行下一步
S4: 建立“student.txt”文件
S5: 保存选课信息
具体流程图如下:
(6)统计函数的设计
对于统计函数,打开“student.txt”文件,读取文件中的选课信息,输出文件中的选课信息,计数,关闭文件
算法设计如下:
S1: 打开“student.txt”文件
S2: 当未指向文件尾部,读取文件中的选课信息
S3: 输出选课信息同时计数
S4: 输出人数
S5: 结束
具体流程图如下:
四、详细设计
1.主函数:构造void main(),实现调用各个功能模块:
学生选课系统执行主流程如图所示,先执行主函数中显示菜单函数,通过循环和按键操作来执行相应的操作。按键的有效键值为0~5之间的任意数值,其他按键为无效输入,会提示“输入错误,请重新输入”,同时,再次用scanf创造再次输入的机会。各个按键的执行功能为:
“1”:录入选修课课程信,调用函数luru();
“2”:浏览录入的课程信息,调用函数liulan();
“3”:查询课程信息,调用函数chaxun();
“4”:进入选课操作,调用函数chaxun();
“5”:统计选课信息,调用函数tongji();