---
name: 课评生成
description: 快速生成个性化课评，你只需提供学生本节课的表现，自动匹配班级风格生成高质量课评
type: skill
---

# 🎯 课评生成器技能包

## 🌟 功能说明
本技能专为穹狼科创编程课程设计，**使用超简单：你只需要告诉我学生的基本信息和本节课表现，我就能自动生成符合班级风格的个性化课评**。

✅ 支持四大课程：C++/AICODE/Kitten/体验课
✅ 自动匹配班级专属风格：AICODE03温暖鼓励型/K4温和鼓励型/CSP03要求型/体验课转化型
✅ **CSP班级必须查询OJ做题数据**（自动调用API获取A包答题情况）

## 💡 使用方式（超简单）
你只需要提供以下信息：
```
学生姓名：_______
班级：_______
课程名称：_______
课次：第_______课
日期：YYYY-MM-DD
表现描述：_______（越具体越好，比如"掌握了循环嵌套，主动调试bug，专注力比上节课好"）
```

我会自动完成剩下的所有工作：
1. 读取学生画像、班级风格指南、本节课教案
2. **CSP班级：必须先调用OJ API查询该学生的A包做题数据**
3. 生成约200字的个性化课评（CSP课评必须包含OJ数据板块）

---

## 📂 从笔记文件批量生成课评（推荐工作流）

橙子平时在 `E:\cc\3笔记\第N课.md` 中记录学生出勤和简短课评，写完后提供文件路径给我，我会自动完成以下流程：

### 输入文件格式
橙子提供的笔记文件格式如下（示例）：
```markdown
# 课评记录表 — 2026年05月14日（周三）

### AICODE03橙子周六1900
| 姓名 | 出勤状况 | 课评 |
|------|----------|------|
| 陈嘉博 | 正常上课 | 表现积极，掌握了循环嵌套 |
| 王子墨 | 请假 | |
```

### 工作流程
```
获取API出勤数据 → 读取笔记 → 匹配课程计划 → 读取学生画像 → 润色生成 → 确认 → 保存
```

### 0. 获取API出勤数据（必须第一步执行）

**⚠️ 这是强制步骤，必须在读取笔记之前执行！**

在开始处理任何课评之前，**必须先调用公司API获取橙子老师近期的出勤数据**，用于：
1. 确认橙子老师实际带了哪些班级
2. 获取每个班级的**真实授课日期**（`teaching_date`），用于课评文件名

**执行命令**（Python）：
```python
import urllib.request
import json
from datetime import datetime, timedelta

API_BASE_URL = "https://api.qonnwolf.com/api/v1"
AUTHORIZATION = "Bearer <从.env文件读取>"

# 计算最近7天的日期范围
end_date = datetime.now()
start_date = end_date - timedelta(days=7)

# 查询橙子老师的出勤数据
dates_to_query = []
current = start_date
while current <= end_date:
    dates_to_query.append(current.strftime('%Y-%m-%d'))
    current += timedelta(days=1)

results = []
for date in dates_to_query:
    url = f"{API_BASE_URL}/reports/teaching-schedule?teaching_date={date}"
    req = urllib.request.Request(url)
    req.add_header('Authorization', AUTHORIZATION)
    try:
        with urllib.request.urlopen(req) as response:
            data = json.loads(response.read().decode('utf-8'))
            for item in data['data']['items']:
                teacher = item.get('teacher_name', '')
                if '橙子' in teacher or '程城' in teacher:
                    results.append({
                        'teaching_date': item['teaching_date'],  # API返回的真实授课日期
                        'class_name': item['class_name'],
                        'time': item['teaching_time_period'],
                        'lesson': item['lesson_name'],
                        'student_count': item['student_count'],
                        'attendance': item['attendance'],
                        'students': item.get('student_names', [])
                    })
    except Exception as e:
        print(f"查询 {date} 失败: {e}")

# 输出结果
for r in results:
    print(f"日期:{r['teaching_date']} 班级:{r['class_name']} 时间:{r['time']} 课程:{r['lesson']}")
```

