|
|
|
|
@ -1,81 +0,0 @@
|
|
|
|
|
# 中小学数学学习软件说明文档
|
|
|
|
|
|
|
|
|
|
## 项目概述
|
|
|
|
|
|
|
|
|
|
中小学数学学习软件是一个基于Java Swing开发的桌面应用程序,旨在为小学、初中和高中学生提供数学练习平台。软件采用MVC架构设计,实现了用户注册登录、密码管理、题目生成、在线答题和成绩统计等功能。
|
|
|
|
|
|
|
|
|
|
## 开发环境与依赖
|
|
|
|
|
|
|
|
|
|
### 开发工具
|
|
|
|
|
- **IDE**: IntelliJ IDEA
|
|
|
|
|
- **JDK版本**: Java 8或更高版本
|
|
|
|
|
|
|
|
|
|
### 外部依赖库
|
|
|
|
|
项目需要以下两个外部JAR包:
|
|
|
|
|
|
|
|
|
|
| 依赖库 | 版本 | 用途 |
|
|
|
|
|
|--------|------|------|
|
|
|
|
|
| activation-1.1.1.jar | 1.1.1 | JavaBeans Activation Framework,支持邮件服务的MIME类型处理 |
|
|
|
|
|
| javax.mail-1.6.2.jar | 1.6.2 | JavaMail API,实现邮件发送功能,用于注册验证码发送 |
|
|
|
|
|
|
|
|
|
|
### 依赖配置方法(IntelliJ IDEA)
|
|
|
|
|
1. 在项目中创建`lib`文件夹
|
|
|
|
|
2. 将两个JAR文件复制到`lib`目录
|
|
|
|
|
3. 右键点击JAR文件 → `Add as Library`
|
|
|
|
|
4. 选择模块并确认
|
|
|
|
|
|
|
|
|
|
## 功能特性
|
|
|
|
|
|
|
|
|
|
### 用户管理功能
|
|
|
|
|
- 用户注册:通过邮箱验证码完成注册
|
|
|
|
|
- 用户登录:支持已注册用户登录
|
|
|
|
|
- 密码管理:
|
|
|
|
|
- 密码长度6-10位,必须包含大小写字母和数字
|
|
|
|
|
- 登录状态下可修改密码
|
|
|
|
|
- 密码采用SHA-256加密存储
|
|
|
|
|
|
|
|
|
|
### 题目生成功能
|
|
|
|
|
- 难度分级:小学、初中、高中三个难度级别
|
|
|
|
|
- 题目数量:10-30题可调
|
|
|
|
|
- 题目查重:同一试卷内题目不重复
|
|
|
|
|
|
|
|
|
|
### 答题功能
|
|
|
|
|
- 选择题形式:每题4个选项
|
|
|
|
|
- 进度显示:实时显示答题进度
|
|
|
|
|
- 自动判分:提交后立即显示成绩
|
|
|
|
|
|
|
|
|
|
## 核心类说明
|
|
|
|
|
|
|
|
|
|
### MathLearningApp(主类)
|
|
|
|
|
- 应用程序入口
|
|
|
|
|
- 界面切换管理
|
|
|
|
|
- MVC组件初始化
|
|
|
|
|
|
|
|
|
|
### UserManager(用户管理)
|
|
|
|
|
**主要功能:**
|
|
|
|
|
- 用户注册验证
|
|
|
|
|
- 邮箱验证码发送(依赖javax.mail)
|
|
|
|
|
- 密码加密存储
|
|
|
|
|
- 用户数据持久化
|
|
|
|
|
|
|
|
|
|
### QuizController(答题控制)
|
|
|
|
|
**主要功能:**
|
|
|
|
|
- 题目集管理
|
|
|
|
|
- 答题进度跟踪
|
|
|
|
|
- 成绩计算
|
|
|
|
|
- 用户答案记录
|
|
|
|
|
|
|
|
|
|
### QuestionGenerator(题目生成)
|
|
|
|
|
**难度分级:**
|
|
|
|
|
- 小学:四则运算,避免负数结果
|
|
|
|
|
- 初中:引入平方、开根号运算
|
|
|
|
|
- 高中:包含三角函数计算
|
|
|
|
|
|
|
|
|
|
## 邮件服务配置
|
|
|
|
|
|
|
|
|
|
### SMTP配置
|
|
|
|
|
```java
|
|
|
|
|
private static final String SYSTEM_EMAIL_HOST = "smtp.qq.com";
|
|
|
|
|
private static final String SYSTEM_EMAIL_PORT = "587";
|
|
|
|
|
private static final String SYSTEM_EMAIL_USERNAME = "2747764757@qq.com";
|
|
|
|
|
private static final String SYSTEM_EMAIL_PASSWORD = "dkagkfnxoxgxdcjj";
|