1、成绩管理系统设计成绩管理系统设计 - 1 - 1 1题目与要求题目与要求 1 1)问题提出问题提出 本人计划编写一个学生管理系统,主要管理学生基本信息及成绩信息。 2 2)本系统涉及的知识点)本系统涉及的知识点 结构、数组、循环、函数、分支、指针等。 3 3)功能要求)功能要求 对学生信息(包括学号、数学、英语、计算机、平均分)进行管理,包括学生成绩的 信息输入、输出、查询、删除、排序、统计、退出.每个教师都将各自班学生的成绩信 息进行记录,信息内容包含:(1)学生的学号(2)学生的姓名(3)学生的成绩员。 假设,教师现收集到了一个班学生的所有成绩信息,要求用 C 语言编写一个简单的成绩 管理
2、系统,可进行录入、查询、修改和浏览等功能。 对学生信息(包括学号、数学、英语、C 语言、平均分)进行管理,包括学生成绩的 信息输入、输出、查询、删除、排序、统计、退出. 完成以下功能: (1) 每一条记录包括一个学生的学号、姓名、3门课成绩 (2)、 成绩信息录入功能: (成绩信息用文件保存, 可以一次完成若干条记录的输入。 ) (3)、成绩信息显示浏览功能:完成全部学生记录的显示。 (4)、查询功能:完成按姓名查找学生记录,并显示。 (5)成绩信息的删除:按学号进行删除某学生的成绩. (6)、排序功能:按学生平均成绩进行排序。 (7)、应提供一个界面来调用各个功能,调用界面和各个功能的操作界
3、面应尽可能清 晰美观! 2 2功能设计功能设计 1)算法设计 1、输入初始的学生信息:输入信息包括学生的姓名、学号以及学生的成绩等相关信 息;可用函数 void input(STUDENT *data, int *len)来实现此操作。 2、 成绩输出模块: 输出学生的信息以及成绩 void output(STUDENT *data, int len): 通过学生的姓名来查看学生的相关成绩,同时也可以分别通过 caverage() 、 maverage() 、 eaverage() 和 comaverage() 来输出成绩的平均分数、 最高和最低分 数。 - 2 - 3、成绩查询模块:可用 v
4、oid find(STUDENT *data, int len) 来实现。找到就输 出此学生全部信息。 4、删除模块:用函数 void delete_item(STUDENT *data, int *len)来实现 5、排序模块:用函数 void sort(STUDENT *data, int len)来实现 6、统计功能能:用函数 void stat(STUDENT *data, int len) 来实现 7、退出系统:可用一个函数 exit()来实现,首先将信息保存到文件中,释放动态 创建的内存空间,再退出此程序。 2 2)画模块图)画模块图及流程图及流程图 3 3程序代码设计程序代码设计
5、 3.1 源程序 #include #include #include #define MAXN 35 #define MAX_NAME 256 结束 开始 输出菜单 根据菜单输入 n 的值选 择程序 输 入 退 出 输 出 保 存 查 找 排 序 统 计 插 入 删 除 - 3 - typedef struct student /学生信息 int no; char nameMAX_NAME; double english; double math; double Programming; double mark_ave; double mark_tot; STUDENT; /*-输入信息子程
6、序-*/ void input(STUDENT *data, int *len) int no; putchar(n); printf(“%sn“, “请输入新的记录,如果需要退出当前菜单请输入-1.“); printf(“%sn“, “格式:n 学号n“); printf(“%sn“, “姓名 英语 数学 C 语言“); putchar(n); printf(“如:n“); printf(“5n“); printf(“张海波 100 100 100n“); scanf(“%d“, while(no != -1) data*len.no = no; scanf(“%s %lf %lf %lf“, data*len.name, data*len.mark_ave=(data*len.english+data*len.math+data*len.Progr amming)/3.0; data*len.mark_tot=data*le