C++课程成绩管理与分析系统[2023-01-07]
C++实习指导书
编写:潘林 修订:邓吉秋
一、实习目的
学生通过此次实习, 应达到如下要求:
- 熟练使用一种 C++开发环境,包括 IDE 与编译器;掌握 C++程序的编写
过程与调试; - 加深对 C++基本理论的理解,编程时不再纠结于 C++的语法;克服编程时
的畏难情绪; - 熟悉貌似复杂系统从无到有的开发过程,具备初步系统分析、功能设计的
能力。
二、实习任务
《课程成绩管理与分析系统》的设计与开发。
三、系统需求
采用基于对象的程序设计方法,设计一个课程成绩管理与分析的类,系统功
能的实现均在类中。
源码
https://pan.baidu.com/s/1pq1Nwwo0hlc_J84F93HM4A?pwd=1111
3.1 数据
本次程序开发实践会提供一个文件 StudentScore.dat,供编程使用,包含课程
的名称、编号、开课单位、授课老师、选课人数,以及各学生信息(含学号、姓
名、性别、班级名称、平时成绩-作业、平时成绩-实验、平时成绩-报告、考试成
绩),具体如图 1 所示。
图 1 StudentScore.dat 文件构成
3.2 系统功能
- 主界面
展示系统包含的功能选项,选择相应的子功能模块执行“读入课程成绩、浏
览学生成绩、查询学生成绩、修改学生成绩、补录学生成绩、删除学生成绩、保
存修改成绩、统计课程成绩、保存统计数据、退出操作系统” 等操作。 - 读入课程成绩
① 支持文件输入的方式,即从 StudentScore.dat 文件中读入课程信息和各学
生成绩信息。
② 支持控制台输入的方式,逐项输入课程信息和各学生成绩信息(单人完成
时,可选选项)。
注:可在数据读入的过程中计算学生的最终成绩,其中各成绩分项均为百分
制,平时成绩-作业、平时成绩-实验、平时成绩-报告、考试成绩分别占比 20%、
15%、5%、60%。 - 浏览学生成绩
该子功能模块可以在控制台上展示当前系统中存入的课程信息和各学生成
绩信息,注意成绩中应包含一栏是学生的最终成绩(其他子功能模块类似,不再
赘述)。 - 查询学生成绩
该子功能模块支持按学号、姓名(单人完成时,可选选项)、性别(单人完成
时,可选选项)、班级(单人完成时,可选选项)进行成绩查询,将查询结果在
控制台上进行展示,如果没有查询到应输出提示信息。 - 修改学生成绩
该子功能模块支持根据学号对读入的学生信息进行修改,如果不存在该学号
学生,输出提示信息,如果存在,则可修改其平时成绩和考试成绩。
注(可选选项):当存在该学号学生时,应输出学生的当前信息,并展示可进
行修改的选项,支持修改学生的学号、姓名、性别、班级名称、平时成绩、考试
成绩,选择不同选项,进行相应信息的修改,每修改一次,输出修改后的学生信
息,直到完成退出。 - 补录学生成绩
该子功能模块支持添加一个学生的信息和各分项成绩,在控制台中根据提示
逐项进行输入。 - 删除学生成绩
该子功能模块支持按学号、姓名(可选选项)、性别(可选选项)、班级(可
选选项)删除存储的学生成绩,如果不存在该学生,控制台输出提示信息,如果
存在,控制台输出被删除学生的信息。 - 保存修改成绩(可选选项)
如果发生过修改、补录、删除学生成绩,该子功能模块支持文件输出当前的
课程信息和学生信息及各分项成绩(注:格式同 StudentScore.dat 文件完全相同,
即输出的文件能够被系统重新读取)。 - 统计课程成绩
该子功能模块支持统计与分析全部学生的课程成绩,包括最终课程成绩的最
高得分、最低得分、平均得分、优良率(≥80 分同学所占比率)、及格率(≥60
分同学所占比率)、各分数段(0-9、10-19、20-29……80-89、90-100)人数及所
占比例,也可按班级(可选选项)、性别(可选选项)对部分学生进行课程成绩
的统计与分析,该子功能模块还支持按最终成绩对全部学生进行排名,以上所有
统计信息统计完成后输出到控制台进行展示。 - 保存统计数据
该子功能模块支持将课程成绩统计与分析结果输出到文件中。 - 退出操作系统
选择该选项时,退出操作系统。
3.3 系统稳健性(可选选项) - 如果没有进行过“读入课程成绩”操作,其他功能选项是不能执行的。
- “读入课程成绩”过程中,对各成绩分项检查,不能出现负数或者大于 100 分
情况,如果有该情况发生,这名学生的信息不录入到系统。 - “读入课程成绩”过程中,进行查重操作,如果一个学生的学号在系统里面已
经存在(即输入文件中有重复的学号,或者控制台输入时已录入过该学号的学生),
这名学生的信息不能再次录入到系统。 - “读入课程成绩”过程中,每读入一个学生信息,要判断录入学生人数有没有
超过系统预设的最大人数(程序中可定义一个符号常量设定最大人数),如果超
过,后面学生的信息不再记录。 - “补录学生成绩”操作,要判断补录学生的学号是否已存在,如果已存在,这
名学生的信息不能再次录入到系统,此外还要判断补录后是否超过系统预设的最
大人数,如果超过,补录学生的信息不再记录。 - “保存修改成绩”操作,要判断有没有进行过学生成绩删除/补录/修改,如果
没有进行过,该功能选项不能执行,并给出提示。 - “保存统计数据”操作,要判断有没有进行过“统计课程成绩”操作,如果没
有进行过,该功能选项不能执行,并给出提示。
3.4 部分功能界面(示例) - 主界面
- 读入课程成绩
- 浏览学生成绩
- 查询学生成绩
- 修改学生成绩
- 补录学生成绩
- 删除学生成绩
- 保存修改成绩(单人完成时,可选选项)
- 统计课程成绩
- 保存统计数据
- 退出操作系统
四、 实习要求
4.1 基本要求
本实习采用教师指导,学生自学,单独编程,实现《课程成绩管理与分析系
统》。 - 数据管理使用文本文件形式保存。
- 程序要求运行正确无错误,界面美观、可操作性强、稳定性好。
4.2 考核方式及评分标准 - 程序演示(小计 50%)
程序的正确性:40%
程序的可读性:5%
界面的友好性:5% - 答辩:15%
- 现场编程:15%
- 课程实践报告:10%
- 工作态度:10%
注:实现了可选选项,成绩适当上浮;实习成绩优秀者必须完成一定数量的
可选选项。
4.3 报告模板(见附件)
4.4 成果提交 - 实习报告与实习日志每人一份,先提交实习报告电子版、实习日志照片版,
开学后提交纸质版,未提交报告或实习日志的同学不给分。 - 实习报告电子版、实习日志照片版和系统程序打包,按照指导老师的要求
提交。 - 提交时间暂定为在实习结束后两天内,可能根据实际情况适当后延。
程序截屏
- 主菜单
-
读入课程成绩
-
浏览学生成绩
-
按最终成绩排序
-
查询学生成绩
-
修改学生成绩
-
统计课程成绩