3.4 KiB
3.4 KiB
智能考勤管理系统 (C++17 CMake 工程)
基于《智能考勤管理系统》软件设计说明书实现的C++示例工程。
项目概述
这是一个简化版的智能考勤管理系统,展示了核心数据结构和基本操作。项目采用模块化设计,包含以下功能:
- 员工管理(Employee)
- 排班规则管理(ScheduleRule)
- 考勤打卡记录(CheckInRecord)
- 考勤结果计算(AttendanceResult)
- 异常事件记录(AlertEvent)
编译说明
前置要求
- CMake 3.12 或更高版本
- 支持C++17的编译器(GCC 7+, Clang 5+, MSVC 2017+)
编译步骤
# 1. 创建构建目录
mkdir build
cd build
# 2. 生成构建系统
cmake ..
# 3. 编译项目
cmake --build .
# 4. 运行主程序
./bin/attendance_system
# 5. 运行测试
./bin/basic_test
项目结构
.
├── CMakeLists.txt # CMake构建配置文件
├── README.md # 项目说明文档
├── include/ # 头文件目录
│ ├── app.hpp # 应用程序主头文件
│ ├── employee.hpp # 员工数据结构
│ ├── schedule.hpp # 排班规则结构
│ ├── checkin.hpp # 打卡记录结构
│ ├── attendance.hpp # 考勤结果结构
│ └── alert.hpp # 异常事件结构
├── src/ # 源文件目录
│ ├── main.cpp # 程序入口
│ ├── app.cpp # 应用程序逻辑
│ ├── employee.cpp # 员工管理实现
│ ├── schedule.cpp # 排班管理实现
│ ├── checkin.cpp # 打卡记录实现
│ ├── attendance.cpp # 考勤计算实现
│ └── alert.cpp # 异常事件实现
└── tests/ # 测试文件目录
└── basic_test.cpp # 基本功能测试
核心数据结构
根据需求文档,实现了以下核心数据结构:
1. Employee(员工档案)
- employeeId:员工ID
- name:姓名
- departmentId:部门ID
- position:职位
- mobile:手机号
- email:邮箱
2. ScheduleRule(排班规则)
- ruleId:规则ID
- shiftName:班次名称
- startTime:上班时间
- endTime:下班时间
- breakDuration:休息时长
- overtimeThreshold:加班阈值
3. CheckInRecord(打卡记录)
- recordId:记录ID
- employeeId:员工ID
- method:打卡方式(FACE/GPS/CARD)
- timestamp:时间戳
- location:位置信息
4. AttendanceResult(考勤结果)
- resultId:结果ID
- employeeId:员工ID
- date:日期
- status:状态(LATE/EARLY/ABSENT/OVERTIME)
- duration:时长
- remarks:备注
5. AlertEvent(异常事件)
- eventId:事件ID
- employeeId:员工ID
- alertType:异常类型
- time:时间
- reason:原因
- notifiedChannels:通知渠道
使用示例
程序启动后会:
- 创建示例员工和排班规则
- 模拟员工打卡
- 计算考勤结果
- 检测异常事件
- 输出统计信息
测试
项目包含基本的单元测试,验证核心数据结构的功能正确性。
注意事项
- 这是一个演示工程,实现了核心数据结构但未包含完整业务逻辑
- 实际生产环境需要添加数据库连接、网络通信、加密存储等功能
- 安全约束(如TLS加密、JWT认证)需要额外实现
- 性能约束(高并发、大数据量)需要分布式架构支持
许可证
本项目仅供学习参考使用。