---
name: 出勤记录
description: 查询和管理学生出勤情况，支持按学生姓名、班级、时间范围查询
---

# 📊 出勤记录查询系统

## 功能说明
本技能用于查询学生出勤情况，生成出勤报表。

## 🎯 核心逻辑

### 出勤记录文件位置
```
.claude/memory/class/[班级]/[学生姓名]/feedback/出勤登记-2026春季.md
```

### 出勤记录状态说明
- **✅ 出勤**：学生正常上课
- **⏸ 请假**：学生请假
- **❌ 未上课**：学生未上课

## 📋 使用方法

### 方式1：查询某个学生
```
/出勤记录 陈嘉博
```
输出：陈嘉博本学期的所有出勤记录和出勤率统计

### 方式2：查询某个班级
```
/出勤记录 周六晚上1900AI03班
```
输出：该班级所有学生的出勤汇总表

### 方式3：查询指定月份
```
/出勤记录 陈嘉博 4月
```
输出：该学生4月份的出勤情况

### 方式4：查询全部
```
/出勤记录
```
输出：所有班级所有学生的出勤汇总

### 方式5：查询班级最近N节课出勤率 ⭐新增
```
/出勤记录 周六晚上1900AI03班 前3节课
```
输出：该班级从本周起往回数3节课的出勤情况
- 例如：本周是第6课，则统计第4、5、6课的出勤情况

```
/出勤记录 周六晚上1900AI03班 前4节课
```
输出：该班级从本周起往回数4节课的出勤情况
- 例如：本周是第6课，则统计第3、4、5、6课的出勤情况

## 📊 输出格式

### 个人出勤记录
```
👤 学生：陈嘉博
🏫 班级：周六晚上1900AI03班
📅 学期：2026春季

| 日期 | 课程 | 课次 | 状态 | 备注 |
|------|------|------|------|------|
| 2026-04-06 | AI大作家下 | 第5课 | ✅ 出勤 | 已生成课评 |
| 2026-03-30 | AI大作家上 | 第4课 | ❌ 缺勤 | 病假 |
| 2026-03-23 | AI训练师 | 第3课 | ✅ 出勤 | 已生成课评 |

📊 统计：
- 应出勤：5次
- 实际出勤：4次
- 缺勤：1次
- 出勤率：80%
```

### 班级汇总表
```
📋 班级：周六晚上1900AI03班
📅 学期：2026春季

| 学生姓名 | 应出勤 | 实际出勤 | 缺勤 | 出勤率 |
|----------|--------|----------|------|--------|
| 陈嘉博   | 5      | 4        | 1    | 80%    |
| 谭俊研   | 5      | 5        | 0    | 100%   |
| 李承泽   | 5      | 5        | 0    | 100%   |
| 王子墨   | 5      | 4        | 1    | 80%    |

📊 班级总出勤率：90%
```

### 班级最近N节课出勤率表 ⭐新增

```
📋 班级：周六晚上1900AI03班
📊 统计范围：最近3节课（第4课-第6课）

| 学生姓名 | 应出勤 | 实际出勤 | 缺勤 | 出勤率 | 缺勤课次 |
|----------|--------|----------|------|--------|----------|
| 陈嘉博   | 3      | 3        | 0    | 100%   | -        |
| 谭俊研   | 3      | 2        | 1    | 67%    | 第5课    |
| 李承泽   | 3      | 3        | 0    | 100%   | -        |
| 王子墨   | 3      | 3        | 0    | 100%   | -        |
| 黄彦棋   | 3      | 1        | 2    | 33%    | 第4,6课  |

📊 班级最近3节课平均出勤率：75% (12/16人次)
⚠️ 需关注学生：谭俊研、黄彦棋
```

## 🔧 实现步骤

当用户调用 `/出勤记录` 时：

1. **解析参数**
   - 读取用户输入的学生姓名、班级、时间范围
   - 如果参数包含"前N节课"（如"前3节课"、"前4节课"），标记为最近N节课查询模式
   - 确定查询范围

2. **定位文件夹**
   - 根据班级名称定位到 `.claude/memory/class/[班级]/`
   - 如果指定学生，再定位到具体学生文件夹

3. **读取出勤文件**
   - 查找每个学生文件夹下的 `出勤登记-2026春季.md`
   - 如果文件不存在，显示"暂无出勤记录"

4. **解析表格数据**
   - 提取表格中的每一行数据
   - 如果有日期筛选条件，筛选指定月份的记录
   - **如果是最近N节课查询**：
     - 先从所有记录中找到最大课次（当前课次）
     - 计算查询范围：当前课次-(N-1) 到 当前课次
     - 只保留该范围内的记录（如当前第6课，"前3节课"保留第4、5、6课）
     - 记录每位学生的缺勤课次

5. **生成报表**
   - 统计出勤、缺勤次数
   - 计算出勤率
   - **最近N节课查询特有统计**：
     - 计算班级平均出勤率
     - 列出需关注学生（出勤率低于100%的学生）
     - 显示每位学生的具体缺勤课次
   - 按格式输出报表

6. **返回结果**
   - 显示清晰易读的出勤报表

## 💡 技巧提示

### 快速筛选
- 可以用 "4月"、"3月" 等月份名称快速筛选
- 可以用 "2026-04-06" 这样的具体日期查询单次出勤
- 可以用 "前3节课"、"前4节课" 查询班级前N节课出勤情况

### 最近N节课查询使用场景
- **阶段性检查**：了解学生最近3-4节课的出勤趋势
- **重点关注**：找出近期缺勤或出勤率低的学生的具体缺勤课次
- **动态跟踪**：每周更新，掌握最新出勤情况

**示例**：
- 本周是第6课，`前3节课` 查询的是第4、5、6课
- 本周是第6课，`前4节课` 查询的是第3、4、5、6课

### 异常处理
- 如果学生文件夹不存在，提示"该学生不在系统中"
- 如果出勤文件不存在，提示"该学生暂无出勤记录"
- 如果表格格式错误，提示"出勤记录文件格式有误"

### 扩展功能
未来可以添加：
- 导出Excel功能
- 月度出勤对比
- 缺勤原因统计
- 出勤趋势图
