高中数学快速知识测评系统 — 需求文档 v3.0

> 教材依据:人教 A 版(2019 年审定,依据《普通高中数学课程标准 2017 年版 2020 年修订》),河南现用版本。必修两册 + 选择性必修三册。2023/2024 仅为重印,内容未变。

1. 项目背景与目标

1.1 使用场景

1.2 核心目标

系统性地摸清一个学生对高中数学基础知识的掌握情况。不做限时,学生从容作答。

测完马上给老师一张报告:哪些模块会了、哪些需要补、优先补什么。

1.3 成功标准

| 指标 | 目标 | |

|

| | 题目数量 | 18-20 道(覆盖该学段全部核心模块) | | 报告可读性 | 老师扫一眼(≤30 秒)就知道该学生薄弱在哪里 | | 测评间隔 | 建议练习 1-2 周后复测,系统不强制间隔 | | 上手门槛 | 学生只需输入姓名 + 选择学段即可开始,无需注册 | | 计时 | 系统不显示计时器,预估时间仅供教师参考 |

2. 用户流程

2.1 学生端完整流程

`` ┌─────────────┐ │ 打开网页 │ └──────┬──────┘ ↓ ┌─────────────┐ │ 输入姓名 │ ← 用于报告抬头,不存储 │ 选择学段 │ ← 高一 / 高二 / 高三 └──────┬──────┘ ↓ ┌─────────────┐ │ 开始答题 │ ← 18-20 道选择题 │ │ 每题独立显示,不翻页不回头 │ │ 顶部显示进度条(题号/总题数),不计时 └──────┬──────┘ ↓ ┌─────────────┐ │ 提交 → 报告 │ ← 自动生成,即时显示 │ │ 教师可在同一页面查看 └─────────────┘ `

2.2 教师端使用方式

1. 学生来上课,老师打开网页 2. 让学生自己输入姓名 + 选学段 3. 学生做题(不限时,从容作答) 4. 老师看报告 → 根据标红模块安排对应纸质练习 5. 练一两周后,学生再来做一次复测,看进步

2.3 复测逻辑

3. 题目数量设计:为什么是 18-20 道

3.1 核心原则

> 少到能快速做完,多到能区分出薄弱模块。

| 题量 | 优点 | 缺点 | |



|

|

| | 8-10 道 | 太快 | 模块覆盖不全,一题错整个模块就标红,误判率高 | | 18-20 道 | 适中,各模块抽 1-2 题,有统计意义 | — | | 25-30 道 | 覆盖更全 | 耗时过长,跟做卷子差不多了 |

3.2 各学段题数分配

原则:该学段有多少核心模块,就各抽 2-4 道。权重根据模块课时占比微调。

| 学段 | 核心模块数 | 总题数 | 预估用时 | |



|


--|

--|

--| | 高一 | 10 个 | 20 题 | 约 20-30 分钟 | | 高二 | 7 个 | 18 题 | 约 20-25 分钟 | | 高三 | 综合(17 模块) | 20 题 | 约 25-30 分钟 |

> ⚠️ 系统不显示计时器。以上时间为经验预估,供教师参考。基础弱的学生可以慢慢做。

4. 知识模块详细拆解(人教 A 版 · 2019 年审定 · 河南现用)

4.1 高一(必修第一册 + 必修第二册,10 模块,20 题)

| # | 教材 | 模块 | 覆盖知识点 | 抽题 | |


|

|

|


--|

| | 1 | 必修一 | 集合与常用逻辑用语 | 集合运算、集合关系、充要条件、全称/存在量词 | 2 | | 2 | 必修一 | 一元二次函数、方程和不等式 | 一元二次不等式解法、基本不等式、三个二次关系 | 2 | | 3 | 必修一 | 函数的概念与性质 | 定义域值域、单调性、奇偶性、函数图像变换 | 2 | | 4 | 必修一 | 指数函数与对数函数 | 指数/对数运算、换底公式、指对函数性质与图像 | 2 | | 5 | 必修一 | 三角函数 | 任意角与弧度制、诱导公式、图像与性质、恒等变换 | 2 | | 6 | 必修二 | 平面向量及其应用 | 线性运算、坐标表示、数量积、余弦定理应用 | 2 | | 7 | 必修二 | 复数 | 复数四则运算、共轭复数、模长 | 1 | | 8 | 必修二 | 立体几何初步 | 空间几何体表面积体积、线面平行垂直判定 | 2 | | 9 | 必修二 | 统计 | 抽样方法、频率分布直方图、用样本估计总体 | 2 | | 10 | 必修二 | 概率 | 古典概型、互斥事件、独立事件概率 | 2 | | 合计 | | | | 19 题 → 取整 20 题 |

> 复数只抽 1 题——内容少、独立性强,不需要更多。多余 1 题分配给函数或三角等高频模块。

4.2 高二(选择性必修第一/二/三册,7 模块,18 题)

| # | 教材 | 模块 | 覆盖知识点 | 抽题 | |


|

|

|


--|

| | 1 | 选必一 | 空间向量与立体几何 | 空间直角坐标系、线面角与二面角、距离 | 2 | | 2 | 选必一 | 平面解析几何 | 直线方程、圆的方程、椭圆/双曲线/抛物线标准方程与基本性质 | 4 | | 3 | 选必二 | 数列 | 等差/等比数列通项与求和、简单递推公式 | 3 | | 4 | 选必二 | 一元函数导数及其应用 | 导数定义与运算、单调区间、极值与最值 | 4 | | 5 | 选必三 | 计数原理 | 排列组合、二项式定理 | 2 | | 6 | 选必三 | 随机变量及其分布 | 二项分布、超几何分布、期望与方差 | 2 | | 7 | 选必三 | 成对数据的统计分析 | 回归分析基础、独立性检验基础 | 1 | | 合计 | | | | 18 题 |

4.3 高三(综合测评,17 模块,20 题)

高三测评覆盖高一 10 模块 + 高二 7 模块全部 17 个模块。权重侧重河南高考高频考察点:

| 优先级 | 模块 | 抽题 | |



--|

|

| | 高 | 函数与导数(必修一函数 + 选必二导数整合) | 3 | | 高 | 解析几何(直线圆 + 圆锥曲线) | 3 | | 高 | 三角函数与向量(三角 + 平面向量整合) | 3 | | 中 | 数列 | 2 | | 中 | 概率统计(统计 + 概率 + 随机变量整合) | 2 | | 中 | 立体几何(立体几何初步 + 空间向量整合) | 2 | | 基础 | 集合与逻辑、不等式、复数、计数原理、统计分析 | 各 1 题(共 5 题) | | 合计 | | 20 题 |

4.4 难度控制

5. 题库数据结构

`json { "id": "math-g1-set-001", "module": "集合与逻辑", "grade": "高一", "knowledge_point": "集合的交并补运算", "difficulty": "basic", "version": 1, "question": "已知集合 A={1,2,3},B={2,3,4},则 A∩B =( )", "options": [ {"label": "A", "text": "{1,2,3,4}"}, {"label": "B", "text": "{2,3}"}, {"label": "C", "text": "{1,4}"}, {"label": "D", "text": "∅"} ], "answer": "B", "distractors": { "A": "混淆了交集与并集", "C": "没有理解交集概念", "D": "认为没有公共元素" } } `

字段说明

| 字段 | 类型 | 用途 | |

|

|

| |
id | string | 唯一标识,格式:math-{学段缩写}-{模块缩写}-{序号} | | module | string | 所属知识模块,用于报告分组统计 | | grade | string | 所属学段(高一/高二/高三) | | knowledge_point | string | 细分知识点标签,每个模块下 2-5 个知识点 | | difficulty | string | basic(基础)/ medium(中档),一期全用 basic | | version | int | 同知识点不同题目版本号(1/2/3…),用于复测换题 | | question | string | 题干(可含简单 LaTeX 公式,前端渲染) | | options | array | 四个选项,单选 | | answer | string | 正确选项的 label | | distractors | object | 错误选项对应的常见错误类型,用于生成有针对性的报告 |

LaTeX 公式约定

题目中涉及数学公式用
$...$ 包裹,前端用 KaTeX 渲染。例: ` "已知 $f(x)=x^2-2x+3$,则 $f(x)$ 的最小值为( )" `

6. 报告设计

6.1 报告包含内容(两段式布局)

上段:雷达图 — 一目了然看整体 下段:详细分析 — 针对薄弱模块的具体建议

6.2 雷达图设计

` 集合与逻辑 /\ / \ ─── 本次(实线) / ✅ \ - - 上次(虚线) / \ 平面向量 不等式 / \ / ████ \ / ██ ██ \ / ██ 🔴 ██⚠️ \ / ██ ██ \ 三角函数──────函数概念 \ / \ ✅ / \ / 指数与对数 🔴 `

6.3 掌握程度判定

| 正确率 | 图标 | 等级 | 雷达图区域色 | 含义 | |

--|

|

|



-|

| | ≥75% | ✅ | 掌握 | 绿色 | 该模块基础过关 | | 50%-74% | ⚠️ | 需加强 | 黄色 | 部分知识点有漏洞 | | <50% | 🔴 | 薄弱 | 红色 | 尚未建立基本概念 |

6.4 详细分析区域

雷达图下方列出各模块的文字分析,按薄弱程度排序:

` 📌 薄弱模块分析

