# 基于QT实现的学生成绩管理系统
# 1.系统需求分析
学生成绩管理系统记录了学生大一的各科成绩及每门课程的成绩,它包括:学
期、姓名、班级(汉字)、学号、科目、学分、分数,试设计学生成绩管理系统,使之能提供以下功能:
- **录入、修改学生的各科的成绩信息**:从键盘输入数据(提示:为避免重复从键盘输入数据,测试时可将数据存储在文件中,利用输入重定向功能读入),输入格式为:学期 姓名 班级 学号 科目 学分 分数。每行一条记录。并在输入不合法记录时报错。若该信息已存在则覆盖原信息。系统根据分数得到该信息对应的评级、学分绩及是否挂科。
- 例如:大一上学期 王世杰 无七六 2016010539 工程制图 2 87
- 此时系统得到该信息评级为 B+,学分绩为 3.3,未挂科
- **查询某个学生某学期或整个学年各门课的成绩**:按照分数降序排列,相同的课程按学分降序排列,并提供该课程的评级和学分绩。同时给出该时间段平均学分绩
- **统计某课程所有学生总成绩情况**,按照分数(总学分绩)降序排列,相同的按学号升序排列
- **查询某课程所有学生成绩**,按照分数(总学分绩)降序排列,相同的按学号升序排列
- **统计学生挂科数并按降序排列**,相同的按姓名升序排列
- **系统以菜单方式工作**。(所谓菜单指用户可以自由选择所要执行的功能。学生可以通过以上功能录入信息、修改信息、查询信息、整理统计出所要了解的信息,除了要实现上述的基本功能之外,本系统还应该在细节上下工夫,使用户使用方便)
# 2.总体设计
大一学生成绩管理系统包含五个大的功能,分别是:录入、修改学生成绩,查询某学生成绩,查询某课程所有学生成绩,查询所有学生总成绩情况,查询挂科情况。每个功能对应一个界面,每个界面均有操作提示,并可返回之前的界面。学生的成绩信息主要包含学期、姓名、班级(汉字)、学号、科目、学分、分数,以及根据分数转换得到的学分绩、评级和是否挂科。信息存储基于文件操作。
打开系统首先是进入欢迎界面,打出欢迎使用的字样。在欢迎界面,系统会自动根据存储信息的文件统计文件中的信息条数,创建录入信息类对象数组来存放最新版本的信息并将其写入文件。同时制作所有学生的 studentGrade 类对象数组。
紧接着进入主界面,有 6 个选项,分别是进入对应 5 个功能的界面及结束界面。
在录入、修改学生成绩界面(page1),根据系统提示一次性输完一整条信息。若输入信息有误,如学期不正确(不为大一上学期或大一下学期),则报错,提示重新输入。系统根据信息的学期、姓名、科目信息判断是否为新信息,若为新信息则覆盖原信息。在退出该界面时,更新文件并统计文件中的信息数,创建录入信息类对象数组来存放最新版本的信息。同时制作所有学生的 studentGrade 类对象数组。
在查询某学生成绩界面(page2),用户首先输入要修改的学生学号,再选择要查询的学期。如果系统中没有该学生的相关信息,则系统会给相关提示。如果系统中有该学生的相关信息则按照分数降序排列,相同的课程按学分降序排列,并提供该课程的评级和学分绩。
在查询某课程所有学生成绩情况界面(page3),用户先输入要查询的学期和课程名,系统检索判断是否存在该课程。若不存在则提示系统中无此课程。若存在显示该课程所有学生成绩,按分数降序排列,分数相同则按学号升序排列。
在查询所有学生总成绩情况界面(page4),用户先根据提示选择查询的学期。显示该学期所有学生成绩,按平均学分绩降序排列,相同则按学号升序排列。
在查询挂科情况界面(page5),用户先根据提示选择查询的学期。显示该学期所有出现挂科情况的同学的挂科学分和挂科数目,按挂科数降序排列。相同按挂科学分降序排列。再相同按学号升序排列。
在结束界面(page6),系统会自动清空所有动态内存、关闭文件,同时打出感谢使用本系统的字样,希望给用户最好的体验。
大一学生成绩管理系统中功能模块图:
![](http://www.writebug.com/myres/static/uploads/2021/10/19/ac01a331e67d943f128b69f4dd26e74e.writebug)
# 3.详细设计
大一学生成绩管理系统中**五个类的类层次图**为:
![](http://www.writebug.com/myres/static/uploads/2021/10/19/eb1989b89e6a024239550a7e1de16d3d.writebug)
大一学生成绩管理系统中各功能模块的实现:
![](http://www.writebug.com/myres/static/uploads/2021/10/19/1a5f0e0e7ba0785862c6adf43a3f7308.writebug)
**界面 1:录入、修改学生的成绩 **
![](http://www.writebug.com/myres/static/uploads/2021/10/19/9b28ca13b97efd5aea1b0d8dcf08b97b.writebug)
**界面 2:查询某学生成绩 **
![](http://www.writebug.com/myres/static/uploads/2021/10/19/86e97d912a03f62eb8e19a0d823c988e.writebug)
**界面 3:查询某课程所有学生成绩 **
![](http://www.writebug.com/myres/static/uploads/2021/10/19/bddb1e32a9c9913c2f0d18e3ee4e5a4e.writebug)
**界面 4:查询所有学生总成绩 **
![](http://www.writebug.com/myres/static/uploads/2021/10/19/09fe8f386b5c546ba7dd6054abbe2ab0.writebug)
**界面 5:查询挂科情况 **
![](http://www.writebug.com/myres/static/uploads/2021/10/19/4d52505821867b5190c89eaa97ff1bce.writebug)
**欢迎界面 **
![](http://www.writebug.com/myres/static/uploads/2021/10/19/b3c8d94369a9f36876c840a981feaaee.writebug)
**结束界面**
![](http://www.writebug.com/myres/static/uploads/2021/10/19/960fafb4006b8f18d5ed37d88bb39347.writebug)
大一学生成绩管理系统中**五个类的 UML 图**为:
![](http://www.writebug.com/myres/static/uploads/2021/10/19/60e7e420201fa729fbb6925f1ae514eb.writebug)
# 4.系统调试
程序编写完成后,我进行了调试。调试过程中,出现了以下三个主要问题:
- 以姓名为关键词不能对重名现象进行很好的结局。编 一开始我才去以姓名为关键字进行搜索,在室友的提醒下,我将程序改为用学号为关键词进行搜索,解决了这一问题
- 系统应对错误输入的能力严重不足。最初版本的程序对输入没有任何检测,经常会出现原本应输入汉字或汉字的地方我输入一堆字母,系统没有任何提示,并将错误输入写入了文件中,导致在检索、排序的时候以及显示所有学生成绩的时候,出现重大问题。于是我在所有需要输入的地方加入了检测功能,一旦输入不合要求就出现提示并重新回到输入界面
- 系统应对大量误操作时会崩溃。作为开发者我对程序较为了解,输入等操作比较合法,也比较舒缓。当我把系统交给我室友检测时,他在短时间内随便按下键盘,这就导致在主界面短时间内出现大量误操作。当时我将 update 部分放在了进入主界面时执行,而主界面出现误操作后会重新进入主界面,这就意味着如果主界面短时间出现大量误操作,就需要短时间内执行多次 update,而 update 部分需要执行扫描整个文件、排序、 重新写入文件、建立 studentGrade 对象动态数组等多个步骤,执行需要时间相对较长。 这导致系统无法在短时间内处理多次 update,所以系统会崩溃。由于 update 函数无法更 改,我就尝试从其他角度解决这个问题。我想到 update 函数负责更新,而只有在信息发 生变化的时
没有合适的资源?快使用搜索试试~ 我知道了~
精选_基于QT实现的学生成绩管理系统_源码打包
共43个文件
cpp:13个
h:12个
ui:6个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 33 浏览量
2022-03-10
19:34:15
上传
评论 1
收藏 1.57MB ZIP 举报
温馨提示
基于QT实现的学生成绩管理系统
资源推荐
资源详情
资源评论
收起资源包目录
17677702167554443.zip (43个子文件)
achievement-management-system
src
基于QT实现的学生成绩管理系统.pdf 1.52MB
source
course.h 571B
background.jpg 75KB
page4.ui 4KB
page5.cpp 6KB
info.h 903B
page5.ui 4KB
page2.ui 4KB
proj.rc 42B
grade.txt 2KB
page3.cpp 3KB
page1.cpp 4KB
GradeManageSystem.pro 1KB
app.ico 200KB
main.cpp 169B
grade.cpp 2KB
course.cpp 131B
mainctrl.cpp 5KB
rc.qrc 153B
page2.cpp 7KB
page3.ui 4KB
icon1.jpg 42KB
info.cpp 880B
page4.cpp 4KB
class.h 3KB
page2.h 333B
student_grade.cpp 2KB
page1.h 285B
page5.h 454B
GradeManageSystem.pro.user 23KB
grade.h 666B
page1.ui 7KB
student_grade.h 1KB
main_page.ui 4KB
student.h 533B
mian_page.cpp 5KB
page4.h 454B
main_page.h 446B
page3.h 286B
student.cpp 463B
GMS_UML.png 106KB
LICENSE 1KB
README.md 14KB
共 43 条
- 1
资源评论
工具盒子
- 粉丝: 60
- 资源: 1313
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功