You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.
中小学数学卷子自动生成程序
项目概述
中小学数学卷子自动生成程序是一个基于 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
...
扩展性
程序具有良好的扩展性,可以轻松:
添加新的题目难度级别
支持更多的数学运算符
集成数据库存储
添加图形用户界面
支持自定义题目模板