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.
|
|
5 months ago | |
|---|---|---|
| .. | ||
| README.md | 5 months ago | |
README.md
数学试卷生成器 (Math Exam Generator)
项目概述
这是一个基于Java的中小学数学试卷自动生成程序,支持小学、初中和高中三个不同难度级别的数学题目生成。程序包含用户认证、题目生成、文件管理等功能。
项目结构
MathExamGenerator/
├── MathExamGenerator.java # 主程序文件
└── exams/ # 生成的试卷存储目录
├── zhangsan1/ # 用户个人目录
└── ...
核心类说明
1. User类
用户信息管理类,存储用户名、密码和用户类型。
2. QuestionGenerator抽象类
题目生成器的基类,定义了生成题目的通用方法。
3. 具体题目生成器
- PrimaryQuestionGenerator: 小学题目生成器(包含括号运算)
- JuniorQuestionGenerator: 初中题目生成器(包含平方和开方运算)
- SeniorQuestionGenerator: 高中题目生成器(包含三角函数运算)
4. AuthenticationManager类
用户认证管理,验证用户名和密码。
5. FileManager类
文件管理功能,包括题目保存和重复检查。
6. MathExamGenerator主类
程序入口,处理用户交互和流程控制。
编译说明
重要:编译时明确指定使用UTF-8编码
由于源代码中包含中文字符,在编译时必须指定UTF-8编码,否则会出现编码错误。
Windows系统编译命令:
javac -encoding UTF-8 MathExamGenerator.java
Linux/Mac系统编译命令:
javac -encoding UTF-8 MathExamGenerator.java
运行程序:
java MathExamGenerator
功能特性
用户认证系统
- 预置9个测试账户(小学、初中、高中各3个)
- 用户名格式:张三1/李四1/王五1,密码:123
- 支持用户登录和退出
题目生成功能
- 小学: 2-4个操作数,可能包含括号
- 初中: 包含平方(^2)和开方(√)运算
- 高中: 包含三角函数(sin/cos/tan)运算
智能去重
- 检查当前会话中的重复题目
- 检查历史文件中的重复题目
- 最大尝试次数限制,避免无限循环
文件管理
- 按用户分目录存储试卷
- 使用时间戳命名文件
- 支持GBK编码保存(适合中文Windows环境)
使用方法
1. 登录系统
请输入用户名和密码(用空格隔开):
张三1 123
当前选择为小学出题
2. 生成题目
准备生成小学数学题目,请输入生成题目数量(输入-1将退出当前用户,重新登录):
15
题目已保存到: exams/张三1/2024-01-20-14-30-25.txt
3. 切换题目类型
切换为初中
准备生成初中数学题目,请输入生成题目数量
4. 退出登录
输入-1将退出当前用户,重新登录
预置账户
| 用户类型 | 用户名 | 密码 | 说明 |
|---|---|---|---|
| 小学 | 张三1, 张三2, 张三3 | 123 | 生成小学题目 |
| 初中 | 李四1, 李四2, 李四3 | 123 | 生成初中题目 |
| 高中 | 王五1, 王五2, 王五3 | 123 | 生成高中题目 |
生成的题目示例
小学题目
1. 45 + (23 - 7)
2. 89 / 4 * 15
初中题目
1. 34 + 56^2 - √78
2. √25 * 16 + 9^2
高中题目
1. 45 + sin(30) * 67
2. cos(45) - 23 / tan(60)
技术特点
- 面向对象设计: 使用继承和多态实现不同难度的题目生成
- 异常处理: 完善的输入验证和错误处理
- 文件操作: 安全的文件读写操作,避免资源泄漏
- 编码处理: 正确处理中文字符编码问题
- 用户体验: 友好的命令行交互界面
注意事项
- 编码一致性: 确保编辑器和编译环境使用相同的编码(推荐UTF-8)
- 文件权限: 确保程序有权限创建exams目录和文件
- 输入验证: 程序对用户输入进行了基本验证,但建议输入符合要求的数值
- 性能考虑: 题目数量较多时,去重检查可能较慢,但设置了最大尝试次数限制
扩展建议
- 可以添加题目难度分级
- 支持自定义题目模板
- 添加题目答案生成和验证
- 支持更多数学运算和函数
- 添加图形界面版本
这个程序是一个完整的数学试卷生成解决方案,具有良好的可扩展性和维护性。