任务2 学生成绩信息管理系统

系列文章
任务2 学生成绩信息管理系统
某班级学生C语言第一次正考的成绩存于数据文件score.txt中 , 记录了学生学号、姓名和考试成绩 , bk.txt文件中记录了补考学生的学号、姓名和补考成绩 , 编写程序实现以下要求:
(1)具有对学生成绩数据的的增、删(按学号)、查(按学号)、改(按学号)功能 。
(2)对该班级按成绩降序排序并统计成绩平均分及每个分数段(90-100、80-90、70-80、60-70、60分以下)的人数 , 结果写入到.dat中 。
(3)再根据补考成绩修改原成绩 , 修改成绩后仍按成绩降序写在.dat的后面 。成绩修改原则:
①补考成绩大于等于60 , 原成绩以60分记;②补考成绩小于60 , 取两次成绩中最高值记 。
文章目录二、课题任务三、总体设计 四、小组成员及分工五、 测试 六、源代码获取
一、实践目的与要求 1、目的
通过此次实践环节主要达到以下目的:
(1)进一步理解和运用结构化程序设计的思想和方法 , 学会根据具体问题选择合理的计算机存储结构实现数据的存储 , 构造较有效率的算法;
(2)学会算法描述的方法 , 并编制具有结构清晰、合理和易读性的小型实用程序;
(3)并会设计测试方案 , 完成程序的测试 , 能撰写出该程序的技术报告 , 为文档整理工作打下一个初步的基础;
(4)培养小组成员间互相学习 , 取长补短 , 协同工作的能力 。
2、要求
(1)模块化程序设计 , 锯齿型书写格式 , 代码要有足够的注释;
(2)根据课题中规定的要求实现既定目标;
(3)撰写格式排版规范、结构完整的技术文档 。
二、课题任务
(题目、内容及主要功能描述)
学生成绩信息管理系统
某班级学生C语言第一次正考的成绩存于数据文件score.txt中 , 记录了学生学号、姓名和考试成绩 , bk.txt文件中记录了补考学生的学号、姓名和补考成绩 , 编写程序实现以下要求:
(1)具有对学生成绩数据的的增、删(按学号)、查(按学号)、改(按学号)功能 。
(2)对该班级按成绩降序排序并统计成绩平均分及每个分数段(90-100、80-90、70-80、60-70、60分以下)的人数 , 结果写入到.dat中 。

任务2 学生成绩信息管理系统

文章插图
(3)再根据补考成绩修改原成绩 , 修改成绩后仍按成绩降序写在.dat的后面 。成绩修改原则:
①补考成绩大于等于60 , 原成绩以60分记;②补考成绩小于60 , 取两次成绩中最高值记 。
三、总体设计 1.存储结构及数据类型定义
(采用了什么存储结构、被处理数据定义的数据类型 , 数据类型定义中要有注释说明)
typedef struct {int id; //学生学号char name[20];//学生姓名float score;//学生考试成绩} Student; //学生结构体
2.程序结构
(程序整体的模块结构图)
3.所实现的功能函数
(每个功能对应的函数名、函数形参及返回值说明)
void show_menu(); //显示菜单 函数名称是 show_menu 函数形参是空 函数返回值是voidint read_students(char* file_name, Student students[]);// 读取文件中的学生成绩信息到students数组 函数名称是 read_students 函数形参是char* file_name, Student students[] 函数返回值是int void write_students(char* file_name, Student students[], int count);// 把学生信息写入文件 函数名称是 write_students 函数形参是char* file_name, Student students[], int count 函数返回值是voidvoid sort_and_output_result(char* result_file, Student students[], int count);// 统计学生成绩并排名 函数名称是 sort_and_output_result 函数形参是char* result_file, Student students[], int count 函数返回值是voidvoid add_student(Student students[], int* count);// 添加学生信息 函数名称是add_student 函数形参是Student students[], int* count 函数返回值是voidvoid delete_student(Student students[], int* count);// 删除学生信息 函数名称是 delete_student 函数形参是Student students[], int* count 函数返回值是voidStudent* find_student_by_id(Student students[], int count, int id);// 根据学生学号查找学生 函数名称是find_student_by_id函数形参是Student students[], int count, int id 函数返回值是Student*void modify_student_score(Student students[], int count, char* file_name);// /修改学生补考成绩 函数名称是modify_student_score 函数形参是Student students[], int count, char* file_name 函数返回值是voidvoid modify_student_info(Student students[], int count);// 修改学生信息(姓名或成绩) 函数名称是modify_student_info 函数形参是Student students[], int count 函数返回值是voidvoid show_all_students(Student students[], int count);// 显示所有学生信息 函数名称是 show_all_students 函数形参是Student students[], int count 函数返回值是void