4.4 KiB
中小学数学卷子自动生成程序
项目概述
中小学数学卷子自动生成程序是一个基于 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
...
扩展性
程序具有良好的扩展性,可以轻松:
添加新的题目难度级别
支持更多的数学运算符
集成数据库存储
添加图形用户界面
支持自定义题目模板