save docs

This commit is contained in:
2026-05-07 14:56:53 +08:00
parent 037be95a7d
commit 78aaebcd89
7 changed files with 819 additions and 6 deletions

155
需求文档.md Normal file
View File

@@ -0,0 +1,155 @@
# 老师学员匹配系统需求文档
## 1. 项目概述
本系统旨在实现老师和学员的自动匹配功能,根据双方的可用时间进行智能匹配,并生成匹配结果。
## 2. 功能需求
### 2.1 基础功能
- **老师管理**支持通过Excel导入老师信息包含老师类型标记
- **时间数据导入**通过Excel文件导入老师和学生的可用时间
- **智能匹配**:根据时间兼容性自动匹配老师和学生
- **匹配结果导出**生成Excel格式的匹配结果
- **历史匹配记录**:记录学生与老师的历史匹配情况,避免重复匹配
### 2.2 核心匹配规则(按优先级)
1. **首次上课限制**:学生第一次上课只能匹配旧老师
2. **交替匹配规则**:后续上课按"新老师→旧老师→新老师→..."交替进行
3. **历史匹配规避**:学生不能匹配之前上过课的老师
4. **每日唯一性**:每位老师每天只能接待一位学生
5. **均衡分配**:优先匹配次数少的老师,让更多老师参与
### 2.3 核心流程
1. 导入老师信息(包含老师类型)和可用时间
2. 导入学生信息(包含历史匹配)和可用时间
3. 系统自动匹配老师和学生
4. 生成匹配结果并导出
5. 记录匹配历史
## 3. 数据结构
### 3.1 老师数据结构
| 字段名 | 数据类型 | 说明 |
|-------|---------|------|
| 老师ID | 字符串 | 唯一标识 |
| 姓名 | 字符串 | 老师姓名 |
| 老师类型 | 字符串 | 新老师/旧老师 |
| 可用时间 | 时间列表 | 每个日期的可用时间段 |
| 其他信息 | 字符串 | 可选的额外信息 |
### 3.2 学生数据结构
| 字段名 | 数据类型 | 说明 |
|-------|---------|------|
| 学生ID | 字符串 | 唯一标识 |
| 姓名 | 字符串 | 学生姓名 |
| 可用时间 | 时间列表 | 每个日期的可用时间段 |
| 历史匹配老师 | 老师ID列表 | 曾经匹配过的老师 |
| 其他信息 | 字符串 | 可选的额外信息 |
### 3.3 匹配结果数据结构
| 字段名 | 数据类型 | 说明 |
|-------|---------|------|
| 匹配ID | 字符串 | 唯一标识 |
| 学生ID | 字符串 | 学生标识 |
| 老师ID | 字符串 | 老师标识 |
| 匹配日期 | 日期 | 匹配的具体日期 |
| 匹配时段 | 时间段 | 具体上课时间段 |
| 状态 | 字符串 | 匹配状态(成功/未匹配) |
## 4. Excel格式设计
### 4.1 老师信息Excel格式
| 列名 | 说明 |
|-----|------|
| 老师姓名 | 唯一标识 |
| 老师类型 | 新老师/旧老师 |
| 备注 | 可选的额外信息 |
| 1月1日 | 可用时间段9:00-11:00;14:00-16:00 |
| 1月2日 | 可用时间段 |
| ... | ... |
### 4.2 学生信息Excel格式
| 列名 | 说明 |
|-----|------|
| 学生姓名 | 唯一标识 |
| 历史匹配老师 | 曾经匹配过的老师姓名,用逗号分隔 |
| 备注 | 可选的额外信息 |
| 1月1日 | 可用时间段 |
| 1月2日 | 可用时间段 |
| ... | ... |
### 4.3 匹配结果Excel格式
| 列名 | 说明 |
|-----|------|
| 学生 | 学生姓名 |
| 老师 | 匹配的老师姓名 |
| 日期 | 匹配日期 |
| 时段 | 匹配的时间段 |
| 状态 | 匹配状态 |
## 5. 技术要求
### 5.1 开发环境
- 操作系统Windows
- 开发语言Python打包为EXE
- 依赖库:
- pandas处理Excel文件
- openpyxlExcel文件读写
- FletGUI界面
- pyinstaller打包为EXE
### 5.2 性能要求
- 支持至少100名学生和20名老师的匹配
- 匹配过程响应时间不超过10秒
## 6. 界面设计
### 6.1 主界面
- 老师管理区域:显示老师列表(包含类型标识)
- 数据导入区域提供Excel文件选择和导入按钮
- 匹配控制区域:开始匹配按钮
- 结果显示区域:显示匹配结果
- 导出区域:导出匹配结果按钮
### 6.2 操作流程
1. 用户打开软件
2. 导入老师Excel文件包含类型信息
3. 导入学生Excel文件包含历史匹配
4. 点击开始匹配按钮
5. 查看匹配结果
6. 导出匹配结果到Excel文件
## 7. 其他需要讨论的点
1. **匹配算法**:具体的匹配规则和优先级如何确定?
2. **时间冲突处理**:如果多个学生同时匹配到同一个老师的同一天,如何处理?
3. **数据验证**如何验证导入的Excel数据格式是否正确
4. **错误处理**:当匹配失败或数据异常时,如何提示用户?
5. **历史数据存储**:历史匹配记录如何存储和管理?
6. **用户权限**:是否需要不同级别的用户权限?
7. **界面语言**:是否需要支持多语言?
8. **系统兼容性**支持的Windows版本范围
9. **安装部署**:是否需要安装程序或绿色版?
10. **更新机制**:如何进行系统更新?
## 8. 项目计划
1. **需求分析与设计**1天
2. **数据结构实现**1天
3. **Excel文件处理**1天
4. **匹配算法实现**2天
5. **GUI界面开发**2天
6. **测试与调试**2天
7. **打包与部署**1天
## 9. 验收标准
1. 系统能够正确导入老师和学生的Excel文件
2. 系统能够根据时间兼容性自动匹配老师和学生
3. 系统能够避免重复匹配历史上已经匹配过的老师和学生
4. 系统能够确保每位老师每天只接待一位学生
5. 系统能够按规则分配新/旧老师(首次→旧老师,后续交替)
6. 系统能够优先分配匹配次数少的老师
7. 系统能够生成正确的匹配结果Excel文件
8. 系统界面友好,操作简单
9. 系统运行稳定,无明显错误