# 智能考勤管理系统 (C++17 CMake 工程) 基于《智能考勤管理系统》软件设计说明书实现的C++示例工程。 ## 项目概述 这是一个简化版的智能考勤管理系统,展示了核心数据结构和基本操作。项目采用模块化设计,包含以下功能: - 员工管理(Employee) - 排班规则管理(ScheduleRule) - 考勤打卡记录(CheckInRecord) - 考勤结果计算(AttendanceResult) - 异常事件记录(AlertEvent) ## 编译说明 ### 前置要求 - CMake 3.12 或更高版本 - 支持C++17的编译器(GCC 7+, Clang 5+, MSVC 2017+) ### 编译步骤 ```bash # 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:通知渠道 ## 使用示例 程序启动后会: 1. 创建示例员工和排班规则 2. 模拟员工打卡 3. 计算考勤结果 4. 检测异常事件 5. 输出统计信息 ## 测试 项目包含基本的单元测试,验证核心数据结构的功能正确性。 ## 注意事项 1. 这是一个演示工程,实现了核心数据结构但未包含完整业务逻辑 2. 实际生产环境需要添加数据库连接、网络通信、加密存储等功能 3. 安全约束(如TLS加密、JWT认证)需要额外实现 4. 性能约束(高并发、大数据量)需要分布式架构支持 ## 许可证 本项目仅供学习参考使用。