**返回数据说明**：
| 字段 | 说明 | 用途 |
|------|------|------|
| `teaching_date` | API返回的真实授课日期 | **必须用此日期作为课评文件名中的YYYYMMDD** |
| `class_name` | 班级名称 | 用于确认班级目录名 |
| `time` | 上课时间段 | 用于确认班级（如19:00-20:30对应晚上班） |
| `lesson_name` | 课程名称 | 用于匹配课程计划 |
| `student_count` | 学生数 | 用于确认班级人数 |
| `attendance` | 出勤统计 | 到课/请假/缺课人数 |
| `students` | 学生名单 | 用于确认学生 |

**日期规则（重要）**：
- ✅ **必须使用API返回的 `teaching_date`** 作为课评文件名中的日期
- ✅ 如果笔记中的日期与API返回的 `teaching_date` 不一致，**以API为准**
- ✅ 文件名格式：`{API返回的teaching_date}_课程编号-课次.md`

**班级匹配规则**：
根据API返回的 `class_name` 和 `time` 匹配笔记中的班级：
| API返回的class_name | 对应班级目录 | 识别依据 |
|---------------------|-------------|----------|
| AICODE03... | AICODE03橙子周六1900 / AICODE03橙子周日0845 / AICODE03橙子周日1400 | class_name含"AICODE03" + time判断 |
| CSP03... | CSP03橙子周六0830 / CSP03橙子周六1400 / CSP03橙子周日1030 | class_name含"CSP03" + time判断 |
| KITTEN04... | K4橙子周五1900 / K4橙子周日1900 | class_name含"KITTEN04" + time判断 |

### 1. 读取笔记文件
解析 `E:\cc\3笔记\第N课.md`：
- 从文件名提取**课次**（如"第11课"）
- 从**API获取的teaching_date**确定日期（不使用笔记文件头的日期）
- 按班级区块解析，提取每个学生：
  - 姓名、出勤状况、课评描述（用户写的简短描述）

> **日期规则**：笔记批量流程中，所有日期（文件名 `YYYYMMDD`、授课日期）**统一以API返回的teaching_date为准**，不使用笔记文件头中的日期。

### 2. 匹配课程计划
根据班级标题中的关键词匹配对应课程计划：

| 班级标题关键词 | 课程计划路径 | 课程编号 |
|---|---|---|
| AICODE03 | `.claude/lesson/AICODE/课程计划.md` | AICODE03 |
| CSP03 | `.claude/lesson/CSP03/课程计划.md` | CSP03 |
| Kitten04 / K4 | `.claude/lesson/Kitten04/课程计划.md` | Kitten04 |

从课程计划中提取对应课次的：
- **课程名称**（如《进制转换》）
- **教学目标 5个知识点**

> **重要**：教案中的"教学目标"5条直接作为课评的5个知识点，不得修改或编造。

### 3. 读取学生画像
对每个学生，读取其个人画像档案：
**路径**：`.claude/memory/class/[班级]/[姓名]/profile.md`

### 4. 润色生成课评
对笔记中列出的**每一个学生**，根据出勤状况处理，确保每个人都有对应记录：

| 出勤状况 | 处理方式 | 保存位置 |
|---|---|---|
| 正常上课 | 读取画像 + 润色课评描述 → 生成完整课评 | 本班学生feedback目录 |
| 请假 | 生成请假记录 | 本班学生feedback目录 |
| 未上课 | 生成未到课记录 | 本班学生feedback目录 |
| 补课-来自XX班 | 读取画像 + 润色课评描述 → 生成完整课评 | **补课班级**的`补课/[姓名]/feedback/`目录 |

