001/README.md

131 lines
3.4 KiB
Markdown
Raw Permalink Normal View History

2026-04-15 08:34:21 +00:00
# 智能考勤管理系统 (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. 性能约束(高并发、大数据量)需要分布式架构支持
## 许可证
本项目仅供学习参考使用。