131 lines
3.4 KiB
Markdown
131 lines
3.4 KiB
Markdown
# 智能考勤管理系统 (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. 性能约束(高并发、大数据量)需要分布式架构支持
|
||
|
||
## 许可证
|
||
|
||
本项目仅供学习参考使用。 |