**润色规则**（对正常上课和补课学生）：
- 保留用户描述中的所有事实（不能遗漏任何信息）
- 根据学生画像调整语气和侧重（如内向学生多鼓励，活泼学生提专注）
- 套用对应班级的固定开头（5个知识点）和结尾风格
- 将简短描述扩展为约200字的完整家长信格式课评
- **绝不编造**用户没有提到的内容

**⚠️ CSP班级专属（必须执行）**：
对每个CSP学生，**在生成课评之前**必须先查询OJ做题数据：
```bash
python scripts/update_feedback_with_oj.py \
  --course CSP03-<课次编号> \
  --get-student-oj "<学生姓名>"
```
将返回的OJ数据Markdown拼接到课评内容中。**没有OJ数据的CSP课评是不完整的！**

**输出示例**：
```markdown
家长好，本周学习的内容是《魔幻俄罗斯方块（下）》：
1. 理解"自动化测试"的概念
2. 理解"测试覆盖"：每条规则都应有对应测试
3. 功能扩展的增量思维
4. 增量需求文档的编写方法
5. 测试脚本生成与结果解读

嘉博今天表现特别棒～对增量需求文档的理解很到位，能够自己写出清晰的测试用例～
和AI协作完成俄罗斯方块的调试，遇到困难没有放弃，特别有韧性～
要是可以在写需求文档的时候再仔细检查一下边界条件就更好啦～
老师会继续关注嘉博的表现，期待看到更多精彩！🌟💡
```

### 6. 生成班级总结（所有班级）
笔记中列出的**每一个班级**都会生成本节课的班级总结，不局限于特定班级：

**内容来源**：
- 课程名称 + 5个知识点（来自课程计划）
- 该班级所有学生的整体表现（基于笔记中课评描述汇总）
- 亮点学生、共性问题、课堂趣事

**保存路径**：`.claude/memory/class/[班级]/summaries/YYYYMMDD_课程编号-课次_班级反馈.md`

**格式**：使用对应班级自己的模板（`.claude/memory/class/[班级]/summaries/群发文案模板.md`或`班级反馈模板.md`）

### 7. 确认流程
所有课评和班级总结生成后，**先展示给橙子看，不保存**：
- 按班级分组展示：个人课评 + 班级总结
- 等待橙子确认或提出修改意见
- 如有修改，即时调整后再次展示，直到橙子满意

**橙子确认无误后，才执行以下保存操作**：
1. 保存到学生个人单次课评文件
2. **保存到统一周课评汇总**（`E:/cc/4work_project/ClassFeedback/output/课评汇总/`），**后写的课评放在最前面**
3. 保存班级总结
4. 更新学生画像

### 8. 更新学生画像（自动）
保存课评的同时，根据本节课表现**适当更新**学生画像 `profile.md`：

**更新原则**：
- 只记录**新发现**或**明显变化**，不重复已有信息
- 更新位置：在 profile.md 的"近期表现"或"课堂观察"部分追加

**触发更新的典型情况**：
- 展现出新的兴趣点（如"首次表现出对XX的浓厚兴趣"）
- 能力有明显进步（如"打字速度比上学期快了很多"）
- 性格/态度变化（如"从内向变得愿意主动提问"）
- 需要持续关注的问题（如"近两次课专注力有所下降"）
- 特殊事件（如"第一次独立完成完整作品"）

**不更新的情况**：
- 表现和画像中已有描述一致
- 只是常规课堂表现，无特殊变化
- 一次性的小问题（如"今天迟到"）

更新格式示例：
```markdown
**2026-05-14 第11课观察**：
- 对增量需求文档的理解力有提升，能自己写出测试用例
- 遇到困难时不再马上求助，会先尝试独立调试
```

---

## ⚙️ 核心生成逻辑（自动完成，你不需要操作）
```
1. 读取参考资料 → 2. CSP班级自动拉取OJ数据 → 3. 生成个性化课评 → 4. 自动保存
```

