基于QT的智能饮料机终端库存监控系统(qt5.9.2 mingw53_32 + win10 + SeetaFaceEngine + opencv3.3)
项目实现
- 简介
- 项目要求
- 老师的要求
- 我的实现
- 实现细节
- 数据库端
- 用户端
- 服务端
- 程序使用流程
- 开启服务器,服务器自动监听8888端口,连接数据库
- 开启客户端,自动连接服务器
- 注册
- 用户登陆
- 密码登陆
- 人脸识别登陆
- 购买
- 充值
- 关闭贩卖机
- 服务器开始自动检测补货
- 服务器更改饮料信息
- 服务器更改设备信息
- 服务器查看日志信息
- 注销
- 换肤
- 异常使用
- 登陆异常
- 用户名或密码登陆异常
- 用户已经在线
- 扫脸登陆失败
- 服务器连接异常
- 购买异常
- 购买饮料数量为0
- 购买的饮料数量大于数据库数量
- 用户金钱不足
- 没有该商品
- 信息修改异常
- 存在的问题
- 如何运行
- 源代码
简介
学校组织实训,制作项目用的是qt,当然还是做一个管理系统。
项目要求
老师的要求
我的实现
功能:见下面详解
主要界面:
实现细节
数据库端
一共四个表:
用户信息表
饮料信息表和设备表
日志表
数据库使用的是QSQLITE。
用户端
服务端
功能一样的模块就不再解析了
程序使用流程
这个机器是纯语音提示的,因为没办法传视频就只能用文字来显示了。
大家可以把代码下载下来实际运行听听声音。
开启服务器,服务器自动监听8888端口,连接数据库
开场动画
语音提示:欢迎使用饮料自助系统
语音提示:开始监听 数据库已连接
开启客户端,自动连接服务器
开场动画
语音提示:欢迎使用饮料自助系统
缓冲界面
语音提示:尝试连接服务器 成功和服务器建立好连接
语音提示:有一个新的连接
语音提示:服务器已经连接,请登陆系统开始购物
注册
语音提示:请注册账号进行充值再购买
语音提示:注册成功
可以看到数据库里面加了一条用户记录,这里密码是加密的,后面代码讲解的时候会细说。
用户登陆
密码登陆
语音提示:登陆成功
人脸识别登陆
因为长得丑,就打码了。
语音提示:开始检测
语音提示:登陆成功
购买
选择饮料温度和贩卖机设备,对比自己的金钱进行购买。
语音提示:购买成功
不同的设备饮料可能不同偶
语音提示:切换成功
语音提示:刷新成功
充值
语音提示:充值使我强大
语音提示:充值成功
对应的金钱增加
关闭贩卖机
语音提醒:更新成功
语音提醒:该设备没有开启
注:这里有点bug,就是客户端需要重启才能达到这个效果,因为这里客户端没有刷新设备缓存。
这里我没有改因为我比较懒。。。
还有一个最大的原因最后会说明。
服务器开始自动检测补货
首先用管理员账号登陆
语音提示:开始自动检测饮料贩卖情况
在客户端购买饮料,让饮料数量变少,小于等于2
语音提示:购买成功
语音提示:进入管理员模式
语音提示:添加成功
饮料数量增加
服务器更改饮料信息
服务器更改设备信息
服务器查看日志信息
注销
语音提示:注销成功
换肤
效果
异常使用
登陆异常
用户名或密码登陆异常
语音提示:登陆失败
用户已经在线
语音提示:该用户正处于登陆状态,无法提示登陆多次
扫脸登陆失败
感觉暴露别人照片不好,就找了张胡歌的图片
语音提示:登陆失败
服务器连接异常
一开始先打开客户端 再打开服务器,就不会自动登陆。
语音提示:有一个新的连接
购买异常
购买饮料数量为0
语音提示:购买的饮料数量有问题
购买的饮料数量大于数据库数量
语音提示:饮料数量不足
用户金钱不足
语音提示:用户余额不足
没有该商品
语音提示:暂无商品
信息修改异常
语音提示:输入饮料价格不能小于0
存在的问题
- 如果数据库很大会占很多运行内存,因为数据库缓存是把所有的信息都加载进来的。
- 客户端有直接访问数据库,用户登出是通过服务器控制的,获取饮料,设备信息是通过服务器的。因为太懒就不想改了。应该要去掉客户端的数据库模块,改成访问服务端获取数据。
- 服务器宕机,这个会导致登陆的用户没有设置退出就结束程序了。应该要在服务器保存快照,下一次服务器打开的时候恢复数据。
- 没有添加管理员的功能,我感觉不能有这个功能,不知道对不对。
- 没有动态添加人脸识别图片和商品的功能,目前只能手动添加。因为个人比较懒,而且实训的时候琐事有点多就没有添加这个功能。实现的话应该是用tcp传图片文件,还有给技术问题,如何检测图片是否符合要求?给的图片太丑,放到客户端显示就更难看了。这里吐槽一下自己的ps技术,我自己都看不下去了?
- 无法连接多个客户端,因为服务器就声明了一个通信套接字的指针,多用户的话需要动态管理服务端的通信套接字,已经一个用户的登陆表。
- 饮料的状态应该使用状态模式动态添加,但是考虑到饮料的状态比较少,就没有抽象出基类。
- 通信模块使用自己定义的格式,以后换成json或者其他的
- 扫脸登陆应该采用用户名+人脸登陆才行,不然光用人脸登陆用户一多肯定就卡。
- 还有就是前面提到的bug,看到这里应该已经清楚了,如果实现了第二点就完美解决这个问题,如果不想实现的话就每次在购买之前查询一下设备有没有开机。
如何运行
网盘链接放在下面了
或者改一下源代码里面的路径也可以
这个例子里面的程序也是debug版本的,想直接运行要添加qt环境变量,相信大家都会这里我就不写了。
如果想要试一下人脸识别登陆的,要把自己的照片放在img文件夹里面,照片名字就是用户名名字,类型是jpg。在光线良好和人脸清晰的情况下识别率很高。
源代码
客户端:
服务端也差不多
因为这只是实训的一次小白的练手,所以就不会再改了v||
我最喜欢免费,所以就免费分享了。(主要是写的太烂了)
链接挂了请联系我。
项目链接:https://pan.baidu.com/s/1_bcdoQxzDhAVMVYW1waeOw
提取码:iq7u
基于QT的智能饮料机终端库存监控系统(qt5.9.2 mingw53_32 + win10 + SeetaFaceEngine + opencv3.3)相关推荐
- 毕业设计 基于stm32的智能快递仓库环境监控系统 - 物联网 嵌入式
本次设计的快递仓库的火灾报警系统通过主控单元将各个传感器的参数值采集回来,包括与消防安全相关的温度.湿度.烟雾等,主控制器. 数据采集回来之后通过无线的方式将数据上传到远端的上位机上,由于这些参数都是 ...
- 基于云平台的电力供电设备远程监控系统
摘要:基于云云平台的数据采集与分析系统,可有效提高企业在生产经营过程中的生产效率.随着信息技术不断发展,企业内部信息系统已逐步从传统封闭管理向智能化系统转变.基于云计算技术的供电设备远程监控系统可将现 ...
- 基于android的温室大棚监控管理信息系统研究,基于Android与GSM的温室大棚远程监控系统.pdf...
基于Android与GSM的温室大棚远程监控系统.pdf 江苏农业科学 2015 年第43卷第4期 - 397 - 韩 剑,莫德清.基于Android 与GSM的温室大棚远程监控系统[J].江苏农业科 ...
- srs流媒体服务器windows_基于SRS构建的直播平台的监控系统的搭建思路与实现方法...
市面直播平台百家争鸣,直播监控系统是判断一个直播平台是否完善的必要条件.文章简要介绍了笔者搭建的一套基于SRS的直播平台,并从设计思路.实现方法与实现过程等方面重点介绍了针对此直播平台建设的监控系统, ...
- 2个相同的 stm32 can通讯不成功_一文读懂,基于 STM32 和 CAN 总线的温度监控系统的设计方法...
1 系统总体方案概述 系统总体框图如图 1 所示,本系统采用主站+从站的结构,CAN 主站主要实现温度数据的存储以及 CAN 总线协议和串口协议之间的桥接,CAN 从站主要实现温度的采集.CAN 从站 ...
- 基于springboot的智能美食点餐配送系统
1.1 基于springboot的智能美食点餐配送系统 数据库及GUI工具: MySQL Server 5.7. NAVICAT15 数据库连接池: Druid连接池 Web容器: Tomcat 8. ...
- android jmf,基于JMF与Android的无线视频监控系统的设计与实现
摘要: 视频监控系统是一种防范能力很强的综合系统,是安防领域的重要组成部分.随着无线网络与流媒体传输技术的飞速发展,视频监控系统也朝着无线化,高清化,智能化的方向发展.针对这一需求,通过研究JAVA多 ...
- 基于SpringBoot+Bootstrap极简运维监控系统
真正的大师,永远都怀着一颗学徒的心! 一.项目简介 基于SpringBoot+Bootstrap极简运维监控系统 二.实现功能 支持cpu使用率 支持cpu温度 支持内存使用率 支持磁盘容量 支持磁盘 ...
- 智能电池巡检箱监控系统方案
蓄电池作为一种重要的储能设备,它可保证通讯设备及动力设备的不间断供电,广泛应用于电力变电站.电信机房.移动基站还是在UPS系统等领域.但如果不能妥善地管理和使用,很容易发生过充电.过放电及电池老化等现 ...
最新文章
- jquery-12 折叠面板如何实现(两种方法)
- 下载perl的mysql模块_安装用于操作MySQL的Perl模块
- 从哪些方面可以选出优质的香港服务器?
- JavaScript实现多项式哈希算法(附完整源码)
- BitmapUtil【缩放bitmap以及将bitmap保存成图片到SD卡中】
- SpringMVC快速入门-代码实现
- retext代码高亮_实例简介Markdown格式
- 强悍的命令 —— cp
- Camtasia混音教程
- 小程序模板template
- jQuery实现点击显示和隐藏内容
- BP神经网络处理iris数据集(Pytorch实现)
- 微小区2018年度物业缴费数据报告
- 方案分享丨基于海思Hi3519智能 IP 摄像机解决方案
- 网闸可以设置端口映射吗_路由器的外部端口和内部端口映射如何设置?
- 微信电子商务的B店战略和C店战术
- LeetCode第 764 题:最大加号标志(C++)
- 【GNN报告】ICT敖翔:图机器学习应对金融欺诈对抗攻击
- Linux操作环境变量 getenv函数、setenv函数、unsetenv函数使用
- 2021年中式烹调师(中级)报名考试及中式烹调师(中级)实操考试视频
热门文章
- Python制作快递查询系统
- 长春金融高等专科学校计算机系宿舍怎样,长春金融高等专科学校,寝室条件好的专科大学!...
- win7天翼live
- 【微机接口】可编程定时器/计数器8254
- python裂缝检测_python 裂缝识别 这是一个使用Python和PyQt5开发的一个计算机视觉辅助裂缝标注工具 - 下载 - 搜珍网...
- C#华氏温度和摄氏温度的相互专函源码片段
- linux 清理废弃进程,Linux 痕迹清理 隐藏进程
- 大数据开源框架之基于Spark的气象数据处理与分析
- 如何理解宋冬野安河桥里面的那句抱着盒子的姑娘,擦汗的男人?
- 【报告分享】如何角逐存量车市-易车研究院(附下载)