1、 课程设计任务书课程设计任务书 学 院 信息科学与工程学院 专 业 计算机科学与技术 学生姓名 班级学号 课程设计题目 统计学生成绩 实践教学要求与任务实践教学要求与任务: : 要求编写一个“Student”类及用来存取文件的 save()和 load()函数,使用函数及运算符 重载技术完成如下操作: (1)计算每个学生的平均成绩,将数据存入文件 stud.dat 中并验证是否正确地存入了文件。 (2)要求对“”运算符进行重载。 (3)把学生姓名和平均成绩抽取出来,建立一个简明文件 stud_mean.dat,并验证是否正确地存入了。 (4)从文件 stud.dat 按如下格式输出大于等于平均
2、成绩的学生信息: 学号 姓名 算术 语文 平均 (5)将两门功课成绩都不及格的学生信息从文件中删除并另外存入文件 bad.dat 中。 (6)编写能检索文 件中某个学生信息的子程序。如无此学生,输出“未查到”信息。 (7)使用多文件编程和菜单操作。 2 总体设计总体设计 2.1 2.1 总体功能框图总体功能框图 图图 2-1 总体功能框图总体功能框图 统计学生成绩 增增 加加 原原 始始 记记 录录 显显 示示 各各 种种 文文 件件 保保 存存 原原 始始 文文 件件 读读 取取 原原 始始 文文 件件 删删 除除 原原 始始 记记 录录 建建 立立 简简 明明 文文 件件 均均 不不 及及
3、 格格 文文 件件 寻寻 找找 原原 始始 记记 录录 结结 束束 程程 序序 运运 行行 2.2 2.2 类的设计说明类的设计说明 设计一个菜单,通过菜单选择实现相应的操作,对于输入的原始信息,使用链表存储 它们,这样做的好处是,可以随时增加内容,也容易将两门功课不及格的学生从文件中删 除。为学生设计一个类,单独设计完成这个这个文件读写的成员函数。 使用结构数组作为学生信息简表和两门不及格的学生的存储器,由它们和文件建立读 写关系,需要显示它们时,现将文件读入内存,然后再显示。需要显示输出大于等于平均 成绩的学生信息时,则直接从内存链表中筛选。当然,需要显示原始信息时,也通过直接 显示链表信
4、息的方法实现。这四种数据的显示问题均通过一个成员函数来实现。 为了操作方便,原始数据可以单独存取.修改和查询。 2.3 2.3 主要算法流程图主要算法流程图 图图 2-2 算法流程图算法流程图 输入学生成绩并保存 计算平均成绩 是否及格? 输出成绩 Yes 删除增加新文件 结束 No 开始 增加原始记录 图图 2-3 算法流程图算法流程图 - 开始 输入数据 查找 是否找到? 输出数据 输出“没有记录” No Yes 结束 3 程序清单及注释程序清单及注释 Header Files Cpp9.h #if !defined(CPP9_H) #define CPP9_H #include /对文件
5、操作 文件输入输出 #include /标准库头文件 定义杂项函数及内存分配函数 #include /定义输入输出函数 #include /字符串处理 #include /数据输入输出 #define ASK(p) do p = new Student; if (p = NULL) cout ( istream /重载“运算符函数声明 ; #endif Source Files Cpp9.cpp #include “cpp9.h“ int Student:count=0; /声明静态成员记录计数变量 /* *构造函数 */ Student:Student() /定义构造函数 next=NULL; name0=0; no0= ; math=0; chi=0; ave=0.0; /* *析构函数 */ Student:Student() /定义析构函数 if (next !=NULL) delete next; /缺省析构函数体为空 void main() /定义主函数 Stu