课程设计。。。。
人脸考勤系统
需求分析
需求
1.实现企业日常人脸打卡需求
2.管理员要可以管理相关数据
3.可以移植到相关嵌入式设备
…..需求主要是这些,还可以让ai拓展一点
实现
1.介于可移植性这个需求,选用Qt框架,Qt框架跨平台性特比好,可以适配Windows、Linux、Arm各种操作系统
2.选用Sqlite数据库、Sqlite数据库轻量、无服务器、易于使用和配置
3.协议使用自定义的Tcp协议、可以定制化的完成功能
……..略
程序流程图
技术
语言:C++
技术栈:Qt(GUI框架)、OpenCV(图像处理)、Seetaface(人脸识别库)
数据库:Sqlite
网络协议:Tcp(自定义报文)
亮点:
1.服务器用多线程处理客户端的图片数据、响应也是异步的、防止ui卡顿
2.对于Tcp的粘包问题,也安全的处理了、防止数据粘连、漏缺数据
3.数据库操作使用了Qt自带的Orm、减少直接的SQL操作、代码可读性更强、书写更简便
代码
设计模式
1.单例模式:对于一些常用的工具库,采用单例模式、方便及时调用
2.订阅者发布者模式:界面传参都以此模式设计
代码架构
仓储模式:把代码分成三层、仓储层、服务层、接口层
仓储层:直接与数据库交互
服务层:不与数据库交互、操作仓储层提供的服务器、主要编写业务逻辑
接口层:调用服务层、对外提供接口、让前端程序调用
界面设计模式
mvvm:让前端的界面(view)和逻辑(viewmodel)分层,耦合性低
测试
黑盒测试(网上查查)