基于 QT(C++)+MySQL 实现学生信息管理系统【100010882】

您所在的位置:网站首页 如何利用公式根据学生学号填充班级 基于 QT(C++)+MySQL 实现学生信息管理系统【100010882】

基于 QT(C++)+MySQL 实现学生信息管理系统【100010882】

2023-05-19 22:58| 来源: 网络整理| 查看: 265

基于 Qt+MySQL 的学生信息管理系统

C++ 程序设计练习——学生信息管理系统,基于 Qt+MySQL

课程原要求如下:

具体系统设计如下:

学生信息管理系统采用 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

class 表:

主码为 classId

course 表:

主码为 cId

score 表:

其中 sid 和 cid 为外码

sid 参考 student 表的 sId 属性

cid 参考 course 表的 cId 属性

student 表:

主码为 sId

其中 class 为外码

class 参考 class 表的 classId 属性

student_course 表:

主码为 sId 和 cId

其中 sId 和 cId 为外码

sId 参考 student 表的 sId 属性

cId 参考 course 表的 cId 属性

登录流程如下图

学生端功能:

学生信息:查看个人基本信息、修改个人密码班级信息:查看个人所属班级基本情况成绩信息:查询个人成绩(可实现模糊查询)课程信息:查看个人所选所有课程、查询其他课程基本信息(可实现模糊查询)

管理员端功能:

学生信息管理:查询学生基本信息、查看所有学生基本信息、修改学生基本信息、删除学生基本信息、重置学生密码、添加学生信息班级信息管理:查询班级基本信息、查看所有班级信息、修改班级信息、删除班级信息、添加班级信息课程信息管理:查询课程基本信息、查看所有课程信息、修改课程信息、删除课程信息、添加课程信息成绩信息管理:查询成绩信息(包括根据学号查找和根据课程号查找)、查看所有成绩信息、添加成绩信息、修改成绩信息(仅可修改成绩)、学生个人成绩统计、课程成绩统计选课信息管理:查询选课信息(包括根据学号查找和根据课程号查找)、查看所有选课信息、添加选课信息、删除选课信息

在学生端和管理员端的使用中,只要有表的界面,都添加了导出为 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 头文件,具体实现较为简单,不再赘述

界面截图:

所有界面和对应的一些实现类如下:

下面仅展示部分界面:

登录界面:

登录界面失败三次后呈现验证码:

登录失败五次后冻结该用户:

管理员端主界面:

学生信息管理:

查看所有学生信息:

导出学生信息为 Excel 效果图(Excel 是测试时导出的,和上图有不同):

成绩信息管理:

学生成绩统计:

学生端主界面

个人基本信息界面:

查询个人成绩:

课程信息:

查询其它课程:

♻️ 资源

在这里插入图片描述

大小: 14.7MB ➡️ 资源下载:https://download.csdn.net/download/s1t16/87472191 注:如当前文章或代码侵犯了您的权益,请私信作者删除!



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3