ADD file via upload

develop
hnu202326010302 4 days ago
parent 6bf3a92a98
commit d628c0778e

@ -0,0 +1,234 @@
# 中小学数学卷子自动生成程序 - Java版本说明文档
## 项目概述
这是一个基于Java开发的中小学数学卷子自动生成程序支持小学、初中和高中三个年级的数学题目生成具有用户登录验证、题目生成、年级切换和试卷保存等功能。
## 功能特性
### 1. 用户登录验证
- 支持小学、初中和高中各三个预设账号
- 用户名和密码用空格隔开输入
- 登录成功显示当前选择的出题年级
- 登录失败提示重新输入
### 2. 题目生成
- **题目数量**10-30题或输入-1退出登录
- **操作数数量**1-5个
- **操作数范围**1-100
- **题目去重**:同一老师的题目不会与历史题目重复
### 3. 年级切换
- 支持在登录状态下切换出题年级
- 输入"切换为 XX"XX为小学、初中、高中
- 输入错误时提示重新输入
### 4. 试卷保存
- 按"年-月-日-时-分-秒.txt"格式命名
- 每个账号独立文件夹
- 题目有序号,每题间空一行
## 年级难度要求
### 小学
- 四则运算,结果非负
### 初中
- 包含平方、开根号运算
- 题目中至少有一个平方或开根号运算符
### 高中
- 包含三角函数sin, cos, tan
- 题目中至少有一个三角函数
## 使用流程
### 登录界面
```
== 中小学数学卷子自动生成程序 ==
欢迎你 张三1 小学
输入1开始出题
输入2切换出题年级
输入-1退出登录返回开始界面
```
### 出题流程
1. 输入1开始出题
2. 输入题目数量10-30
3. 系统生成对应年级难度的题目
4. 题目显示并自动保存
### 切换年级
例如,切换为初中
```
2
请输入想要切换的出题年级,输入-1返回操作界面
初中
已成功修改出题年级为初中,输入-1返回操作界面
```
### 登录过程
```
请输入用户名和密码(用空格分隔):
张三1 123
登录成功!当前选择为小学出题
== 中小学数学卷子自动生成程序 ==
欢迎你 张三1 小学
输入1开始出题
输入2切换出题年级
输入-1退出登录返回开始界面
```
### 题目生成示例
```
输入1开始出题
准备生成小学数学题目,请输入生成题目数量(输入-1将退出当前用户
10
正在为小学出题请在10-30的范围内输入出题数目
1. 92 + 96 - (58 / 55 * 62)
2. (24 * 13) * 34 + 15
3. 68 - 55 - 57 / 85 / 71
...
已出题完成,输入-1返回操作界面
```
### 年级切换
```
输入2切换出题年级
请输入想要切换的出题年级(小学、初中、高中):
初中
已成功修改出题年级为初中
```
## 文件保存格式
### 目录结构
```
User-problem/
├── 张三1/
│ ├── 2025-09-29-22-30-45.txt
│ └── 2025-09-29-22-35-20.txt
├── 李四2/
│ └── 2025-09-29-22-40-15.txt
```
### 文件内容格式
```
1. 92 + 96 - (58 / 55 * 62)
2. (24 * 13) * 34 + 15
3. 68 - 55 - 57 / 85 / 71
...
```
## 系统架构
### 核心类说明
#### 1. Main.java
- **功能**: 程序主入口
- **职责**: 启动用户登录流程
#### 2. User.java
- **功能**: 用户管理类
- **职责**:
- 处理用户登录验证
- 管理用户账户信息(用户名、密码、年级)
- 初始化预设用户数据
#### 3. ProblemManager.java
- **功能**: 问题管理类
- **职责**:
- 显示主界面
- 处理用户交互
- 协调题目生成流程
- 提供年级切换功能
#### 4. 题目生成器接口和实现类
**MathProblemGenerator.java** (接口)
- 定义题目生成器的统一接口
**PrimarySchoolProblemGenerator.java** (小学题目生成器)
- 生成包含基本四则运算的题目
**MiddleSchoolProblemGenerator.java** (初中题目生成器)
- 在小学基础上增加平方(²)和开方(√)运算
**HighSchoolProblemGenerator.java** (高中题目生成器)
- 在初中基础上增加三角函数(sin, cos, tan)运算
#### 5. 工具类
**ExpressionJudge.java**
- **功能**: 表达式验证工具
- **职责**: 检测数学表达式中的语法错误和语义错误
**FileManager.java**
- **功能**: 文件管理工具
- **职责**: 处理用户题目文件的读写操作
**TimeManager.java**
- **功能**: 时间管理工具
- **职责**: 提供时间戳生成功能
## 已知问题:除零错误
### 问题描述
在生成初中高中题目时,存在**生成除零式子**的风险。
在生成初中高中题目时生成有5个操作数的式子概率比较低可能一次出题不会有要多次出题才会出现。
Loading…
Cancel
Save