|
|
|
|
@ -0,0 +1,84 @@
|
|
|
|
|
## 功能特性
|
|
|
|
|
|
|
|
|
|
### 1. 用户管理系统
|
|
|
|
|
- 用户注册与邮箱验证
|
|
|
|
|
- 用户登录与密码管理
|
|
|
|
|
- 个人资料管理(用户名修改、密码修改)
|
|
|
|
|
- 用户教育阶段设置(小学/初中/高中)
|
|
|
|
|
|
|
|
|
|
### 2. 数学题目生成系统
|
|
|
|
|
- 支持三种教育阶段的题目生成:
|
|
|
|
|
- 小学:基础四则运算(+、-、×、÷)
|
|
|
|
|
- 初中:包含平方、开方运算
|
|
|
|
|
- 高中:包含三角函数(sin、cos、tan)
|
|
|
|
|
- 自动生成带括号的表达式
|
|
|
|
|
- 智能选项生成(正确答案+干扰项)
|
|
|
|
|
|
|
|
|
|
### 3. 答题测试系统
|
|
|
|
|
- 自适应题目数量(10-30题可选)
|
|
|
|
|
- 图形化答题界面
|
|
|
|
|
- 实时答题记录
|
|
|
|
|
- 自动评分与结果展示
|
|
|
|
|
|
|
|
|
|
## 技术特点
|
|
|
|
|
|
|
|
|
|
### 核心技术栈
|
|
|
|
|
- Java Swing:图形用户界面
|
|
|
|
|
- Jackson:用户数据序列化
|
|
|
|
|
- BCrypt:密码加密存储
|
|
|
|
|
- JavaMail:邮件验证码发送
|
|
|
|
|
|
|
|
|
|
### 设计模式
|
|
|
|
|
- MVC架构模式
|
|
|
|
|
- 抽象工厂模式(题目生成器)
|
|
|
|
|
- 单例模式(用户服务)
|
|
|
|
|
|
|
|
|
|
## 使用说明
|
|
|
|
|
|
|
|
|
|
### 系统要求
|
|
|
|
|
- Java 8或更高版本
|
|
|
|
|
- 网络连接(用于邮件验证)
|
|
|
|
|
|
|
|
|
|
### 安装与运行
|
|
|
|
|
1. 克隆或下载项目源代码
|
|
|
|
|
2. 使用IDE导入项目
|
|
|
|
|
3. 配置邮件服务参数(在[RegisterFrame.java](file://D:\filee\软导\java\结对\project\MathLearningApp\git\src\main\java\mathlearning\ui\RegisterFrame.java)和[ChangeCodeFrame.java](file://D:\filee\软导\java\结对\project\MathLearningApp\git\src\main\java\mathlearning\ui\ChangeCodeFrame.java)中)
|
|
|
|
|
4. 编译并运行[App.java](file://D:\filee\软导\java\结对\project\MathLearningApp\git\src\main\java\mathlearning\App.java)
|
|
|
|
|
|
|
|
|
|
### 使用流程
|
|
|
|
|
1. **注册账户**:输入用户名、邮箱,获取验证码并设置密码
|
|
|
|
|
2. **登录系统**:使用注册邮箱和密码登录
|
|
|
|
|
3. **选择教育阶段**:首次登录需选择小学/初中/高中
|
|
|
|
|
4. **开始测试**:在主界面选择题目数量开始答题
|
|
|
|
|
5. **查看结果**:提交后自动评分并显示结果
|
|
|
|
|
|
|
|
|
|
## 项目亮点
|
|
|
|
|
|
|
|
|
|
1. **安全性**:
|
|
|
|
|
- 密码BCrypt加密存储
|
|
|
|
|
- 邮箱验证机制
|
|
|
|
|
- 验证码时效控制(10分钟)
|
|
|
|
|
|
|
|
|
|
2. **智能化**:
|
|
|
|
|
- 根据教育阶段自适应题目难度
|
|
|
|
|
- 智能选项生成算法
|
|
|
|
|
- 表达式计算引擎
|
|
|
|
|
|
|
|
|
|
3. **用户体验**:
|
|
|
|
|
- 友好的图形界面
|
|
|
|
|
- 实时反馈机制
|
|
|
|
|
- 完善的错误处理
|
|
|
|
|
|
|
|
|
|
## 注意事项
|
|
|
|
|
|
|
|
|
|
1. 邮件服务配置:
|
|
|
|
|
- 需要在[RegisterFrame.java](file://D:\filee\软导\java\结对\project\MathLearningApp\git\src\main\java\mathlearning\ui\RegisterFrame.java)和[ChangeCodeFrame.java](file://D:\filee\软导\java\结对\project\MathLearningApp\git\src\main\java\mathlearning\ui\ChangeCodeFrame.java)中配置SMTP参数
|
|
|
|
|
- 默认使用QQ邮箱SMTP服务
|
|
|
|
|
|
|
|
|
|
2. 数据存储:
|
|
|
|
|
- 用户数据保存在`data/users.json`文件中
|
|
|
|
|
- 首次运行会自动创建数据文件
|
|
|
|
|
|
|
|
|
|
3. 密码要求:
|
|
|
|
|
- 长度6-10位
|
|
|
|
|
- 必须包含大小写字母和数字
|