|
|
|
|
@ -1,2 +1,235 @@
|
|
|
|
|
# yuxiuhui
|
|
|
|
|
# 数学题目生成系统介绍文档
|
|
|
|
|
|
|
|
|
|
## 一、系统概述
|
|
|
|
|
|
|
|
|
|
本系统是一个基于 Java 实现的数学题目生成系统,支持不同学段(小学、初中、高中)的用户登录后生成对应难度的数学题目,并提供用户管理、密码修改、难度切换等功能。系统会为每个用户保存历史题目,确保生成的题目不重复。
|
|
|
|
|
|
|
|
|
|
## **二、标准 Maven 目录结构**
|
|
|
|
|
|
|
|
|
|
math-problem-generator/ # 项目根目录
|
|
|
|
|
|
|
|
|
|
├── pom.xml # Maven核心配置文件(依赖管理、构建插件等)
|
|
|
|
|
|
|
|
|
|
├── src/
|
|
|
|
|
|
|
|
|
|
│ ├── main/
|
|
|
|
|
|
|
|
|
|
│ │ ├── java/ # 主程序Java源代码目录
|
|
|
|
|
|
|
|
|
|
│ │ │ └── com/
|
|
|
|
|
|
|
|
|
|
│ │ │ └── math/
|
|
|
|
|
|
|
|
|
|
│ │ │ ├── auth/ # 用户认证模块(对应原auth包)
|
|
|
|
|
|
|
|
|
|
│ │ │ │ ├── User.java
|
|
|
|
|
|
|
|
|
|
│ │ │ │ └── UserManager.java
|
|
|
|
|
|
|
|
|
|
│ │ │ ├── generator/ # 题目生成模块(对应原generator包)
|
|
|
|
|
|
|
|
|
|
│ │ │ │ ├── ProblemGenerator.java
|
|
|
|
|
|
|
|
|
|
│ │ │ │ ├── PrimaryGenerator.java
|
|
|
|
|
|
|
|
|
|
│ │ │ │ ├── MiddleGenerator.java
|
|
|
|
|
|
|
|
|
|
│ │ │ │ └── HighGenerator.java
|
|
|
|
|
|
|
|
|
|
│ │ │ ├── util/ # 工具类模块(对应原util包)
|
|
|
|
|
|
|
|
|
|
│ │ │ │ ├── FileUtils.java
|
|
|
|
|
|
|
|
|
|
│ │ │ │ ├── ModifyPassword.java
|
|
|
|
|
|
|
|
|
|
│ │ │ │ ├── CreateUser.java
|
|
|
|
|
|
|
|
|
|
│ │ │ │ ├── ModifyClass.java
|
|
|
|
|
|
|
|
|
|
│ │ │ │ └── Menu.java # 规范类名首字母大写
|
|
|
|
|
|
|
|
|
|
│ │ │ └── Main.java # 主程序入口(程序启动类)
|
|
|
|
|
|
|
|
|
|
│ │ └── resources/ # 资源文件目录(配置文件、静态资源等)
|
|
|
|
|
|
|
|
|
|
│ │ ├── config/ # 配置文件目录
|
|
|
|
|
|
|
|
|
|
│ │ │ └── system.properties # 系统配置(如题目保存路径、默认学段等)
|
|
|
|
|
|
|
|
|
|
│ │ └── templates/ # 模板文件目录(可选,如题目文档模板)
|
|
|
|
|
|
|
|
|
|
│ └── test/ # 测试代码目录
|
|
|
|
|
|
|
|
|
|
│ └── java/
|
|
|
|
|
|
|
|
|
|
│ └── com/
|
|
|
|
|
|
|
|
|
|
│ └── math/
|
|
|
|
|
|
|
|
|
|
│ ├── auth/ # 用户认证模块测试
|
|
|
|
|
|
|
|
|
|
│ │ └── UserManagerTest.java
|
|
|
|
|
|
|
|
|
|
│ ├── generator/ # 题目生成模块测试
|
|
|
|
|
|
|
|
|
|
│ │ ├── PrimaryGeneratorTest.java
|
|
|
|
|
|
|
|
|
|
│ │ └── HighGeneratorTest.java
|
|
|
|
|
|
|
|
|
|
│ └── util/ # 工具类测试
|
|
|
|
|
|
|
|
|
|
│ └── FileUtilsTest.java
|
|
|
|
|
|
|
|
|
|
├── target/ # Maven构建输出目录
|
|
|
|
|
|
|
|
|
|
## 三、核心功能
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1. **用户管理**
|
|
|
|
|
|
|
|
|
|
* 用户登录验证
|
|
|
|
|
|
|
|
|
|
* 新用户创建
|
|
|
|
|
|
|
|
|
|
* 密码修改
|
|
|
|
|
|
|
|
|
|
* 学习阶段(难度)修改
|
|
|
|
|
|
|
|
|
|
2.**题目生成**
|
|
|
|
|
|
|
|
|
|
* 小学难度题目生成(包含加减乘除及括号运算)
|
|
|
|
|
|
|
|
|
|
* 初中难度题目生成(包含平方、开根号运算)
|
|
|
|
|
|
|
|
|
|
* 高中难度题目生成(包含三角函数运算)
|
|
|
|
|
|
|
|
|
|
* 题目查重(基于用户历史记录)
|
|
|
|
|
|
|
|
|
|
* 生成题目保存(按时间戳命名)
|
|
|
|
|
|
|
|
|
|
## 四、系统架构
|
|
|
|
|
|
|
|
|
|
### 主要包结构
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
* `auth`: 用户认证相关类
|
|
|
|
|
|
|
|
|
|
* `generator`: 题目生成相关接口及实现类
|
|
|
|
|
|
|
|
|
|
* `util`: 工具类(文件操作、表达式生成、菜单等)
|
|
|
|
|
|
|
|
|
|
### 核心类介绍
|
|
|
|
|
|
|
|
|
|
#### 1. 用户认证模块
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
* `User.java`
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
* 用户实体类,包含用户名、密码和学段属性
|
|
|
|
|
|
|
|
|
|
* 提供属性访问方法
|
|
|
|
|
|
|
|
|
|
* `UserManager.java`
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
* 用户管理核心类,负责从文件读取用户信息
|
|
|
|
|
|
|
|
|
|
* 实现用户登录验证功能
|
|
|
|
|
|
|
|
|
|
#### 2. 题目生成模块
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
* `ProblemGenerator.java`
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
* 题目生成接口,定义`generateProblems(int count)`方法
|
|
|
|
|
|
|
|
|
|
* 实现类
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
* `PrimaryGenerator.java`: 小学题目生成器
|
|
|
|
|
|
|
|
|
|
* `MiddleGenerator.java`: 初中题目生成器
|
|
|
|
|
|
|
|
|
|
* `HighGenerator.java`: 高中题目生成器
|
|
|
|
|
|
|
|
|
|
* `ExpressionUtils.java`
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
* 表达式生成工具类
|
|
|
|
|
|
|
|
|
|
* 提供不同学段的表达式生成方法
|
|
|
|
|
|
|
|
|
|
#### 3. 工具类模块
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
* `FileUtils.java`: 文件操作工具,负责用户文件夹创建、历史题目读取和新题目保存
|
|
|
|
|
|
|
|
|
|
* `ModifyPassword.java`: 密码修改工具类
|
|
|
|
|
|
|
|
|
|
* `CreateUser.java`: 新用户创建工具类
|
|
|
|
|
|
|
|
|
|
* `ModifyClass.java`: 用户学段修改工具类
|
|
|
|
|
|
|
|
|
|
* `menu.java`: 系统菜单交互类
|
|
|
|
|
|
|
|
|
|
#### 4. 主程序入口
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
* `Main.java`: 程序入口点,提供主菜单交互
|
|
|
|
|
|
|
|
|
|
## 五、使用流程
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1. 系统启动后显示主菜单,可选择登录、退出、修改密码或创建账户
|
|
|
|
|
|
|
|
|
|
2. 登录成功后进入用户菜单,可选择:
|
|
|
|
|
|
|
|
|
|
* 生成试卷(指定题目数量,10-30 题)
|
|
|
|
|
|
|
|
|
|
* 修改难度(切换小学 / 初中 / 高中)
|
|
|
|
|
|
|
|
|
|
* 退出当前登录
|
|
|
|
|
|
|
|
|
|
1. 生成的题目会自动保存到`exams/用户名/`目录下,以时间戳命名的文件中
|
|
|
|
|
|
|
|
|
|
## 六、数据存储
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
* 用户信息存储在`user.txt`文件中,格式为:`用户名 密码 学段`
|
|
|
|
|
|
|
|
|
|
* 生成的题目按用户分别存储在`exams`目录下的对应用户子目录中
|
|
|
|
|
|
|
|
|
|
* 历史题目用于查重,确保不生成重复题目
|
|
|
|
|
|
|
|
|
|
## 七、题目特点
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
* **小学题目**:2-5 个操作数,包含加减乘除及随机括号
|
|
|
|
|
|
|
|
|
|
* **初中题目**:包含平方 (^2) 和开根号 (sqrt ()) 运算
|
|
|
|
|
|
|
|
|
|
* **高中题目**:包含三角函数 (sin/cos/tan) 运算
|
|
|
|
|
|
|
|
|
|
## 八、注意事项
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
* 用户名和密码区分大小写
|
|
|
|
|
|
|
|
|
|
* 题目数量必须在 10-30 之间
|
|
|
|
|
|
|
|
|
|
* 新建用户时学段必须指定为 "小学"、"初中" 或 "高中"
|
|
|
|
|
|
|
|
|
|
* 所有数据以文本文件形式存储,便于查看和备份
|
|
|
|
|
|