> 教材依据:人教 A 版(2019 年审定,依据《普通高中数学课程标准 2017 年版 2020 年修订》),河南现用版本。必修两册 + 选择性必修三册。2023/2024 仅为重印,内容未变。
测完马上给老师一张报告:哪些模块会了、哪些需要补、优先补什么。
┌─────────────┐
│ 打开网页 │
└──────┬──────┘
↓
┌─────────────┐
│ 输入姓名 │ ← 用于报告抬头,不存储
│ 选择学段 │ ← 高一 / 高二 / 高三
└──────┬──────┘
↓
┌─────────────┐
│ 开始答题 │ ← 18-20 道选择题
│ │ 每题独立显示,不翻页不回头
│ │ 顶部显示进度条(题号/总题数),不计时
└──────┬──────┘
↓
┌─────────────┐
│ 提交 → 报告 │ ← 自动生成,即时显示
│ │ 教师可在同一页面查看
└─────────────┘
`
2.2 教师端使用方式
1. 学生来上课,老师打开网页
2. 让学生自己输入姓名 + 选学段
3. 学生做题(不限时,从容作答)
4. 老师看报告 → 根据标红模块安排对应纸质练习
5. 练一两周后,学生再来做一次复测,看进步
2.3 复测逻辑
- 同一个学生再次测试,系统自动换题:同模块、同知识点、同难度,但题干数值或场景不同
- 每道题有版本号(v1、v2、v3…),复测时从上次没用过的版本中随机抽取
- 确保两次测评可比(测试的是同样的知识点),但不重题(不会因为记住答案而失真)
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 难度控制
- 一期全部为基础题:题目来源于课本例题、课后习题的等价变形。考察的是「知不知道这个知识点」,不是「会不会综合运用」。
- 每道题标注
difficulty: "basic",后续可加 medium 中档题作为进阶选项。
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 雷达图设计
- 每个模块一个轴(高一 10 个模块 = 十边形雷达图;高二 7 个模块 = 七边形)
- 轴上的值 = 该模块正确率(0%-100%)
- 三个颜色区域:红色(0-49%)、黄色(50-74%)、绿色(75-100%)
- 如果有历史记录,显示上次测评的虚线对比
`
集合与逻辑
/\
/ \ ─── 本次(实线)
/ ✅ \ - - 上次(虚线)
/ \
平面向量 不等式
/ \
/ ████ \
/ ██ ██ \
/ ██ 🔴 ██⚠️ \
/ ██ ██ \
三角函数──────函数概念
\ /
\ ✅ /
\ /
指数与对数
🔴
`
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 布局与间距
- 页面最大宽度:720px,居中
- 题干与选项间距:24px
- 选项之间:16px
- 模块间:40px
- 按钮最小高度:48px(方便手机点击)
- 卡片内边距:24px
- 移动端自适应:屏幕 < 600px 时页面宽度 100%,字号等比缩小
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%) │
│ ... │
├──────────────────────────┤
│ [ 🖨 打印报告 ] │
└──────────────────────────┘
``
*文档版本:v3.0 | 2026-05-25* *下一步:susu 逐条确认需求 → 拆解完整知识模块清单 → 生成高一数学 20 道样题*