# 中小学数学卷子自动生成程序 ## 一、项目概述 ### 1.1 项目简介 本项目是一个中小学数学卷子自动生成程序,可以根据不同学段(小学、初中、高中)自动生成符合知识难度的数学题目,并支持题目去重、保存为文件、用户登录验证等功能。程序的核心目标是帮助教师快速生成练习题卷,减轻出题负担,提高教学效率。 ### 1.2 功能特点 - 用户登录与权限管理:不同学段用户账号独立,防止越权生成题目。 - 分学段题目生成:根据小学、初中、高中难度生成对应题目。 - 随机出题:每次生成的题目随机,保证练习多样性。 - 题目去重:检查历史题目,避免重复出题。 - 文件保存:自动按用户、学段、时间生成规范文件名保存题目。 --- ## 二、系统结构 ### 2.1 目录结构 ``` 中小学数学卷子自动生成程序/ ├── src │ ├── main.py # 程序入口,控制整体流程 │ ├── user_manager.py # 用户管理与身份验证 │ ├── file_handler.py # 文件读写与查重 │ └── question_generator.py # 分学段数学题目生成 ├── doc │ ├── README.md │ └── 个人项目使用大模型后人工修改代码一览表/ └── README.md # 项目总说明 ``` ### 2.2 核心模块 | 模块文件 | 功能描述 | |----------------------|----------| | main.py | 程序入口,实现登录、出题数量输入、学段切换、题目生成与保存流程 | | user_manager.py | 管理用户账号、密码及对应学段,提供登录验证功能 | | file_handler.py | 管理用户文件夹、题目文件保存、历史题目读取与查重 | | question_generator.py| 根据学段生成数学题目,支持基础运算、函数、三角函数等题型 | --- ## 三、运行说明 ### 3.1 运行环境 - 操作系统:Windows 7/8/10/11 系统 - 无需安装 Python 环境,直接运行可执行文件即可 ### 3.2 运行步骤 1. #### 启动程序 #### - 双击运行 main.exe 文件,程序将在 Windows 终端中启动 2. #### 登录流程 #### - 程序启动后,会提示输入用户名和密码(格式:用户名 密码,中间用空格分隔) - 输入正确的用户名和密码后,程序会显示当前账户对应的题目难度 1. #### 生成题目 #### - 登录成功后,程序会提示输入生成题目数量(10-30 道之间) - 输入符合要求的数字(10-30),程序将自动生成对应数量的题目 - 生成完成后,题目会保存到以用户名命名的文件夹(如张三1_questions/)下的文本文件中 - 程序会预览前 3 道题目,并显示保存路径 4. #### 切换难度 #### - 在输入题目数量的提示下,可输入以下指令切换题目难度: (1)输入 "切换为小学":生成小学难度题目(包含 +、-、*、/ 和括号) (2)输入 "切换为初中":生成初中难度题目(包含平方、开根号及小学难度所有运算) (3)输入 "切换为高中":生成高中难度题目(包含 sin、cos、tan 三角函数及初中难度所有运算) 5. #### 退出登录 #### - 在输入题目数量的提示下,输入 "-1" 可退出当前用户登录,返回初始登录界面 ### 3.3 预设用户 | 用户名 | 密码 | 学段 | |--------|------|------| | 张三1 | 123 | 小学 | | 张三2 | 123 | 小学 | | 张三3 | 123 | 小学 | | 李四1 | 123 | 初中 | | 李四2 | 123 | 初中 | | 李四3 | 123 | 初中 | | 王五1 | 123 | 高中 | | 王五2 | 123 | 高中 | | 王五3 | 123 | 高中 | --- ## 四、文件保存说明 - 生成的题目文件会保存在程序运行目录下的[用户名]_questions文件夹中 - 文件名格式为[当前时间]_[难度类型].txt,例如2023-10-01-15-30-45_小学.txt - 每个题目文件中包含生成的所有题目,每题带有题号,题目之间用空行分隔 ## 五、开发协作规范 ### 5.1 分支管理 - **main**:稳定版本,仅合并测试通过的代码 - **develop**:开发主线,集成最新功能 ## 六、 注意事项 1. 用户名可以包含空格,但密码不能包含空格 2. 题目数量必须在 10-30 道之间,否则会提示输入无效 3. 程序会自动检查重复题目,确保生成的题目与历史题目不重复 4. 生成的除法题目保证除数不为 0 且能整除,避免出现小数结果 5. 若程序运行过程中出现错误,会在终端中显示错误信息