|
|
# 数学题目生成系统
|
|
|
|
|
|
## 项目简介
|
|
|
|
|
|
一个基于Java的命令行数学题目生成系统,支持小学、初中、高中三个难度级别的题目自动生成,具备用户认证和题目管理功能。
|
|
|
|
|
|
## 环境要求
|
|
|
|
|
|
- **JDK版本**: JDK 8 或更高版本
|
|
|
- **操作系统**: Windows/Linux/macOS
|
|
|
|
|
|
## 运行方式
|
|
|
|
|
|
### 1. 编译项目
|
|
|
```bash
|
|
|
# 进入项目根目录(包含math文件夹的目录)
|
|
|
javac math/*.java
|
|
|
```
|
|
|
|
|
|
### 2. 运行系统
|
|
|
```bash
|
|
|
# 运行主程序
|
|
|
java math.MathQuestionSystem
|
|
|
# 运行可执行文件
|
|
|
chcp 65001
|
|
|
java -jar math.jar
|
|
|
```
|
|
|
|
|
|
## 使用命令
|
|
|
|
|
|
### 登录系统
|
|
|
```
|
|
|
请输入用户名和密码(用空格隔开): [用户名] [密码]
|
|
|
```
|
|
|
|
|
|
### 生成题目
|
|
|
```
|
|
|
准备生成[难度]数学题目,请输入生成题目数量(输入-1将退出当前用户,重新登录): [10-30]
|
|
|
题目保存在user文件夹下的对应用户文件夹下的txt文档中
|
|
|
```
|
|
|
|
|
|
### 切换难度
|
|
|
```
|
|
|
切换为[小学/初中/高中]
|
|
|
```
|
|
|
|
|
|
### 退出登录
|
|
|
```
|
|
|
-1
|
|
|
```
|
|
|
|
|
|
## 预置账户
|
|
|
|
|
|
| 难度 | 用户名 | 密码 | 默认难度 |
|
|
|
|------|-----|-----|----------|
|
|
|
| 小学 | 张三1 | 123 | 小学 |
|
|
|
| 小学 | 张三2 | 123 | 小学 |
|
|
|
| 小学 | 张三3 | 123 | 小学 |
|
|
|
| 初中 | 李四1 | 123 | 初中 |
|
|
|
| 初中 | 李四2 | 123 | 初中 |
|
|
|
| 初中 | 李四3 | 123 | 初中 |
|
|
|
| 高中 | 王五1 | 123 | 高中 |
|
|
|
| 高中 | 王五2 | 123 | 高中 |
|
|
|
| 高中 | 王五3 | 123 | 高中 |
|
|
|
|
|
|
## 文件结构
|
|
|
|
|
|
```
|
|
|
MathQuestionSystem/
|
|
|
├── src/ # 源代码目录
|
|
|
│ └── math/ # 数学题目生成系统包
|
|
|
│ ├── MathQuestionSystem.java # 系统主类(入口点)
|
|
|
│ ├── AuthManager.java # 用户认证管理
|
|
|
│ ├── QuestionManager.java # 题目文件管理
|
|
|
│ ├── Account.java # 用户账户类
|
|
|
│ ├── DifficultyLevel.java # 难度级别枚举
|
|
|
│ ├── QuestionGenerator.java # 题目生成器接口
|
|
|
│ ├── AbstractQuestionGenerator.java # 抽象题目生成器
|
|
|
│ ├── PrimaryQuestionGenerator.java # 小学题目生成器
|
|
|
│ ├── MiddleQuestionGenerator.java # 初中题目生成器
|
|
|
│ └── HighQuestionGenerator.java # 高中题目生成器
|
|
|
├── bin/ # 编译后的类文件目录(运行时生成)
|
|
|
│ └── math/
|
|
|
│ ├── MathQuestionSystem.class
|
|
|
│ ├── AuthManager.class
|
|
|
│ ├── QuestionManager.class
|
|
|
│ ├── Account.class
|
|
|
│ ├── DifficultyLevel.class
|
|
|
│ ├── QuestionGenerator.class
|
|
|
│ ├── AbstractQuestionGenerator.class
|
|
|
│ ├── PrimaryQuestionGenerator.class
|
|
|
│ ├── MiddleQuestionGenerator.class
|
|
|
│ └── HighQuestionGenerator.class
|
|
|
├── users/ # 用户数据目录(运行时生成)
|
|
|
│ ├── 张三1/ # 小学用户1的题目文件
|
|
|
│ │ ├── 2024-01-15-10-30-45.txt
|
|
|
│ │ ├── 2024-01-15-11-15-20.txt
|
|
|
│ │ └── ...
|
|
|
│ ├── 张三2/ # 小学用户2的题目文件
|
|
|
│ ├── 李四1/ # 初中用户1的题目文件
|
|
|
│ ├── 李四2/ # 初中用户2的题目文件
|
|
|
│ ├── 王五1/ # 高中用户1的题目文件
|
|
|
│ └── 王五2/ # 高中用户2的题目文件
|
|
|
├── lib/ # 第三方库目录(如有需要)
|
|
|
├── doc/ # 项目文档
|
|
|
│ ├── README.md # 项目说明文档
|
|
|
│ ├── STRUCTURE.md # 文件结构文档
|
|
|
│ └── USER_GUIDE.md # 用户使用指南
|
|
|
├── build.bat # Windows编译脚本
|
|
|
├── build.sh # Linux/macOS编译脚本
|
|
|
└── run.bat # Windows运行脚本
|
|
|
```
|
|
|
|
|
|
## 注意事项
|
|
|
|
|
|
- 题目数量限制为 10-30 道
|
|
|
- 生成的题目自动保存到对应用户目录
|
|
|
- 系统会自动检测和避免生成重复题目
|
|
|
- 支持登录后动态切换难度级别
|
|
|
- 在登陆时只能用一个空格隔开用户名和密码
|
|
|
|
|
|
## 快速开始
|
|
|
|
|
|
1. 确保已安装JDK 8+
|
|
|
2. 下载所有Java源文件到math目录
|
|
|
3. 打开命令行,进入项目根目录
|
|
|
4. 执行编译命令:`javac math/*.java`
|
|
|
5. 运行系统:`java math.MathQuestionSystem`
|
|
|
6. 使用预置账户登录开始使用
|
|
|
|
|
|
## 故障排除
|
|
|
|
|
|
- **编译错误**: 检查JDK版本和文件路径
|
|
|
- **运行错误**: 确保所有.class文件在math目录中
|
|
|
- **文件权限**: 确保有当前目录的读写权限 |