# studentInfoManager
C++程序设计练习——学生信息管理系统,基于Qt+MySQL
## 课程原要求如下:
## ![image](media/128875292-89e6fea9-c352-40d6-8975-3033489d3c49.png)
具体系统设计如下:
学生信息管理系统采用qt 5.9.8进行编写,借助mysql存储数据
mysql版本为8.0.23 MySQL Community Server
数据库管理工具采用MySQL Workbench 8.0 CE
将所有需要的数据分为6个表,分别是:
admin表:管理员信息表,存取管理员的id、管理员账号、管理员密码
class表:班级信息表,存储班级id、班级名、班级专业、班级人数、班主任
course表:课程信息表,存储课程id、课程名、任课教师、开课学期、上课地点、上课时间、学分数
score表:成绩信息表,存储学生id、课程id、课程名、分数、任课教师
student表:学生信息表,存储学生id、学生姓名、性别、年龄、专业、所属班级id、籍贯、联系方式、学生密码、学生状态
student_course表:学生选课表,存储选课学生id和对应的选取课程的课程id
## 各表结构如下:
admin表:
主码为aid
![](media/55264fc9ce1febaa38f7406e1603fe0e.png)
class表:
主码为classId
![](media/a8b969de356d5402ab1b91aea1ee76c0.png)
course表:
主码为cId
![](media/9f2f12102cc19842fdef12464368af69.png)
score表:
![](media/f0dcfb93fa139172c363a02d1c10eaa1.png)
其中sid和cid为外码
sid参考student表的sId属性
cid参考course表的cId属性
student表:
主码为sId
![](media/af8f35ef5b8a8a966044eea1387f7429.png)
其中class为外码
class参考class表的classId属性
student_course表:
主码为sId和cId
![](media/1457c7a1e929678e4cda2d5ea9f28bdf.png)
其中sId和cId为外码
sId参考student表的sId属性
cId参考course表的cId属性
登录流程如下图
![](media/162fc94789c2b29d591e60c63694aebf.jpg)
学生端功能:
1. 学生信息:查看个人基本信息、修改个人密码
2. 班级信息:查看个人所属班级基本情况
3. 成绩信息:查询个人成绩(可实现模糊查询)
4. 课程信息:查看个人所选所有课程、查询其他课程基本信息(可实现模糊查询)
管理员端功能:
1. 学生信息管理:
2. 查询学生基本信息、查看所有学生基本信息、修改学生基本信息、删除学生基本信息、重置学生密码、添加学生信息
3. 班级信息管理:
4. 查询班级基本信息、查看所有班级信息、修改班级信息、删除班级信息、添加班级信息
5. 课程信息管理:
6. 查询课程基本信息、查看所有课程信息、修改课程信息、删除课程信息、添加课程信息
7. 成绩信息管理:
8. 查询成绩信息(包括根据学号查找和根据课程号查找)、查看所有成绩信息、添加成绩信息、修改成绩信息(仅可修改成绩)、学生个人成绩统计、课程成绩统计
9. 选课信息管理:
10. 查询选课信息(包括根据学号查找和根据课程号查找)、查看所有选课信息、添加选课信息、删除选课信息
在学生端和管理员端的使用中,只要有表的界面,都添加了导出为Excel的功能,点击后即可将当前显示的表的信息导出到excel
功能实现简单描述:
对于各界面之间如何传值,可以设置一个global文件,把需要跨界面/全局使用的一些变量和函数写在global中,如数据库连接所用的端口、用户名、密码、连接函数等
系统的核心功能增删改查大部分都是简单的mysql语句,比如查找用的基本都是单表内的select,更新或修改用update,删除就是delete,稍微复杂一点的是统计,部分用到了MySQL的函数,比如sum、count、max、min等,统计选课人数、选课数等用到了两个表的连接操作,但都不难,都是一些很基础的mysql语句
稍微特殊的是如下三个功能:
第一个是导出为excel,用到了QAxObject类,并且用到了Excel.Application,具体实现过程是参考百度的教程
\+
自己改写部分代码,实现效果不能说很完美,因为即使数据很少,导出时还是会有明显的卡顿,其次是导出的单元格格式设置有问题,如学号11920192203642会显示为1.19202E+13
第二个是验证码,只需要在登录界面的cpp中设置登陆次数变量,当达到3时启动paintEvent事件,根据随机生成的思维字母以及根据时间随机变化的颜色来绘制验证码,同时重写鼠标单击函数,当单击验证码图片区域时就更新执行repaint来更新验证码
第三个是密码加密,因为考虑到隐私安全性问题,将所有用户的密码采用md5码加密的方式存储在数据库中,所有涉及到密码的操作都要经过加密,实现采用QCryptographicHash头文件,具体实现较为简单,不再赘述
## 界面截图:
所有界面和对应的一些实现类如下:
![](media/ae7b9e29f555d6d870838e02afc1a36b.png)
![](media/82e93463dbcf48195abe367895723ce7.png)
下面仅展示部分界面:
登录界面:
![](media/57389bb0f8fdf0ef2c2e8c4ae61b7da8.png)
登录界面失败三次后呈现验证码:
![](media/d558b2c12d947e71b3819f6d262bfc04.png)
登录失败五次后冻结该用户:
![](media/18e664f5b63acf301577c40d80d7c734.png)
管理员端主界面:
![](media/8831360e20f6ef19669f9de7de36edf6.png)
学生信息管理:
![](media/18554316e7da07673131975bc2c51ef4.png)
查看所有学生信息:
![](media/53e5258d71071129f67dac0ef850c56b.png)
导出学生信息为Excel效果图(excel是测试时导出的,和上图有不同):
![](media/70b575c6e68dfbbea94c0132ddcd44c8.png)
成绩信息管理:
![](media/7bfdc0959edf48c8ee3b521395fa8116.png)
学生成绩统计:
![](media/08c369185d8e46e73446e7c227a32cb8.png)
学生端主界面
![](media/376bcf8d8ea1fac32434ac436399f92c.png)
个人基本信息界面:
![](media/c0c49c03827fcba081d6be839760577b.png)
查询个人成绩:
![](media/af09e354224b410d5aa03d58a0a4b864.png)
课程信息:
![](media/328d8a06c0c746ca35fd5d154065e9eb.png)
查询其它课程:
![](media/15ab99de9bcd8bb014d1b7d9b2561f2f.png)
因篇幅限制,以上仅展示部分界面
## 未完善的功能:
1. 管理员在重置密码、删除用户,或者用户本人在修改面时,向用户发送邮件通知,因为发邮件要用到smtp和pop3,windows版的qt少了一些类,实现起来比较麻烦,如果强行实现效果也比较差,发送两封邮件后就报错了,所以删除了这个功能。如果是linux系统下的qt实现起来就比较容易
2. 数据库大部分数据类型都是VARCHAR,可能会有数据类型的隐患
3. 所有信息输入的地方都没有对格式和数据类型进行限制,比如密码的长度、某些字段不能包含某些字符等,如果加上正则表达式去限制格式,整体效果会更好
4. 考虑到权限的问题,学生端的功能比较少,基本仅限于简单的查找,实际中应该加入学生与管理员的交互,比如学生可以自主修改某些数据,只是需要管理员的审核通过后,修改才能生效
5. 登录界面的验证码是在三次密码错误后才显示,但颜色刷新是借助timer来实现的,timer从登录界面加载就开始计时,可能会占用更多资源。目前的验证码仅实现了随机挑选四个大小写字母,实际应该加入一些数字
没有合适的资源?快使用搜索试试~ 我知道了~
C++程序设计实践项目——学生信息管理系统,基于Qt+MySQL.zip
共105个文件
cpp:26个
h:26个
png:23个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 79 浏览量
2023-07-08
08:25:14
上传
评论
收藏 14.77MB ZIP 举报
温馨提示
本资源中的源码都是经过本地编译过可运行的,下载后按照文档配置好环境就可以运行。资源项目的难度比较适中,内容都是经过助教老师审定过的,应该能够满足学习、使用需求,如果有需要的话可以放心下载使用。有任何问题也可以随时私信博主,博主会第一时间给您解答!!! 本资源中的源码都是经过本地编译过可运行的,下载后按照文档配置好环境就可以运行。资源项目的难度比较适中,内容都是经过助教老师审定过的,应该能够满足学习、使用需求,如果有需要的话可以放心下载使用。有任何问题也可以随时私信博主,博主会第一时间给您解答!!! 本资源中的源码都是经过本地编译过可运行的,下载后按照文档配置好环境就可以运行。资源项目的难度比较适中,内容都是经过助教老师审定过的,应该能够满足学习、使用需求,如果有需要的话可以放心下载使用。有任何问题也可以随时私信博主,博主会第一时间给您解答!!!
资源推荐
资源详情
资源评论
收起资源包目录
C++程序设计实践项目——学生信息管理系统,基于Qt+MySQL.zip (105个子文件)
grademanage.cpp 10KB
selectcoursemanage.cpp 9KB
stuinfomanage.cpp 8KB
mainwindow.cpp 7KB
coursemanage.cpp 5KB
exporttable.cpp 5KB
classinfomanage.cpp 4KB
gradestaticsbystu.cpp 3KB
gradestaticsbycourse.cpp 3KB
resetpwd.cpp 3KB
addnewgrade.cpp 3KB
mycourse.cpp 3KB
addstuinfo.cpp 2KB
searchcourse.cpp 2KB
allcourseinfo.cpp 2KB
addnewcourse.cpp 2KB
myscore.cpp 2KB
allclassinfo.cpp 2KB
addclass.cpp 2KB
myinfo.cpp 1KB
myclass.cpp 1KB
all_stu_info.cpp 1KB
manager.cpp 1KB
studentform.cpp 1KB
global.cpp 704B
main.cpp 172B
如果建库脚本无法使用,可以看这个.docx 340KB
selectcoursemanage.h 917B
grademanage.h 909B
mainwindow.h 856B
stuinfomanage.h 597B
classinfomanage.h 568B
manager.h 556B
resetpwd.h 554B
coursemanage.h 549B
studentform.h 533B
addnewgrade.h 493B
gradestaticsbycourse.h 458B
all_stu_info.h 442B
global.h 442B
gradestaticsbystu.h 433B
searchcourse.h 428B
addstuinfo.h 416B
allcourseinfo.h 402B
mycourse.h 400B
allclassinfo.h 394B
addnewcourse.h 393B
myscore.h 392B
addclass.h 362B
myinfo.h 348B
myclass.h 315B
exporttable.h 251B
database.h 68B
162fc94789c2b29d591e60c63694aebf.jpg 76KB
readme.md 7KB
70b575c6e68dfbbea94c0132ddcd44c8.png 142KB
128875292-89e6fea9-c352-40d6-8975-3033489d3c49.png 125KB
7bfdc0959edf48c8ee3b521395fa8116.png 37KB
53e5258d71071129f67dac0ef850c56b.png 34KB
af8f35ef5b8a8a966044eea1387f7429.png 33KB
328d8a06c0c746ca35fd5d154065e9eb.png 26KB
9f2f12102cc19842fdef12464368af69.png 25KB
18e664f5b63acf301577c40d80d7c734.png 22KB
f0dcfb93fa139172c363a02d1c10eaa1.png 21KB
ae7b9e29f555d6d870838e02afc1a36b.png 20KB
a8b969de356d5402ab1b91aea1ee76c0.png 20KB
82e93463dbcf48195abe367895723ce7.png 19KB
18554316e7da07673131975bc2c51ef4.png 16KB
15ab99de9bcd8bb014d1b7d9b2561f2f.png 15KB
55264fc9ce1febaa38f7406e1603fe0e.png 15KB
d558b2c12d947e71b3819f6d262bfc04.png 15KB
1457c7a1e929678e4cda2d5ea9f28bdf.png 14KB
57389bb0f8fdf0ef2c2e8c4ae61b7da8.png 14KB
c0c49c03827fcba081d6be839760577b.png 13KB
08c369185d8e46e73446e7c227a32cb8.png 12KB
af09e354224b410d5aa03d58a0a4b864.png 10KB
8831360e20f6ef19669f9de7de36edf6.png 10KB
376bcf8d8ea1fac32434ac436399f92c.png 8KB
学生信息管理系统.pptx 13.76MB
studentManager.pro 3KB
Dump20210728.sql 8KB
stuinfomanage.ui 6KB
coursemanage.ui 6KB
searchcourse.ui 5KB
grademanage.ui 5KB
mainwindow.ui 5KB
gradestaticsbycourse.ui 5KB
selectcoursemanage.ui 5KB
classinfomanage.ui 5KB
gradestaticsbystu.ui 5KB
addstuinfo.ui 4KB
myinfo.ui 4KB
addnewcourse.ui 4KB
myscore.ui 4KB
addclass.ui 3KB
resetpwd.ui 3KB
addnewgrade.ui 3KB
myclass.ui 3KB
mycourse.ui 3KB
manager.ui 3KB
共 105 条
- 1
- 2
资源评论
白话机器学习
- 粉丝: 1w+
- 资源: 7671
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功