当前位置: 首页 > backend >正文

课程设计。。。。

人脸考勤系统

需求分析

需求

1.实现企业日常人脸打卡需求

2.管理员要可以管理相关数据

3.可以移植到相关嵌入式设备

…..需求主要是这些,还可以让ai拓展一点

实现

1.介于可移植性这个需求,选用Qt框架,Qt框架跨平台性特比好,可以适配Windows、Linux、Arm各种操作系统

2.选用Sqlite数据库、Sqlite数据库轻量、无服务器、易于使用和配置

3.协议使用自定义的Tcp协议、可以定制化的完成功能

……..略

程序流程图

QQ图片20250509133007

技术

语言:C++

技术栈:Qt(GUI框架)、OpenCV(图像处理)、Seetaface(人脸识别库)

数据库:Sqlite

网络协议:Tcp(自定义报文)

亮点:

1.服务器用多线程处理客户端的图片数据、响应也是异步的、防止ui卡顿

2.对于Tcp的粘包问题,也安全的处理了、防止数据粘连、漏缺数据

3.数据库操作使用了Qt自带的Orm、减少直接的SQL操作、代码可读性更强、书写更简便

代码

设计模式

1.单例模式:对于一些常用的工具库,采用单例模式、方便及时调用

2.订阅者发布者模式:界面传参都以此模式设计

代码架构

仓储模式:把代码分成三层、仓储层、服务层、接口层

仓储层:直接与数据库交互

服务层:不与数据库交互、操作仓储层提供的服务器、主要编写业务逻辑

接口层:调用服务层、对外提供接口、让前端程序调用

界面设计模式

mvvm:让前端的界面(view)和逻辑(viewmodel)分层,耦合性低

测试

黑盒测试(网上查查)

http://www.xdnf.cn/news/5023.html

相关文章:

  • 【C++设计模式之Strategy策略模式】
  • ISP流程介绍(Rgb格式阶段)
  • Java 原生实现代码沙箱(OJ判题系统第1期)——设计思路、实现步骤、代码实现
  • MySQL——七、索引
  • ArrayList和LinkedList区别
  • nginx的学习笔记
  • Android屏蔽通话功能和短信功能
  • AD 电阻容模型的创建
  • 68、微服务保姆教程(十一)微服务的监控与可观测性
  • 乌班图安装docker
  • 1.3.2 linux音频PulseAudio详细介绍
  • 关系模式-无损连接和保持函数依赖的判断
  • 用Python解密霍格沃茨的情感密码:哈利波特系列文本挖掘之旅
  • 用 Java 实现一个简单的阻塞队列
  • HTML字符串转换为React元素实现
  • 云轴科技ZStack入选赛迪顾问2025AI Infra平台市场发展报告代表厂商
  • LeetCode 1722. 执行交换操作后的最小汉明距离 题解
  • Filecoin存储管理:如何停止Lotus向特定存储路径写入新扇区数据
  • 【杂谈】-认知的范式革命:从逻辑理性到类比思维
  • 什么是AI写作
  • Rust 中的 Pin 和 Unpin:内存安全与异步编程的守护者
  • Typora+PicGo+Gitee图床配置教程 自动图片上传
  • WebRTC工作原理详细介绍、WebRTC信令交互过程和WebRTC流媒体传输协议介绍
  • RabittMQ-高级特性2-应用问题
  • 8.1.Kubernetes进阶
  • 使用零样本LLM在现实世界环境中推广端到端自动驾驶——论文阅读
  • tauri-plugin-store 这个插件将数据存在本地电脑哪个位置
  • ROS快速入门教程06
  • 在windows系统中安装图数据库NEO4J
  • vLLM部署Qwen2-7B模型推理