# exercises-glm **Repository Path**: zhyuu/exercises-glm ## Basic Information - **Project Name**: exercises-glm - **Description**: No description available - **Primary Language**: Python - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-01-16 - **Last Updated**: 2026-01-16 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 数学题生成引擎 基于 FastAPI 的数学题生成 Web 应用,支持自定义参数生成练习卷。 ## ✨ 功能特性 - ✅ **四种题型**:加法、减法、乘法、除法 - ✅ **数值范围控制**:自由设置起始值和终止值 - ✅ **进位/借位控制**:可控制是否需要进位/借位 - ✅ **题量控制**:100/200/300 题或自定义数量(1-500题) - ✅ **不重复保证**:可选是否生成不重复的题目 - ✅ **A4 打印适配**:自动适配布局,单页不溢出 - ✅ **美观的 Web 界面**:简洁易用的操作界面 ## 🚀 快速开始 ### 1. 安装依赖 ```bash pip install -r requirements.txt ``` ### 2. 启动服务 ```bash python main.py ``` 服务将在 `http://localhost:8000` 启动。 ### 3. 使用 Web 界面 在浏览器中打开 `http://localhost:8000`,即可看到首页。 ## 📖 使用说明 ### 首页参数设置 1. **题型选择**:选择加法、减法、乘法或除法 2. **数值范围**:输入起始值和终止值(例如:20以内加法 → 起始值0,终止值20) 3. **进位/借位控制**: - 需要:只生成需要进位/借位的题目 - 不需要:只生成不进位/不借位的题目 - 不限制:随机生成 4. **题目数量**: - 100 题(大字模式)- 适合幼小衔接 - 200 题(标准模式)- 适合日常练习 - 300 题(紧凑模式)- 适合快速刷题 - 自定义数量 - 自由选择 1-500 题 ### 生成和打印 1. 点击「🎯 生成练习卷」按钮 2. 等待题目生成完成 3. 在生成页面点击「🖨️ 打印」按钮 4. 确保打印设置为 **A4 纸张**,即可打印 ## 📝 使用示例 ### 示例 1:20以内加法 - 题型:加法 - 起始值:0 - 终止值:20 - 进位控制:不限制 - 题目数量:100题 ### 示例 2:100以内减法(不退位) - 题型:减法 - 起始值:1 - 终止值:100 - 进位控制:不需要 - 题目数量:200题 ### 示例 3:九九乘法表练习 - 题型:乘法 - 起始值:1 - 终止值:9 - 进位控制:不限制 - 题目数量:81题(自定义) ## 🛠️ 技术栈 - **后端**:FastAPI - **前端**:HTML5 + CSS3 + JavaScript - **样式**:原生 CSS,无依赖 ## 📁 项目结构 ``` exercises-codebuddy/ ├── main.py # FastAPI 主程序 ├── math_engine.py # 数学题生成引擎 ├── requirements.txt # Python 依赖 ├── static/ # 静态文件目录 │ ├── index.html # 首页(参数输入) │ └── generate.html # 生成页面(题目展示) ├── templates/ # HTML 模板目录 │ ├── math_sheet_adaptive.html # 自适应 A4 模板 │ ├── generate_sheet_adaptive.py # 生成脚本 │ └── math_sheet.html # 旧版模板 └── test_engine.py # 测试脚本 ``` ## 🔧 API 接口 ### POST /api/generate 生成数学题 **请求参数:** ```json { "question_type": "addition", "count": 100, "min_num": 0, "max_num": 20, "carry": null, "unique": true } ``` **响应:** ```json { "success": true, "message": "成功生成 100 道题目", "data": [ { "index": 1, "question": "12 + 8 = ?", "answer": 20 } ] } ``` ### GET /stats 查看已生成题目统计 ### POST /reset 重置已生成的题目记录 ## 💡 提示 - 除法题保证整除 - 生成页面可以点击右上角「← 返回首页」重新生成 - 打印时建议勾选「打印背景图形」以保留边框样式 - 大字模式适合视力保护,紧凑模式适合快速刷题 ## 📄 许可证 MIT License