🔴 指数与对数 — 正确率 33%(1/3) ▸ 问题:对数换底公式应用错误、指对函数单调性判断不准 ▸ 建议:从课本对数定义重新讲起,先练换底公式 10 道,再练函数性质对比

⚠️ 不等式 — 正确率 50%(1/2) ▸ 问题:基本不等式等号成立条件遗漏 ▸ 建议:强调「一正二定三相等」,做条件判断题 5-8 道

⚠️ 三角函数 — 正确率 50%(2/4) ▸ 问题:诱导公式「奇变偶不变」符号方向混淆、恒等变换方向不熟练 ▸ 建议:画单位圆辅助记忆诱导公式,恒等变换从 sin²+cos²=1 出发逐级练 `

6.5 历史对比(第二次及以后测评)

如果 localStorage 中有该学生同年级的历史记录,自动显示对比:

` 📈 与上次对比(2026-05-18 → 2026-06-01,间隔 14 天)

模块 上次 本次 变化 指数与对数 33% → 67% ⬆ +34% 不等式 50% → 75% ⬆ +25% 三角函数 50% → 50% → 持平 函数概念 100% → 100% ✅ 保持 ... `

6.6 教师拿到报告后做什么

1. 看雷达图 🔴 区域 → 先补这些,从最基础的课本定义和例题开始 2. 看详细建议 → 按建议的数量和类型出纸质练习题 3. 看对比 → 确认上次补的模块有没有进步,没动的要继续 4. 练习 1-2 周后复测,看 🔴→⚠️→✅ 的变化

7. 技术方案

7.1 架构决策:纯前端 + 浏览器本地存储

| 选项 | 纯前端 + localStorage(✅ 采用) | 有后端 | |

|




--|

--| | 服务器 | 不需要 | 需要维护 | | 费用 | 零 | 最低几十/月 | | 部署 | 跟作品集一样,拖到 Cloudflare Pages | 需配置服务器 | | 数据存储 | 存在学生自己的浏览器里(localStorage) | 存在云端 | | 历史对比 | ✅ 同设备同名字自动对比上次 | ✅ 但复杂 | | 维护 | 零运维 | 需定期维护 |

结论:题目数据放前端 JSON,答题和报告计算在浏览器完成。报告自动保存在浏览器 localStorage 中。同一设备、同一姓名再次测评时,自动显示「上次 vs 本次」对比。不需要服务器、不花钱、不需要隐私合规。

7.1.1 localStorage 存储设计

` Key: susu-quiz-{姓名}-{学段} Value: JSON 数组,每次测评结果追加