### 1. 自动读取参考资料
我会自动找到以下资料用于生成课评：
- **学生画像**：`.claude/memory/class/[班级]/[姓名]/profile.md`（了解学生性格特点和适用风格）
- **班级风格指南**：根据课程类型读取对应规则（`.claude/rules/[课程].md`）
- **课评格式模板**：根据课程类型选择对应模板（`.claude/templates/[课程].md`），包含标准版和极简版
- **本节课教案**：到 `.claude/lesson/` 目录下查找对应班级、对应课次的教案，确保课评内容与实际教学一致，不编造内容
- **过往课评**：读取该学生的历史课评，避免重复用词

> 💡 **模板库路径**：`../../templates/`
> - `AICODE.md`：AICODE创意编程课评模板（标准版 + 极简版）
> - `CSP.md`：C++/CSP课程课评模板
> - `KITTEN.md`：Kitten课程课评模板
> - `出勤登记-2026春季.md`：出勤登记表模板

### 2. CSP班级专属：自动获取OJ做题数据（必须执行）

**⚠️ 这是强制步骤，CSP课评必须包含OJ数据！**

**执行时机**：在生成每个CSP学生的课评**之前**，先查询该学生的OJ数据。

**查询命令**（对每个CSP学生执行）：
```bash
python scripts/update_feedback_with_oj.py \
  --course CSP03-<课次编号> \
  --get-student-oj "<学生姓名>"
```

**执行流程**：
1. 识别出CSP班级的学生
2. 对每个CSP学生，运行上述命令获取OJ数据
3. 命令会输出该学生的OJ数据Markdown（包含A包每道题的完成情况）
4. 将返回的OJ数据Markdown**直接拼接**到该学生的课评内容中

**示例**（生成杨林轩的CSP课评）：
```bash
# 第1步：获取OJ数据
python scripts/update_feedback_with_oj.py \
  --course CSP03-09 \
  --get-student-oj "杨林轩"

# 第2步：把返回的OJ数据整合到课评中
```

**返回格式示例**：
```markdown
## 【OJ做题数据】

**完成情况**: 4/5 (共8次提交)

| 题目 | 状态 | 提交次数 | 思考模式 | 错误类型 |
|------|------|----------|----------|----------|
| CSP0309A1 银行叫号模拟 | ✅ 通过 | 1 | 一气呵成 | — |
| CSP0309A2 模拟发牌 | ✅ 通过 | 2 | 调试改进 | WA×1 |
...

**📊 分析**: 完成4题，第5题有尝试但尚未通过...
```

**注意事项**：
- 必须先在 `config/hw_dict.json` 中配置好课程的作业ID
- 如果学生姓名在OJ系统中不匹配，会返回空数据
- 返回的Markdown直接拼接到课评正文后面，不要修改格式

### 3. 自动生成课评（统一格式，所有课程通用）
**固定格式（必须严格遵守）**：
```markdown
【学生姓名】家长好，我们本周上课的课程是《XXX》

课程目标：
1. 【知识点1】
2. 【知识点2】
3. 【知识点3】

课评反馈：
【具体课评内容，约200字，包含优点、建议、期望】
```

生成规则：
- 课程目标从本节课教案中提取真实知识点，禁止编造
- 课评反馈包含：优点表扬 + 温和建议 + 鼓励期望
- **表情包丰富原则**：课评正文中适当穿插表情符号，让文字更生动有温度，每个课评至少使用3-5个表情，分布在夸奖、建议、结尾等位置
- **CSP班级专属要求**：必须查询OJ系统的**A包作业完成情况**，进行详细分析（包含完成率、思考模式、错误分布、改进建议），【OJ做题数据】板块放在课评反馈的最后部分
- 称呼规则：三字姓名默认去掉姓氏，直呼后两个字（如"陈圆振"→"圆振"），更亲切
- 内容完全基于你提供的表现描述和教案知识点，不编造内容

---
### 📋 生成后确认流程（必须遵守）
1. 一批课评全部生成后，我会先把所有课评展示给你，不保存
2. 等待你确认没问题后，再执行保存操作
3. 如果你需要修改，我会根据你的要求修改后再次给你确认，直到你满意再保存

