(一)学校现状分析
1、某学校有本科生和研究生两类学生,学生信息包括基本资料数据和成绩数据两部分。
A.本科生:基本资料数据包括学号、姓名、性别、专业、班级,学号自动生成,其他全部是输入项;成绩数据包括高数成绩、英语成绩、C语言成绩、总成绩、班级排名、校级排名,其中:高数成绩、英语成绩、C语言成绩为输入项,总成绩、班级排名、校级排名是计算项,班级排名是总成绩在班内的名次,校级排名是总成绩在校内的名次。
B.研究生:基本资料数据包括学号、姓名、性别、专业、班级、研究方向、导师,学号自动生成,其他全部是输入项;成绩数据包括课程综合成绩、论文成绩、总成绩、班级排名、校级排名,其中:课程综合成绩、论文成绩为输入项,总成绩、班级排名、校级排名是计算项,班级排名是总成绩在班内的名次,校级排名是总成绩在校内的名次。
2、现在需要开发一个学生成绩管理系统对学生成绩进行有效管理。
(二)系统的功能要求
1、数据维护管理:要求对学生的基本资料数据和成绩数据分开管理。基本资料数据的维护管理功能包括添加(批量、单个)、修改、删除、查询等;成绩数据的维护管理功能包括输入(批量、单个)、修改、删除、查询等。
A. 基本资料数据的维护管理
(1) 添加:(批量、单个)添加学生基本资料数据。本科生的基本资料数据包括学号、姓名、性别、专业、班级,学号自动生成,其他全部是输入项。研究生的基本资料数据包括学号、姓名、性别、专业、班级、研究方向、导师,学号自动生成,其他全部是输入项
(2) 修改:根据学号来修改任意学生的除学号外的其他基本资料数据。
(3) 删除:根据学号删除一个学生。
(4) 查询:根据学号查询一个学生的基本资料数据。
B. 成绩数据的维护管理
(1) 输入:(批量、单个)输入学生成绩数据。成绩数据根据学生类型的不同而有区别,输入的相关数据也应不同。注意:总成绩、班级排名、校级排名是计算项,不能输入。
(2) 修改:根据学号来修改任意学生的相关成绩数据(注意:不同类别学生相关数据不同)。
(3) 删除:根据学号删除一个学生(不能删除,只需将相关数据项设置成-1)。
(4) 查询:根据学号查询一个学生的成绩数据。
(5) 计算:批量计算所有学生的总成绩、班级排名、校级排名。注意,只有各项数据都为有效数据时(-1为无效数据),才能计算。
2、排名功能
A:班级排名:分本科生和研究生两类学生,计算每个学生总成绩在班级中的名次。
B:校级排名:分本科生和研究生两类学生,计算每个学生总成绩在全校中的名次。
说明:排名规则按体育竞赛规则,若出现两个并列第1名,下个名次为第3名,依此类推。
3、排序功能:分本科生和研究生两类人员,实现下列排序功能。
1)所有学生信息按总成绩从高到低排序并显示。
2)某个班学生信息按总成绩从高到低排序并显示。
4、查询功能:分本科生和研究生两类人员,实现下列查询功能。
1)分页显示全部学生的信息。分页功能:每页显示10条学生的信息,有上一页、下一页、首页和最后一页的功能。
2)能够按班级显示本班全部学生信息。注意:无需分页显示。
3)能够根据学号或者姓名查询学生信息。
4)能够在某个班级中查询某门课成绩不及格学生信息。注意:无需分页显示。
5、统计功能:分本科生和研究生两类人员,实现下列统计功能。
1) 统计并显示某门课每个班的平均成绩。如果学生该门课没有成绩,则统计时忽略该生。
2)在某个班中统计并显示某门课程不同等级的学生人数。等级标准:优—成绩大于等于90;良—成绩大于等于80且小于90;中:成绩大于等于70且小于80;及格:成绩大于等于60且小于70;不及格:成绩小于60。
(三)系统的实现技术要求
1.学生用结构体表示,本科生和研究生分别用两个链表来存储表示。
2.必须用文件来存储学生信息。
A.建立本科生和研究生两个文件,分别存放两类学生的信息。
B. 开始运行程序时,从文件中读取学生信息链入到两个不同的链表。
C. 退出程序时将学生信息保存到不同的文件。
D. 主菜单有一个菜单项能够将学生信息保存到文件。
3.数据约束:
1)学号:整型、不能重复、从1开始依次递增、由软件自动计算产生,不能修改。
2)性别:男和女,必须使用枚举类型。
3)各种成绩:整型,取值范围为0-100。-1表示未有此项成绩。
4)其他:至少有两层菜单。
想看的在我资源下载即可
大一C语言大作业_学生成绩管理系统-C文档类资源-CSDN下载