001/README.md

3.4 KiB
Raw Blame History

智能考勤管理系统 (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通知渠道

使用示例

程序启动后会:

  1. 创建示例员工和排班规则
  2. 模拟员工打卡
  3. 计算考勤结果
  4. 检测异常事件
  5. 输出统计信息

测试

项目包含基本的单元测试,验证核心数据结构的功能正确性。

注意事项

  1. 这是一个演示工程,实现了核心数据结构但未包含完整业务逻辑
  2. 实际生产环境需要添加数据库连接、网络通信、加密存储等功能
  3. 安全约束如TLS加密、JWT认证需要额外实现
  4. 性能约束(高并发、大数据量)需要分布式架构支持

许可证

本项目仅供学习参考使用。