---

## 🎨 各班级风格规范（自动匹配）
### AICODE03班 - 家长信格式·温暖鼓励型
- 固定开头："家长好，本周学习的内容是《...》" + 5个知识点（与 CSP03 一致）
- 课程目标后空一行，再写"课评反馈："正文
- 多用"很棒"、"特别棒"、"超棒"和波浪号"～"
- 描述具体行为："一字一字打字"、"和AI聊了一节课"
- 温和建议用"要是...就更好啦～"
- **表情包使用**：课评正文中适当穿插表情，让文字更生动温暖
  - 夸奖时：🌟✨🎉👍
  - 鼓励时：💪🔥🚀
  - 温和建议时：😊💡🌸
  - 结尾固定："老师会继续关注【姓名】的表现，期待看到更多精彩！🌟💡"

### K4班 - 家长信格式·温和鼓励型
- 固定开头："家长好，本周学习的内容是《...》" + 5个知识点
- 肯定创意："能够有自己的创意"
- 温和指出："不过老师发现...专注力有些下降"
- **表情包使用**：K4班学生年龄小，多用可爱活泼的表情增加亲和力
  - 表扬创意时：🎨🌈✨🌟
  - 鼓励坚持时：💪🐱🚀
  - 提醒专注时：👀💡😊
  - 结尾可用："继续加油哦！🌟"、"相信你会把程序做得更完整！🚀"

### CSP03班 - 家长信格式·要求型
- 固定开头："家长好，本周学习的内容是《...》" + 5个知识点
- 表扬积极："状态在线"、"早早到校等候超积极"
- 期望要求："希望多思考"、"理解为什么这么写，不只是抄完就好～"
- **表情包使用**：CSP班学生偏大，表情偏励志和认可风格
  - 表扬状态时：💪✨🎯🔥
  - 肯定进步时：📈👏🌟
  - 提出期望时：💡📝😊
  - 结尾固定："加油呀！💪✨"

**⚠️ CSP03班强制要求**：
- **必须查询OJ做题数据**，没有OJ数据的CSP课评是不完整的
- 执行命令：`python scripts/update_feedback_with_oj.py --course CSP03-<课次> --get-student-oj "<姓名>"`
- OJ数据板块放在课评正文后面，格式见下方模板

#### CSP03班 OJ数据板块格式（自动生成）
**OJ作业包定位说明**：
- A包 = 课堂练习（**包含5道具体题目，必须全部列出**）
- B包 = 必须完成的课后家庭作业（未完成会明确提醒家长督促）
- C包 = 拓展训练（学有余力的同学可挑战）

```markdown
## 【OJ做题数据】

**A包（课堂练习）完成情况**: 4/5 (共8次提交)

| 题目 | 类型 | 状态 | 提交次数 | 思考模式 | 错误类型 |
|------|------|------|----------|----------|----------|
| CSP03-XXA1 | 基础题 | ✅ 通过 | 1 | 一气呵成 | — |
| CSP03-XXA2 | 基础题 | ✅ 通过 | 1 | 一气呵成 | — |
| CSP03-XXA3 | 基础题 | ✅ 通过 | 2 | 调试改进 | WA×1 |
| CSP03-XXA4 | 提高题 | ✅ 通过 | 2 | 调试改进 | WA×1 |
| CSP03-XXA5 | 提高题 | ❌ 未通过 | 2 | 遇到困难 | CE×1, WA×1 |

---
| CSP03-XXB | 课后作业（必做） | ✅ 已完成 | 3 | 反复调试 | WA×2 |
| CSP03-XXC | 拓展训练（选做） | ⬜ 未提交 | 0 | — | — |

**📊 分析**: A包5道题完成了4道，基础题全部掌握，提高题第5道考察的是边界条件处理，还需要加强；B包必做课后作业已完成，知识点巩固得不错；C包拓展题未提交，学有余力可以尝试挑战。
**错误分布**: 编译错误1次，答案错误4次，主要是边界条件考虑不周全，建议课后多练类似题目。
```

