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.
luoyuehang f2dc12561b
v7.0
5 months ago
..
README.md v7.0 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)

技术特点

  1. 面向对象设计: 使用继承和多态实现不同难度的题目生成
  2. 异常处理: 完善的输入验证和错误处理
  3. 文件操作: 安全的文件读写操作,避免资源泄漏
  4. 编码处理: 正确处理中文字符编码问题
  5. 用户体验: 友好的命令行交互界面

注意事项

  1. 编码一致性: 确保编辑器和编译环境使用相同的编码推荐UTF-8
  2. 文件权限: 确保程序有权限创建exams目录和文件
  3. 输入验证: 程序对用户输入进行了基本验证,但建议输入符合要求的数值
  4. 性能考虑: 题目数量较多时,去重检查可能较慢,但设置了最大尝试次数限制

扩展建议

  1. 可以添加题目难度分级
  2. 支持自定义题目模板
  3. 添加题目答案生成和验证
  4. 支持更多数学运算和函数
  5. 添加图形界面版本

这个程序是一个完整的数学试卷生成解决方案,具有良好的可扩展性和维护性。