基于 Qt 设计的课堂考勤系统 (采用 RDS for MySQL 云数据库 )
1.前言
当前设计的这个考勤系统主要应用于高校课堂考勤,目前高校管理系统里有很多成功的案例,排课系统,教务管理系统、学生管理系统等等,这些系统的应用直接提高了师生的工作效率,下发课堂作业,检查课设报告等等,都可以直接在网上操作,非常方便。
目前设计的这个基于 RFID 的考勤系统,采用 C++作为编程语言,UI 界面采用 QT 设计,RFID 刷卡插件使用 C++开发,RFID 刷卡设备是 USB 接口协议,数据库采用华为云的 MySQL(RDS for MySQL),方便不同课堂、设备上运行软件可以同步考勤数据。
当前考勤系统包含的功能模块如下:
【1】登录模块:用户名和密码登录,本设计有三类用户名,包括系统管理员,教师和学生;【2】学生信息管理模块:学生基本信息的增加,删除,修改,查询;【3】考勤管理模块:进行学生签到和签退;【4】射频卡管理模块:利用射频卡对学生的考勤情况进行记录;【5】查询模块:管理员,教师,学生都可以对自己权限范围内考勤结果进行查询;【6】请假查询模块:通过 ID 查询学生请假情况;【7】数据备份模块:系统数据定期进行保存,但系统服务器出现故障时提供帮助。
该系统有 3 个用户权限,学生操作页面、管理员操作页面、教师操作页面。学生操作页面,可以查看自己的考勤记录;教师操作页面可以查看自己班级学生的考勤记录,添加考勤的学生;管理员可以查看所有人的考勤记录,支持所有功能。
当前系统里存储数据采用的华为云的在线云数据库 MySQL,MySQL 数据库是目前最受欢迎的开源数据库之一,其性能卓越,搭配 LAMP(Linux + Apache + MySQL + Perl/PHP/Python),成为 WEB 开发的高效解决方案。 华为云的 RDS for MySQL 数据库拥有稳定可靠、安全运行、弹性伸缩、轻松管理、经济实用等特点。
上面提到的云数据库 RDS(Relational Database Service,简称 RDS)是一种基于云计算平台的稳定可靠、弹性伸缩、便捷管理的在线云数据库服务。目前华为云数据库 RDS 支持以下引擎:
云数据库 RDS 服务具有完善的性能监控体系和多重安全防护措施,并提供了专业的数据库管理平台, 让用户能够在云上轻松的进行设置和扩展云数据库。通过云数据库 RDS 服务的管理控制台,用户无需编程就可以执行所有必需任务,简化运营流程,减少日常运维工作量,从而专注于开发应用和业务发展。
2. 部署(RDS for MySQL)云数据库
在华为云官网可以免费领取一个月的(RDS for MySQL)云数据库使用权,可以利用这个免费的机会,充分了解、体验(RDS for MySQL)数据库的使用效果。
注意: 数据库购买部署之后如果需要外网访问,需要绑定公网 IP 地址,如果之前购买过公网 IP,在购买数据库时注意选择相同的区域。
官网地址:https://activity.huaweicloud.com/free_test/index.html
向下翻,找到 MySQL 数据库,点击抢购。
根据引导页面填充信息,设置数据库登录密码。
最后完成支付。
查看订单详情。
购买成功后,接下来进入控制台管理页面。
稍等片刻就会处理完成。
然后在订单详情页面左上角点击控制台。
展开服务列表,找到云数据库 RDS。
也可以在资源管理里找到自己的实例。
选择自己购买的区域。
选择正确区域后,就能看到自己订单页面了。
进去之后可以看查看数据库信息。
在内网页面上可以直接登录数据库。
输入账号密码后,点击测试连接。
测量连接成功后,再点击登录。
登录之后,接下来就可以新建数据库测试了。 数据库创建后就可以建表、填充数据,正常的进行数据库的事务操作了。
3. 绑定公网 IP 地址
3.1 购买公网 IP 地址
为了方便数据库支持外网连接,需要给数据库实例绑定公网 IP 地址。
没有公网 IP 地址就点击右上角买一个。
如果是试用期测试的话,可以先买一个月的。
公网 IP 购买成功之后就可以看到处于未绑定状态,接下来绑定即可。
在刚才的页面继续绑定。
公网 IP 地址绑定成功。
3.2 添加入口规则
根据自己的需要开放指定的端口、IP 地址范围,这样可以有效的限制网络攻击。
4. 考勤软件连接数据库与 RFID 读卡器
4.1 连接数据库
软件是采用 QT 设计的,在 QT 里要连接 MySQL 数据库还有点麻烦,需要自己编辑 MQYSQL 的库才行。
主要是 Qt 5 在高版本中取消了对 MySQL 数据库的默认支持,主要是因为随着商业版的 MySQL 推出,MySQL 已经不能算是一个完全开源的数据库了,Qt 默认只会给完全开源的数据库提供支持。
要使用数据库,需要在 QT 的.pro 工程文件里加上QT += sql
。
下面是 QT 里连接 MQYSQL 主要代码:
如果没有编译设置好 mySQL 的库文件,编译的时候会报错。
系统运行的效果:
4.2 RFID 刷卡代码
采用的 RFID 读卡器是 USB 接口,厂家提供了 DLL 动态库,直接连接,调用 DLL 库就可以完成调用。 型号是: RF-EYE 系列非接触式 IC 卡读写器。
所以自己的代码就很简单了,要读取卡号,读写数据,调用对应的 DLL 库接口就行了。
4.3 编译 MySQL 驱动
由于 Qt 5 在高版本中取消了对 MySQL 数据库的默认支持,要在 QT 里继续使用 mysql 需要自己编译库。
源码下载地址: https://download.qt.io/archive/qt/5.12/5.12.6/submodules/
我使用的是 QT5.12.6,如果是使用了其他版本 QT,下载对应的源码即可。如果在安装 QT 时,默认安装了 QT 源码,就不用单独下载源码了。
下载后解压,打开下面这个工程:
工程路径: qtbase-everywhere-src-5.12.6\src\plugins\sqldrivers\mysql
windows 电脑上也得先提前安装 MySQL,版本选择 5.7 下载链接:https://dev.mysql.com/downloads/
在这个页面显示的是最新版本,如果想下载历史版本,点击页面上的archives
。
历史版本下载地址:https://downloads.mysql.com/archives/installer/
双击进行安装。
或者下载mysql-connector-c-6.1.11-win32
也行的。https://downloads.mysql.com/archives/c-c/(这个库根据自己需要的版本下载)。
我这里分别下载了 X86_64bit 和 X86_32bit,下载下来解压后的文件如下。(截图截的是 32 位的,64 位是一样的流程)
接下来就打开刚才下载的 QT 源码工程,mysql 工程。
然后修改源码mysql.pro
文件。
这个路径要根据自己的实际路径进行修改,如果要编译 32 位的就设置 32 位的路径,64 位就设置 64 位的路径。
总之要记住:
接在修改源码sqldriverbase.pri
文件。
修改之后保存代码,点击左下角的锤子按钮,构建工程。
我先编译 32 位,这里构建工程的编译器选择 32 位的。
构建成功之后,在源码目录下会生成一个编译的目录。
然后按下键盘上的 windows 图片按键,弹出左边的窗口,找到 QT 对应的编译器。(自己构建源码时用的什么编译器,这里打开的就是对应的编译器窗口)
打开之后,执行 cd 命令,进入到刚才构建生成的工程目录下。
执行编译、安装命令即可。
执行安装命令过程中,可以看到需要的文件已经生成,并且拷贝到对应的编译器目录下去了。
然后打开 QT 安装目录下对应编译器的目录。
可以看到,对应的qsqlmysql.dll
插件文件已经生成了。64 位的编译器也是一样的操作流程,生成对应的插件。
最后再把 MySQL 安装目录下的libmysql.dll
文件拷贝到 QT 对应编译器的bin
目录下即可。
搞定之后,在 QT 代码目录下执行代码。
在控制台会输出:
可以看到,里面已经包含了 QMYSQL 数据库的支持了。
5. 软件设计流程与思路
5.1 需求分析
(1)使用范围此系统主要给高校的教师使用;上课时,学生进入教室拿出学生卡自己进行打开考勤,可以在系统里申请请假以及查看在校期间所有的上课出勤信息。
考虑到整个学校学生众多,个人隐私问题,为此每个新学生需要由管理员或自己的班主任教师登录进入学生信息管理页面进行增加学生的信息操作,进行添加学生的相关信息;再由学生自己到登录界面进行学生注册操作,完善自己的其他信息,当注册成功提示后,在进入到登陆界面填入注册时的账号和密码就可以登录成功,最后才可以使用学生操作页面的功能模块等操作。教师则需要通过指定的教师账号和密码登录到教师管理后台,才能使用教师的操作页面的功能模块等。系统管理员则需要通过指定的管理员账号、密码登录到管理员后台,才能使用管理员操作页面的功能模块等。三者的操作页面相互独立,都有权限限制。
(2)5.2 学生权限学生可以在密码信息管理模块对自己的账号修改密码操作;还可以在个人信息管理模块进行修改关于自己其他的各项信息,学号、电话、紧急联系人、宿舍编号等;可在学生信息管理的模块查看自己所有的信息,可以刷卡快速读取卡号信息,匹配到指定的学生;可在建议信息管理模块来增加、查询自己或者别人的建议信息;可在成绩信息管理模块来查询自己的成绩信息;可在考勤签到提醒管理模块来查看自己之前未签到,迟到的相关信息以及查询系统对自己的评价记录;如果需进行退出系统,可点击右上角的 XX 退出系统模块。如果学生忘记密码,可以在软件的登陆界面点击找回密码按钮,再填写相关信息就可找回密码,或者管理员帮助修改密码。
(3)教师与管理员权限教师可以在密码信息管理模块的页面上进行修改密码操作;然后可在个人的信息管理模块页面来修改关于自己的各项信息,比如:联系方式,姓名,职务等等;可以在注册教师管理模块页面查看自己注册的信息,可以查询本班级注册的其他学生;可在学生信息管理模块进行增加、查询学生的信息操作;可在成绩管理模块进行增加、查询学生成绩信息的操作;可在班费信息管理模块进行增加、查询班级活动费用的信息操作;可在通知公告管理模块页面进行增加、查询发布的通知公告操作……如果需要进行退出系统操作,可以点击退出系统模块,也可点击右上角的退出按钮。管理员是当前系统的最高权限者,在教师可进行的操作模块上还可以进行增加、查询教师用户的操作。
5.2 系统功能模块图
功能页面主要展示首页、考勤管理模块、查询模块、请假查询模块、用户登录、管理登录界面。新的学生在登录界面点击注册按钮注册个人信息。学生、管理员与教师需要通过各自登陆界面进入操作平台。
5.3 学生登录平台
(1)学生注册流程图在学生注册页面填写注册信息,必须由学生填写相关的注册信息,反之则无法进行登录操作。需要填写的注册信息包括姓名、班级、专业、学号、联系方式、登录密码和密保邮箱等。
(2)学生登录流程图学生填写登录信息的模块流程,学生账号需要与注册的时候填为一致,登录密码与自己完成注册时输入的密码一致
(3) 学生找回密码流程图学生填写找回密码信息的模块,需要输入登录账号和密保邮箱(与学生注册时所输入的密保邮箱一致)。
6.总结
这篇文章介绍了 RDS for MySQL,部署,到实际使用的整个流程,利用一个课堂考勤系统软件来介绍数据库的一个实际应用场景。云数据库 RDS for MySQL 拥有即开即用、稳定可靠、安全运行、弹性伸缩、轻松管理、经济实用等特点。架构成熟稳定,支持流行应用程序,适用于多领域多行业。华为云提供的关系型数据库服务具有完善的性能监控体系和多重安全防护措施,并提供了专业的数据库管理平台, 让用户能够在云中轻松的进行设置和扩展关系型数据库。通过华为云关系型数据库服务的管理控制台,用户几乎可以执行所有必需任务而无需编程,简化运营流程,减少日常运维工作量,从而专注于开发应用和业务发展。
版权声明: 本文为 InfoQ 作者【DS小龙哥】的原创文章。
原文链接:【http://xie.infoq.cn/article/ac2de495dfd2f00910438c25c】。文章转载请联系作者。
评论