中小学数学卷子自动生成程序 项目概述 中小学数学卷子自动生成程序是一个基于 Java 开发的命令行应用程序,旨在帮助小学、初中和高中数学老师快速生成符合教学要求的数学题目。程序支持不同难度级别的题目生成、用户认证、题目查重和文件保存等功能。 核心功能 🔐 用户认证系统 预设账户:系统内置小学、初中、高中各三个教师账户 登录验证:通过用户名和密码进行身份验证 权限分级:根据账户类型自动确定题目难度级别 📚 题目生成引擎 小学题目 运算符:加(+)、减(-)、乘(\*)、除(/) 特殊要求:可能包含括号 操作数:2-5个操作数,取值范围1-100 初中题目 运算符:包含平方(²)、开根号(√)等高级运算符 特殊要求:至少包含一个平方或开根号运算符,且必须通过四则运算连接其他操作数 操作数:3-5个操作数,取值范围1-100 高中题目 运算符:包含三角函数(sin、cos、tan) 特殊要求:至少包含一个三角函数和一个平方/开根号运算符 操作数:2-5个操作数,取值范围1-100 🔄 交互功能 难度切换:登录后可通过命令切换题目难度 题目数量控制:支持生成10-30道题目 重复检测:避免生成与历史题目重复的内容 灵活退出:支持退出当前用户重新登录 💾 文件管理 按用户分文件夹:每个用户的题目单独存放 时间戳命名:文件格式为"年-月-日-时-分-秒.txt" 规范格式:每道题目有序号,题目间空一行 技术架构 项目结构 text MathGenerator/ └── src/   └── main/   └── java/   ├── org.example/   │ └── Main.java # 主程序入口   ├── entity/   │ ├── User.java # 用户实体类   │ └── Question.java # 题目实体类   ├── service/   │ ├── UserService.java # 用户认证服务   │ ├── QuestionService.java # 题目生成服务   │ ├── FileService.java # 文件操作服务   │ └── ValidationService.java # 输入验证服务   ├── factory/   │ ├── QuestionFactory.java # 题目生成器工厂   │ └── QuestionGenerator.java # 题目生成器接口   └── generator/   ├── PrimaryQuestionGenerator.java # 小学题目生成器   ├── JuniorQuestionGenerator.java # 初中题目生成器   └── SeniorQuestionGenerator.java # 高中题目生成器 设计模式 工厂模式:通过 QuestionFactory 创建不同难度的题目生成器 策略模式:QuestionGenerator 接口支持多难度题目生成策略 分层架构:清晰的 entity-service-factory 分层结构 使用指南 启动程序 bash mvn clean package java -jar target/math-test-generator.jar 操作流程 登录系统 text 请输入用户名和密码(用空格隔开): 张三1 123 当前选择为小学出题 生成题目 text 准备生成小学数学题目,请输入生成题目数量(输入-1将退出当前用户,重新登录): 15 题目已生成并保存到: exams/张三1/2025-01-20-14-30-25.txt 切换难度 text 切换为初中 准备生成初中数学题目,请输入生成题目数量 退出登录 text 输入-1将退出当前用户,重新登录 预设账户 类型 用户名 密码 小学 张三1, 张三2, 张三3 123 初中 李四1, 李四2, 李四3 123 高中 王五1, 王五2, 王五3 123 代码规范 项目严格遵循 Google Java 编码规范: 使用 2 空格缩进 完整的 Javadoc 注释 清晰的包和类结构 方法长度控制在 40 行以内 有意义的命名约定 输出示例 生成的题目文件格式: text 1\. 25 + 47 - 13 2\. (18 \* 3) / 6 + 29 3\. 45 - 17 + 32 \* 2 ... 扩展性 程序具有良好的扩展性,可以轻松: 添加新的题目难度级别 支持更多的数学运算符 集成数据库存储 添加图形用户界面 支持自定义题目模板