|
|
|
|
@ -0,0 +1,181 @@
|
|
|
|
|
# 数学学习软件系统说明文档
|
|
|
|
|
|
|
|
|
|
## 概述
|
|
|
|
|
数学学习软件是一个基于 JavaFX 开发的桌面应用程序,旨在为不同学段(小学、初中、高中)的学生提供定制化的数学练习平台。系统支持用户注册登录、题目难度选择、答题练习和成绩统计等功能,确保生成的题目符合各学段的教学要求。
|
|
|
|
|
|
|
|
|
|
## 运行环境
|
|
|
|
|
|
|
|
|
|
### 平台要求
|
|
|
|
|
- **操作系统**: Windows 10/11
|
|
|
|
|
- **Java版本**: JDK 17 或更高版本
|
|
|
|
|
- **内存**: 最低 2GB RAM
|
|
|
|
|
- **磁盘空间**: 至少 100MB 可用空间
|
|
|
|
|
|
|
|
|
|
### 依赖项
|
|
|
|
|
- JavaFX 17 (已包含在项目中)
|
|
|
|
|
- 需要网络连接用于邮箱验证功能
|
|
|
|
|
|
|
|
|
|
## 项目结构
|
|
|
|
|
```
|
|
|
|
|
src/
|
|
|
|
|
├── com.wsf.mathapp/ # 前端界面和控制器
|
|
|
|
|
│ ├── controller/
|
|
|
|
|
│ │ └── SceneManager.java
|
|
|
|
|
│ ├── view/
|
|
|
|
|
│ │ ├── LoginView.java
|
|
|
|
|
│ │ ├── RegisterView.java
|
|
|
|
|
│ │ ├── MainMenuView.java
|
|
|
|
|
│ │ ├── LevelSelectionView.java
|
|
|
|
|
│ │ ├── QuestionCountView.java
|
|
|
|
|
│ │ ├── QuizView.java
|
|
|
|
|
│ │ └── ResultView.java
|
|
|
|
|
│ ├── service/
|
|
|
|
|
│ │ └── QuestionService.java
|
|
|
|
|
│ └── MathApplication.java
|
|
|
|
|
├── com.ybw.mathapp/ # 后端核心逻辑
|
|
|
|
|
│ ├── entity/
|
|
|
|
|
│ │ ├── User.java
|
|
|
|
|
│ │ └── QuestionWithOptions.java
|
|
|
|
|
│ ├── service/
|
|
|
|
|
│ │ ├── QuestionGenerator.java
|
|
|
|
|
│ │ ├── PrimarySchoolGenerator.java
|
|
|
|
|
│ │ ├── JuniorHighGenerator.java
|
|
|
|
|
│ │ ├── SeniorHighGenerator.java
|
|
|
|
|
│ │ ├── MultipleChoiceGenerator.java
|
|
|
|
|
│ │ └── AdvancedCaculate.java
|
|
|
|
|
│ ├── util/
|
|
|
|
|
│ │ ├── Login.java
|
|
|
|
|
│ │ ├── Register.java
|
|
|
|
|
│ │ ├── ChangePassword.java
|
|
|
|
|
│ │ ├── LoginFileUtils.java
|
|
|
|
|
│ │ └── EmailService.java
|
|
|
|
|
│ └── config/
|
|
|
|
|
│ └── EmailConfig.java
|
|
|
|
|
└── Main.java
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
## 安装和运行
|
|
|
|
|
|
|
|
|
|
### 方法一:使用 IDE 运行(推荐)
|
|
|
|
|
1. **安装 JDK 17**
|
|
|
|
|
- 下载并安装 Oracle JDK 17 或 OpenJDK 17
|
|
|
|
|
- 设置 JAVA_HOME 环境变量
|
|
|
|
|
|
|
|
|
|
2. **导入项目**
|
|
|
|
|
- 使用 IntelliJ IDEA 或 Eclipse 导入项目
|
|
|
|
|
- 确保配置了 JDK 17
|
|
|
|
|
|
|
|
|
|
3. **运行程序**
|
|
|
|
|
- 打开 `Main.java` 或 `MathApplication.java`
|
|
|
|
|
- 点击运行按钮启动应用程序
|
|
|
|
|
|
|
|
|
|
### 方法二:使用 JAR 文件
|
|
|
|
|
**直接运行 JAR 文件**
|
|
|
|
|
```bash
|
|
|
|
|
java -jar .\mathapp-1.0.jar
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
## 系统功能
|
|
|
|
|
|
|
|
|
|
### 1. 用户管理
|
|
|
|
|
- **用户注册**: 支持用户名、邮箱注册,通过邮箱验证码验证身份
|
|
|
|
|
- **用户登录**: 支持用户名或邮箱登录,密码验证
|
|
|
|
|
- **密码修改**: 在线修改密码,需验证原密码
|
|
|
|
|
- **用户信息显示**: 动态显示用户头像和用户名
|
|
|
|
|
|
|
|
|
|
### 2. 题目生成
|
|
|
|
|
- **小学题目**: 生成包含四则运算和括号的题目,确保计算结果为非负数
|
|
|
|
|
- **初中题目**: 生成包含平方或开根号运算的题目,确保每道题目都包含高级运算符
|
|
|
|
|
- **高中题目**: 生成包含三角函数的题目,支持复杂的数学表达式
|
|
|
|
|
- **选择题转换**: 将生成的题目转换为选择题形式,包含正确答案和干扰项
|
|
|
|
|
|
|
|
|
|
### 3. 答题评估
|
|
|
|
|
- **实时答题**: 显示题目和四个选项,支持单选
|
|
|
|
|
- **进度跟踪**: 显示当前题号和总题数
|
|
|
|
|
- **自动评分**: 计算正确率并给出相应评语
|
|
|
|
|
- **结果展示**: 根据得分显示不同颜色的分数和鼓励性评语
|
|
|
|
|
|
|
|
|
|
## 使用指南
|
|
|
|
|
|
|
|
|
|
### 第一步:启动应用
|
|
|
|
|
```bash
|
|
|
|
|
# 确保在项目根目录下执行
|
|
|
|
|
java -jar .\mathapp-1.0.jar
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### 第二步:用户注册
|
|
|
|
|
1. 点击"注册账号"按钮
|
|
|
|
|
2. 输入用户名(3-20位字母、数字)
|
|
|
|
|
3. 输入有效邮箱地址
|
|
|
|
|
4. 获取并输入邮箱验证码
|
|
|
|
|
5. 设置密码(6-10位,包含大小写字母和数字)
|
|
|
|
|
6. 确认密码并完成注册
|
|
|
|
|
|
|
|
|
|
### 第三步:选择练习
|
|
|
|
|
1. 登录后进入主菜单
|
|
|
|
|
2. 点击"开始练习"
|
|
|
|
|
3. 选择难度级别:小学、初中或高中
|
|
|
|
|
4. 输入题目数量(10-30题)
|
|
|
|
|
5. 开始答题
|
|
|
|
|
|
|
|
|
|
### 第四步:答题和查看结果
|
|
|
|
|
1. 阅读题目并从四个选项中选择答案
|
|
|
|
|
2. 点击"下一题"继续
|
|
|
|
|
3. 完成所有题目后查看得分和评语
|
|
|
|
|
4. 可选择"再次练习"或"返回主菜单"
|
|
|
|
|
|
|
|
|
|
## 配置说明
|
|
|
|
|
|
|
|
|
|
### 邮箱配置
|
|
|
|
|
系统使用 QQ 邮箱发送验证码,如需修改配置,编辑 `EmailConfig.java`:
|
|
|
|
|
```java
|
|
|
|
|
public class EmailConfig {
|
|
|
|
|
public static final String SMTP_HOST = "smtp.qq.com";
|
|
|
|
|
public static final String SMTP_PORT = "587";
|
|
|
|
|
public static final String SENDER_EMAIL = "your-email@qq.com";
|
|
|
|
|
public static final String SENDER_PASSWORD = "your-authorization-code";
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### 数据存储
|
|
|
|
|
- 用户信息存储在 `users.txt` 文件中
|
|
|
|
|
- 每个用户的答题记录保存在以用户名为名的目录中
|
|
|
|
|
|
|
|
|
|
## 故障排除
|
|
|
|
|
|
|
|
|
|
### 常见问题
|
|
|
|
|
1. **无法启动程序**
|
|
|
|
|
- 检查 JDK 版本是否为 17
|
|
|
|
|
- 确认 JavaFX 库路径正确
|
|
|
|
|
|
|
|
|
|
2. **邮箱验证码收不到**
|
|
|
|
|
- 检查网络连接
|
|
|
|
|
- 确认邮箱配置正确
|
|
|
|
|
- 查看垃圾邮件文件夹
|
|
|
|
|
|
|
|
|
|
3. **界面显示异常**
|
|
|
|
|
- 确保屏幕分辨率不低于 1024x768
|
|
|
|
|
- 检查系统字体设置
|
|
|
|
|
|
|
|
|
|
### 日志查看
|
|
|
|
|
程序运行日志输出到控制台,包含:
|
|
|
|
|
- 用户登录/注册信息
|
|
|
|
|
- 题目生成状态
|
|
|
|
|
- 界面切换记录
|
|
|
|
|
|
|
|
|
|
## 技术特性
|
|
|
|
|
|
|
|
|
|
- **模块化设计**: 易于维护和扩展
|
|
|
|
|
- **响应式界面**: 适配不同屏幕尺寸
|
|
|
|
|
- **数据验证**: 完整的输入验证机制
|
|
|
|
|
- **错误处理**: 友好的错误提示信息
|
|
|
|
|
- **性能优化**: 高效的题目生成和去重算法
|
|
|
|
|
|
|
|
|
|
## 注意事项
|
|
|
|
|
|
|
|
|
|
1. 首次使用需要注册账号
|
|
|
|
|
2. 小学题目不包含负数运算
|
|
|
|
|
3. 初中题目避免负数开根号
|
|
|
|
|
4. 邮箱验证码有效期为 5 分钟
|
|
|
|
|
5. 建议在稳定的网络环境下使用邮箱功能
|
|
|
|
|
|