---
name: csp03-sat1400-lesson18-review
description: CSP03周六1400第18课《总复习》完成记录，含OJ数据获取踩坑和补课学生处理
metadata:
  type: project
  date: 2026-07-04
  class: CSP03橙子周六1400
---

# CSP03周六1400 · 第18课《总复习》完成

**日期**: 2026-07-04
**出勤**: 到场4人（含补课1人），请假2人（郑子煜、张雨禾）

## 学生完成情况

| 学生 | 状态 | OJ-T3 | OJ-T4 |
|------|------|-------|-------|
| 魏铭轩 | 正常 | AC (TLE→AC, 2次) | 未提交 |
| 苏俊宇 | 正常 | AC (1次) | 未提交 |
| 卢华琛 | 正常 | AC (WA→WA→AC, 3次) | 未提交 |
| 潘沐辰 | 补课 | AC (1次) | 未提交 |

## 踩坑记录

### 1. hw_dict.json中的OJ作业包ID可能过时
- hw_dict.json中CSP03-18A的ID为`69acffad27e54d3ad7ef501b`，实际只有1道环境测试题且无提交记录
- 橙子提供了正确的作业包ID `6a3e1a6be17a0e56c3901363`，包含2道GESP真题（T3平衡序列 + T4回文拼接）
- **教训**: 当hw_dict.json中的作业ID返回空数据时，主动向橙子确认正确的OJ作业ID

### 2. OJ数据——HTML直接解析比正则可靠
- 终端中文乱码问题：用python-docx同样的思路，先把HTML保存为文件再Read
- Hydro OJ的提交记录页面结构清晰，直接从`<tr>`标签中提取分数、状态、题目、学生名

### 3. 补课学生潘沐辰无profile.md
- 来自其他老师班级，项目中无档案，不需要创建profile
- 课评保存在 `补课/潘沐辰/feedback/` 目录下正常生成

### 4. 课程计划只有15课，第18课不在计划中
- 第18课是期末总复习，知识点从录音中提取（两道OJ题串联枚举法+双指针+字符串操作）

**Why**: 记录本次课评生成过程中的问题和解决方案，供后续课评参考。
**How to apply**: 下次遇到hw_dict.json数据异常时直接向橙子确认作业ID；跨班级补课学生无profile也能正常生成课评。
