补全9月11日至13日课评:为13名学生创建请假文档,为5个班级创建总结文档

This commit is contained in:
chengzi
2026-09-13 19:34:34 +08:00
parent 167d832353
commit 21001eccf5
1322 changed files with 37510 additions and 4136 deletions

View File

@@ -22,8 +22,8 @@
## ⚠️ 重要规则
1. **OJ课次编号 ≠ 大纲编号**:OJ可能跳过或重排课次,必须按**标题匹配**
2. **只查A包(课堂练习)**:CSP03班OJ数据**只查询A作业包**,不查B/C包
3. **A包包含多道具体题目**:每个A包通常包含3~5道具体题目(如`CSP0309A1 银行叫号模拟`、`CSP0309A2 模拟发牌`等),需在OJ板块中按具体题目列出
2. **只查A包(课堂练习)**:CSP00/CSP04班OJ数据**只查询A作业包**,不查B/C包
3. **A包包含多道具体题目**:每个A包通常包含3~5道具体题目(如`CSP0409A1 银行叫号模拟`、`CSP0409A2 模拟发牌`等),需在OJ板块中按具体题目列出
4. **`hw_dict.json` 可能不准确**:如果配置的ID无数据,需要从课程页面重新查找
## 数据获取方式
@@ -32,7 +32,7 @@
```bash
python scripts/update_feedback_with_oj.py \
--course CSP03-<课次编号> \
--course CSP04-<课次编号> \
--title "<课程名称>" \
--class-name "<班级目录名>" \
--date <YYYYMMDD> \
@@ -61,13 +61,13 @@ client = httpx.Client(base_url=env['OJ_BASE_URL'], follow_redirects=True)
client.post('/login', json={"uname": env['OJ_USERNAME'], "password": env['OJ_PASSWORD']})
# 获取A作业包中的具体题目列表
hw_id = "69acffac27e54d3ad7ef5013" # CSP03-10A
hw_id = "69acffac27e54d3ad7ef5013" # CSP04-10A
r = client.get(f'/homework/{hw_id}')
problems = re.findall(r'href="/p/([^"?]+)\?tid=' + hw_id + r'"[^>]*><b>([^<]+)</b>(?:&nbsp;|\s)*([^<]*)</a>', r.text)
# 返回: [("CSP0309A1", "CSP0309A1", "银行叫号模拟"), ...]
# 返回: [("CSP0409A1", "CSP0409A1", "银行叫号模拟"), ...]
```
## <EFBFBD><EFBFBD>业ID映射
## 作业ID映射
作业ID存储在 `config/hw_dict.json`,格式为:
@@ -105,3 +105,16 @@ A/B/C分别对应:课堂练习 / 课后作业 / 拓展练习
- 总题目数以OJ实际为准(不固定)
- 如果只有1个作业包,统计该包内所有题目的完成情况
- 如果有多个作业包,分别统计每类(课堂练习/课后作业/拓展练习)的完成情况
---
## 📌 当前学期课程定位(2026秋季 · CSP04)
> ⚠️ **2026秋季起 `hw_dict.json` 中 CSP04-* 已更新为新学期 ID**(旧 ID 对应历史学期,已备份至 `.claude/temp/`)。
- **课程**: 2026 秋季班 CSP04(20 课次,对标 GESP 四级)
- **课程页**: https://oj.qonnwolf.com/course/6a826183bdde81887a2237b5
- **每课 A 包(课堂练习)作业 ID 对照表**: `.claude/lesson/CSP/CSP04/OJ作业ID-2026秋.md`
- **题号命名**: 第 N 课题目形如 `S040NP1`(P=编程题)、`S040NA6/A7`(选择/判断题,同属A包)、`S040NB*`(课后作业)、`S040NC*`(拓展练习)
- **上课代码文件夹对照**: `C++代码/CSP04/NN/` ↔ OJ 第 NN 章(如 `C++代码/CSP04/01/` ↔ 第1课「01 基础回顾」,内含 S0401P1~P5 五道题的参考代码)
- **查 OJ 数据流程(课评用)**: 登录后 ① 按 `OJ作业ID-2026秋.md` 取该课 A 包 tid → ② 抓 `/homework/{tid}` 题目清单与 `/record?tid={tid}` 提交记录 → ③ 按学生分析 AC/WA/提交次数。注意:A 包除 P1~P5 编程题外通常还有 A6/A7 选择判断题,也计入统计(以 OJ 实际题目数为准)。