基于C++的学生管理系统

一、 需求分析

1、某学校有本科生和研究生两类学生。

A. 本科生信息:学号、姓名、性别专业、年级、班级、高数成绩、英语成绩、C语言、总成绩、班级排名、年级排名其中:学号、姓名、性别专业、年级、班级、高数成绩、英语成绩、C语言成绩为输入项,总成绩是计算项,班级排名是总成绩在班内名次,年级排名是总成绩在同专业、同年级内名次

B. 研究生信息:学号、姓名、性别专业、年级、班级、课程综合成绩论文成绩、总成绩、班级排名、年级排名其中:学号、姓名、性别专业、年级、班级、课程综合成绩论文成绩为输入项,总成绩是计算项,班级排名是总成绩在班内名次,年级排名是总成绩在同专业、同年级内名次

说明:成绩基本信息:科目门数、科目成绩(动态数组或指针)。专业基本信息:专业编号、专业名称,学生必须归属于某个专业,学生与专业通过“专业编号”关联起来。班级基本信息:班级编号、班级名称、班级人数、专业编号,学生必须归属于某个班级,学生与班级通过“班级编号”关联起来,班级与专业通过“专业编号”关联起来。

2、学生总成绩计算方法。

A.本科生:总成绩=高数成绩+英语成绩+C语言成绩

B.研究生:总成绩=课程综合成绩+论文成绩;

请使用面向对象程序设计方法,开发一个学生成绩管理系统对学生成绩进行有效管理

二、 系统的功能要求

1. 专业管理:包括专业基本信息的添加、修改、删除、查询功能。学生必须归属于某个专业。

2. 班级管理:包括班级基本信息的添加、修改、删除、查询功能。学生必须归属于某个班级。

3. 添加功能:分本科生和研究生两类人员,实现下列添加功能。

A.本科生:能够添加学生信息,如果高数成绩、英语成绩、C语言成绩输入,则系统自动计算总成绩

B.研究生:能够添加学生信息,如果课程综合成绩论文成绩都输入,则系统自动计算总成绩。

4. 修改功能分本科生和研究生两类人员,实现下列修改功能。

A.本科生:根据学号来修改任意学生除学号外的信息。如果高数成绩、英语成绩、c语言成绩都存在,则系统自动计算总成绩。

B.研究生:根据学号来修改任意学生除学号外的信息。如果课程综合成绩论文成绩都存在,则系统自动计算总成绩

5. 删除功能分本科生和研究生两类人员,能够根据学号删除一个学生

6. 排名功能:分本科生和研究生两类人员,实现下列排名功能。

说明:排名包括班级排名和年级排名,排名规则按体育竞赛规则处理,若出现两个并列第1名,下个名次为第3名,依此类推。

A:班级排名:分本科生和研究生两类学生,计算每个学生总成绩在班级中的名次。

B:年级排名:分本科生和研究生两类学生,计算每个学生总成绩在本专业、本年级中的名次。

7. 查询功能:分本科生和研究生两类人员,实现下列查询功能。

1) 能够按班级显示本班全部学生信息

2) 能够根据学号或者姓名查询学生信息。

3) 能够在某个班级中查询某门课成绩不及格学生信息

8. 排序功能:分本科生和研究生两类人员,实现下列排序功能。

1) 所有学生信息按学号低到高排序显示。

2) 某个班学生信息按总成绩高到低排序显示。

9. 统计功能:分本科生和研究生两类人员,实现下列统计与显示功能。

1) 统计某班级某课程的平均成绩、最高成绩、最低成绩。如果学生该门课没有成绩,统计平均成绩时忽略该生。

2) 统计某班级某课程超过课程平均成绩的学生名单及人数。

3) 统计某班级某课程不及格学生名单及人数。

4) 统计某班级某课程不同等级的学生人等级标准大于等于90;良大于等于80且小于90:大于等于70且小于80及格:大于等于60且小于70;不及格:小于60

三、 系统的实现技术要求

1. 基本要求

(1) 按面向对象方式设计系统所需要的类。建议:成绩类、学生类、本科生类、研究生类、专业类、班级类。成绩类作为学生类的数据成员,本科生类、研究生类继承学生类。专业类与学生类通过“专业编号”绑定(关联)起来,班级类与学生类通过“班级编号”绑定(关联)起来,专业类与班级类通过“专业编号”绑定(关联)起来。年级不再单独设计类,作为学生类的一个简单数据成员。类间关系如下图所示。

(2) 必须用文件来存储学生信息:运行程序时,相应文件中读取学生信息、专业信息、班级信息到对应容器对象;退出程序时,将对应容器中信息保存到相应文件。本科生和研究生分成两个单独文件,专业和班级分两个文件存放

(3) 所有排序算法可采用STL模板中的sort模板函数实现,对类中容器类数据成员的访问必须采用迭代器iterator实现。

(4) 其他至少有两层菜单。

2. 扩展要求

(1) 实现按专业、班级进行组织的学生信息存储结构,即一个专业包含多个班级的组织结构。可按专业管理班级。

(2) 实现动态菜单功能,即对专业、班级进行“增、删、改”等管理操作。例如:当前专业有“计算机”,则专业管理菜单包括“管理计算机专业”,若增加“网络安全”,则相应管理菜单应增加“管理网络安全专业”选项。同样,当前班级有“2006级计算机专业计科1班”,则班级管理菜单包括“管理2006级计算机专业计科1班”,若增加“2006级计算机专业计科2班”,则相应管理菜单应增加“2006级计算机专业计科1班”选项。


完整代码下载地址:https://download.csdn.net/download/btbo_/10480138

(该系统已经通过海量数据去测试,基本排除所有的bug,初学者可以下载学习使用)

猜你喜欢

转载自blog.csdn.net/BTBO_/article/details/80867058