示例: susu-quiz-张三-高一 = [ { date: "2026-05-25", total: 20, correct: 14, modules: { "集合与常用逻辑用语": { correct: 2, total: 2 }, "一元二次函数方程不等式": { correct: 1, total: 2 }, ... } }, { // 第二次测评 date: "2026-06-08", total: 20, correct: 17, modules: { ... } } ] ` > 限制:只存最近 10 次测评,防止存储膨胀。学生换设备看不到旧记录,但来辅导班一般用固定手机/平板,影响不大。

7.2 技术栈

` 前端:HTML5 + CSS3 + Vanilla JS(无框架) 公式渲染:KaTeX(CDN 引入,轻量,用于题干中的数学公式 $...$) 雷达图:Chart.js(CDN 引入,用于报告页雷达图绘制) 题库:questions.js(JSON 格式,按年级分数组) 存储:localStorage(浏览器本地存储) 部署:Cloudflare Pages(已有账号) `

7.2.1 CDN 引入

`html <!-- KaTeX 数学公式渲染 --> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.16.9/dist/katex.min.css"> <script src="https://cdn.jsdelivr.net/npm/katex@0.16.9/dist/katex.min.js"></script>

<!-- Chart.js 雷达图 --> <script src="https://cdn.jsdelivr.net/npm/chart.js@4.4.0/dist/chart.umd.min.js"></script> `

7.3 文件结构

` / ├── index.html # 首页:学生登录 + 学段选择 ├── quiz.html # 测评页:逐题展示 + 进度条(不计时) ├── report.html # 报告页:模块正确率 + 薄弱分析 ├── css/ │ └── style.css # 统一样式 ├── js/ │ ├── questions.js # 题库数据(抽题逻辑也在这里) │ ├── quiz.js # 答题逻辑:选项交互、进度条、提交 │ ├── report.js # 报告生成:计算正确率、雷达图、排序薄弱模块 └── admin.html # 教师端(二期) `

7.4 核心功能点

| 功能 | 实现方式 | |

|


| | 学段选择 | 首页三个按钮:高一/高二/高三,点击进入对应题库 | | 随机抽题 | 按模块比例从题库中随机选取,确保覆盖所有模块 | | 逐题展示 | 每次只显示一道题,选择后点「下一题」(不可回退) | | 进度条 | 顶部显示「第 X/20 题」+ 绿色进度条 | | 计时器 | ❌ 不显示 | | 报告生成 | 提交后计算各模块正确率,按等级着色 | | 复测换题 | 同知识点不同 version 号,随机抽且避开上次用过的 | | 打印报告 | 页面有「打印」按钮,适配 A4 纸(爸爸习惯纸质) |

8. 实施计划

| 阶段 | 内容 | 交付物 | 验收标准 | |



|

|

--|


| | ① 需求确认 | 本文档 | 需求文档 v3.0 | susu 逐条确认无修改 | | ② 模块拆解 | 拆解高一 10 大模块 + 高二 7 模块 + 每个模块下 2-5 个细分知识点 | 完整知识模块清单(表格) | susu 或爸爸扫一眼,确认模块划分与教材一致 | | ③ 生成样题 | 按清单生成高一数学 20 道样题(基础题,单选) | 样题库 JSON | 紧扣课本难度、知识点覆盖正确、选项有迷惑性 | | ④ 前端开发 | 登录页 + 答题页 + 报告页 | HTML/CSS/JS | 能走通完整流程:登录→答题→雷达图报告 | | ⑤ 题库扩充 | 高一 10 模块 × 每知识点 3 个版本 ≈ 90-100 题 | 完整题库 JSON | 每知识点至少 3 个版本,够 3 次复测轮换 | | ⑥ 部署测试 | 上线 + 爸爸试用 | Cloudflare Pages 链接 | 爸爸用真实学生测一次,反馈修改 | | ⑦ 高二扩充 | 按爸爸反馈修正 + 扩充高二 7 模块题库 | 全模块题库 | 高二学生可测 | | ⑧ 高三综合 | 高三综合测评 + 全题库完善 | 全高中完整系统 | 三个学段均可测评 |

9. 不做的事情(明确边界)

| 不在范围内 | 原因 | |




--|

| | ❌ 用户注册/登录系统 | 一期只需要姓名 + 学段,不需要账号体系 | | ❌ 题库管理后台 | 一期题量小,直接改 JSON 文件更简单 | | ❌ 初中数理化 | 先把高中数学跑通再扩展 | | ❌ 历史数据存储 | 一期报告当场看,不存云端 | | ❌ 大题/填空题 | 选择题自动批改零人工,准确率 100% | | ❌ 手机 App | 网页版响应式适配手机即可 |

10. 题库规模预估

| 阶段 | 内容 | 题量 | |



|

|

| | 样题 | 高一数学,每个模块抽知识点各出 1-2 道 | 约 20 道 | | 一期 | 高一 10 模块,每知识点 3 个版本 | 约 90-100 道 | | 二期 | 高二 7 模块 | +约 70-80 道 | | 三期 | 高三综合 + 补充版本 | +约 50 道 | | 全高中 | | 约 220 道 |

每道题 AI 生成后需爸爸审核。审核重点:①题目是否有科学性错误 ②难度是否符合「基础」定义 ③四个选项是否有真实迷惑性。

11. 设计规范

11.1 整体风格

白底为主 + 薄荷绿点缀。简洁干净,像一张清爽的试卷纸。没有花哨装饰、没有多余颜色。不使用蓝色。

11.2 配色

| 用途 | 色值 | 说明 | |

|

|

| | 背景 |
#ffffff | 纯白 | | 主文字 | #2d2d2d | 深灰,阅读舒适 | | 绿色主色 | #4CAF50 | 按钮、进度条、正确标记 | | 绿色深色 | #2E7D32 | 按钮 hover、选中状态 | | 错误标记 | #e74c3c | 仅报告页薄弱标注 | | 警告标记 | #f39c12 | 需加强标注 | | 分割线 | #e8e8e8 | 极浅灰 | | 选中高亮 | #E8F5E9 | 极浅绿,选项选中时背景 |

11.3 字体与字号

| 元素 | 字号 | 字重 | |

|

|

| | 页面大标题 | 28px | Bold | | 模块标题 | 20px | Bold | | 题干文字 | 18px | Regular,行间距 1.8 | | 选项文字 | 16px | Regular,间距 12px | | 按钮文字 | 16px | Medium | | 报告表格 | 14px | Regular |

字体:系统默认中文字体(PingFang SC / 苹方),数字与英文用系统等宽字体。

11.4 布局与间距

11.5 三个页面布局

页面1 — 开始页 ` ┌──────────────────────────┐ │ │ │ 高中数学 │ │ 快速知识测评 │ ← 大标题,深灰,居中 │ │ │ 姓名:______________ │ ← 输入框,浅灰边框 │ │ │ 年级: │ │ [ 高一 ] [ 高二 ] [ 高三 ] ← 三个按钮,未选中白底灰边 │ 选中后绿底白字 │ │ │ ┌──────────┐ │ │ │ 开始测评 │ │ ← 绿色大按钮,圆角 8px │ └──────────┘ │ └──────────────────────────┘ `

页面2 — 答题页 ` ┌──────────────────────────┐ │ 第 5/20 题 ██████░░░░ │ ← 顶栏:题号 + 绿色进度条 ├──────────────────────────┤ │ │ │ 已知集合 A={1,2}, │ ← 题干,字号 18px │ B={2,3},则 A∪B=? │ 行间距 1.8 │ │ │ ○ A. {1} │ ← 选项,16px,大间距 │ ● B. {1,2,3} │ 选中时:浅绿背景 + │ ○ C. {2} │ 绿色左边框高亮 │ ○ D. {1,2} │ │ │ ├──────────────────────────┤ │ [ 下一题 → ] │ ← 绿边白底按钮,固定底部 └──────────────────────────┘ `

页面3 — 报告页 ` ┌──────────────────────────┐ │ 张三 · 高一 · 测评报告 │ ← 标题 │ 2026-05-25 │ ← 日期 ├──────────────────────────┤ │ │ │ [ 雷达图区域 ] │ ← Canvas 绘制 │ 十边形雷达图 │ 绿色=≥75%,黄色=50-74% │ 各模块正确率 │ 红色=<50% │ │ ├──────────────────────────┤ │ 模块 正确/总数 正确率 │ │ ─────────────────────── │ │ ✅ 集合与逻辑 2/2 100% │ │ ⚠️ 不等式 1/2 50% │ │ 🔴 指数与对数 1/3 33% │ │ ... │ ├──────────────────────────┤ │ 📌 建议优先强化 │ │ 1. 指数与对数(33%) │ │ ▸ 薄弱:对数换底公式 │ │ ▸ 建议:从课本定义重讲 │ │ 2. 不等式(50%) │ │ ... │ ├──────────────────────────┤ │ [ 🖨 打印报告 ] │ └──────────────────────────┘ ``

12. 已确认决策

13. 待确认事项


*文档版本:v3.0 | 2026-05-25* *下一步:susu 逐条确认需求 → 拆解完整知识模块清单 → 生成高一数学 20 道样题*