1、 课程设计报告课程设计报告 题题 目:目:学生成绩学生成绩管理系统管理系统 设设 计计 者者: 专业班级:专业班级: 学学 号:号: 指导教师:指导教师: 所属院系:所属院系: 设计需求说明设计需求说明: 一、职工工资管理系统功能设计要求 1. 输入记录:将每一个学生的姓名、 学号等数据作为一个记录。 该软件能建立一个新的数据 文件或给已建立好的数据文件增加记录。 2. 显示记录:根据用户提供的记录或者根据学生姓名显示一个或几个学生的成绩信息。 3. 修改记录:可以对数据文件的任意记录的数据进行修改并在修改前后对记录内容进行显 示。 4查找记录:可以对数据文件的任意记录的数据进行查找并在查找前
2、后对记录内容进行显 示。 5. 删除记录:可删除数据文件中的任一记录。 6恢复记录:能恢复被删除的任一记录。 7. 统计: (A) 计算各个学生成绩, (B)统计学生成绩的优良中差的比例 (C)按字符表格形式打印全部学生信息表 8保存数据文件功能。 9打开数据文件功能。 经过逐层逐块、不断细化、求精过程,编写程序并进行测试、验证,可以逐个模块地分开调 试,并通过文件包含或用工程文件的形式进行逐步联合调试。程序运行结果如下表所示(记 录个数至少 8 个)。 实验基本步骤:实验基本步骤: 工作程序分析工作程序分析 输入:输入学生基本信息 通过结构体的数组来进行操作,先头定义数组 em,先输入需要输
3、入的学 生人数 m, 然后进入循环, 每次循环将各项输入结构体数组对应项的对应成员中, 当循环次数等于人数时,完成全部学生的资料输入,退出循环。同时将数据储存 在 ckerk_list 文件中并自动保存至磁盘。 注:如首次使用,尚未输入数据,请先输入数据。输入的数据将自动保存。 再次选择输入功能时原数据将被覆盖。 保存:将输入的资料存入磁盘 读取文件 clerk_list,若文件不存在,打印“打开失败并退出。若存在,则 通过循环语句将输入到结构体数组的数据逐个输入磁盘。 读取:读取磁盘中的资料 打开文件 clerk_list ,若文件不存在,打印“打开失败”并退出。若存在, 读取文件中的数据,
4、并返回学生人数。 显示:显示学生资料 先通过读取函数的返回值确定学生人数 m,再通过循环将学生资料逐个打 印,当循环次数达到 m时退出循环。其中总成绩由程序计算 删除:删除某学生的资料 打印学生资料并提示输入要删除职工的姓名, 输入后若该学生不存在则打印 “查无此人” ;若存在,则显示该学生资料并询问是否确定删除。若确定,则删 除。删除时,通过对比输入的姓名与资料中的姓名做对比从而确定要删除的项 i, 从第 i项开始,将后一项的各成员的值赋给前一项各对应的成员,完成对第 i 项 的删除。 添加:添加新的学生资料而不覆盖原有资料 打印原有学生资料,询问要添加的学生人数并询问是否确定添加。逐个 逐
5、项输入学生信息,之后程序计算其总成绩。完成后显示“添加成功” ,打印新 的学生资料并自动保存。添加的方法为:定义一个相同类型的结构体数组,将原 有项复制后增添新的项,并保存新的数组。 查找:按 ID 好查询与按姓名查找学生资料 根据提示输入要查询的 ID 号或姓名, 程序通过循环语句将输入的数字与 以保存的结构体数组中的数据对比, 若相同, 则打印 “已找到” 及该学生的资料; 当循环次数等于人数时结束循环, 若至结束循环时也没有找到相同的, 则打印 “查 无此人” 。 修改:修改特定学生的特定资料 打印员工信息并提示输入要修改资料的学生姓名。按提示确定要修改, 确定要修改的项目,输入要修改成
6、的结果并将该结果赋给对应项的对应学生,完 成对特定学生特定项目的修改。 统计 通过循环对结构体数组中的每一项经行统计 源代码:源代码: #include #include #include #include #define N 100 struct clerk int num; char name20; int jbgz; int zwgz; int jt; int yb; int gjj; int total; em100; void menu(); void input(); void save(int); void display(); void del(); void add(); void search(); void search_num(); void search_name(); void modify(); void sta(); void start()