**自动判断规则**：
- ✅ A包所有5道题必须全部列出，不管是否完成，不能只显示1个A包
- ✅ 如果B包未完成/未通过：明确标注"【重要提醒】B包是必须完成的课后家庭作业，麻烦家长督促孩子在本周内完成提交"
- ✅ 如果B包已完成：表扬"课后作业完成及时，知识点巩固得不错"
- ✅ 如果C包完成了：重点表扬"主动完成拓展训练，探索精神值得鼓励"
- ✅ 如果C包未完成：不做硬性要求，只提"学有余力可以尝试挑战"
- ✅ 对A包中未完成的题目，给出具体的知识点建议，帮助孩子针对性提高

### 体验课 - 家长信格式·转化导向型
- 固定开头："家长好，今天体验的是《...》课程" + 课程价值介绍
- 突出"第一次"：强调新体验，降低焦虑，突出潜力
- 建立愿景：描述继续学习后孩子能达到的水平
- 自然引导报课：用期待和相信引导，不硬推销
- **表情包使用**：体验课要展示活力和吸引力，表情丰富但不过度
  - 欢迎首次体验时：🎉👋✨🌟
  - 展示潜力时：💡🚀🎯💪
  - 建立愿景时：📈🌈🔮
  - 结尾固定："期待在正式课堂上再次见到【姓名】！💻✨"

---

## 💾 保存规则（你确认后自动执行）
你确认课评没问题后，我会自动保存到多个位置，严格遵守课评规范V1.0要求：

### 📌 命名规范（必须严格遵守）
- **课程编号规则**：C++竞赛班统一用`CSP`，AI编程班统一用`AICODE`，不得使用`AI`、`C++`等缩写
- **文件名规则**：`YYYYMMDD_课程编号-课次.md`（如`20260418_CSP05-07.md`、`20260330_AICODE03-02.md`）
- **日期要求**：文件名中的`YYYYMMDD`必须与校宝`teaching_date`完全一致，不得使用编写/提交日期
- **特殊状态文件**：
  - 请假：`YYYYMMDD_课程编号-课次(请假).md`
  - 未上课：`YYYYMMDD_课程编号-课次(未到).md`
  - 补课：正常文件名 `YYYYMMDD_课程编号-课次.md`，放在补课班级下的 `补课/` 目录中

### 1. 保存到学生个人单次课评文件（必须，用于自动化统计）
为每位学生生成单独的单次课评文件，这是课评完成率统计的依据：
**路径**：`.claude/memory/class/[班级]/[姓名]/feedback/YYYYMMDD_课程编号-课次.md`

**格式**：
```markdown
# 课程名称：[课程名称]

**授课日期**: [YYYY-MM-DD]

**课评内容**：
[生成的课评正文]

---
**老师签名：橙子**
```

### 2. 保存到统一周课评汇总（后写的放上面）
同时保存到统一的课评汇总目录，同一周的课评放在同一个文件里，新生成的放在最顶部：
**根目录**：`E:/cc/4work_project/ClassFeedback/output/课评汇总/`
**文件名规则**：`202X年第X周课评汇总.md`（比如「2026年第18周课评汇总.md」）
**排序规则**：最新生成的课评放在文件的最前面，旧的课评在后面，倒序排列
**班级分组**：同一个班级的课评放在一起，按班级分组展示

### 4. 补课学生处理
> 核心原则：学生来哪个班补课，课评就保存在**那个班的 `补课/` 目录下**。

- **保存路径**：`.claude/memory/class/[补课班级]/补课/[学生姓名]/feedback/`
- **文件名**：`YYYYMMDD_课程编号-课次.md`
  - 这里的**课程编号**使用补课班级本身的编号（如去CSP03班补课，就用 `CSP03`）
- 文件内容正常写课评，无需特殊标记

### 5. 班级总结保存
为每个班级保存本节课的班级总结：
**路径**：`.claude/memory/class/[班级]/summaries/YYYYMMDD_课程编号-课次_班级反馈.md`
**格式**：使用课评规范V1.0中的班级群发文案模板

### 6. 未到课记录生成
学生请假或未上课（人没到且无请假），都要生成记录文件：

**请假**：
- **路径**：`.claude/memory/class/[班级]/[姓名]/feedback/YYYYMMDD_课程编号-课次(请假).md`
- **格式**：使用课评规范V1.0中的请假记录模板

**未上课**：
- **路径**：`.claude/memory/class/[班级]/[姓名]/feedback/YYYYMMDD_课程编号-课次(未到).md`
- **格式**：简要记录本次未到课，无课评内容

### 保存完成后我会告诉你：
✅ 已保存X条课评
✅ 周汇总已更新：[周数]周汇总文件已更新，新课评已放在最顶部

---

## 📝 示例课评（参考）

**AICODE课程 - 鼓励型**
> 李明今天虽然是第一次接触AI绘画，但我看到了你眼里的好奇，这就是最好的开始。你的描述很有画面感，"想要一个会眨眼的可爱猫咪"，这就是好的Prompt。虽然操作还有点生疏，但老师注意到你一直在尝试，这份坚持比做对题目更珍贵。下次可以把想法先写在便签纸上，分点列出，跟AI沟通会更顺畅。记住，编程最大的门槛不是英文或数学，是敢于尝试的勇气，你已经有了。继续和你的"AI搭档"对话吧，它会越来越懂你的。

**CSP03班 - 家长信格式·要求型（含OJ数据）**
> 家长好，本周学习的内容是《字符串处理》：
> 1. string 类型的声明与使用
> 2. 字符串的输入输出（cin / getline）
> 3. 字符串的拼接与比较操作
> 4. 常用字符串函数（size / substr / find）
> 5. 培养独立调试与耐心排查错误的能力
>
> 子煜状态在线，课堂互动积极，能够跟上老师的节奏。对于字符串的基本操作掌握得不错，在讲解 substr 和 find 函数时能迅速理解并动手尝试。
>
> ## 【OJ做题数据】
>
> **A包（课堂练习）完成情况**: 4/5 (共8次提交)
>
> | 题目 | 类型 | 状态 | 提交次数 | 思考模式 | 错误类型 |
> |------|------|------|----------|----------|----------|
> | CSP03-07A1 | 基础题 | ✅ 通过 | 1 | 一气呵成 | — |
> | CSP03-07A2 | 基础题 | ✅ 通过 | 1 | 一气呵成 | — |
> | CSP03-07A3 | 基础题 | ✅ 通过 | 2 | 调试改进 | WA×1 |
> | CSP03-07A4 | 提高题 | ✅ 通过 | 2 | 调试改进 | WA×1 |
> | CSP03-07A5 | 提高题 | ❌ 未通过 | 2 | 遇到困难 | CE×1, WA×1 |
>
> ---
> | CSP03-07B | 课后作业（必做） | ✅ 已完成 | 3 | 反复调试 | WA×2 |
> | CSP03-07C | 拓展训练（选做） | ⬜ 未提交 | 0 | — | — |
>
> **📊 分析**: A包5道题完成了4道，基础题全部掌握，提高题第5道考察的是字符串边界处理，还需要加强；B包必做课后作业已完成，知识点巩固得不错；C包拓展题未提交，学有余力可以尝试挑战。
> **错误分布**: 编译错误1次，答案错误4次，主要是边界条件考虑不周全，建议课后多练类似题目。
>
> A包前4题完成得都不错，说明课堂知识点吸收得很好。第5题虽然没做出来但也尝试了2次，调试能力在进步。希望课后能抽时间把第5题搞明白，理解边界条件的处理方法，而不是放着不管～加油呀！💪✨
