|
|
|
|
@ -0,0 +1,188 @@
|
|
|
|
|
# mathlearningapp
|
|
|
|
|
|
|
|
|
|
# mathlearningapp
|
|
|
|
|
|
|
|
|
|
# 数学学习软件 - 版本演进文档
|
|
|
|
|
|
|
|
|
|
## 项目概述
|
|
|
|
|
|
|
|
|
|
数学学习软件是一个基于Java Swing开发的桌面应用程序,旨在为不同学习阶段(小学、初中、高中)的学生提供数学题目练习和测试功能。软件采用模块化设计,包含用户管理、题目生成、答题测试等核心功能。
|
|
|
|
|
|
|
|
|
|
## 版本演进历史
|
|
|
|
|
|
|
|
|
|
### 版本1.0 - 基础版本
|
|
|
|
|
|
|
|
|
|
#### 核心功能
|
|
|
|
|
- **用户管理**:邮箱注册、登录、密码修改
|
|
|
|
|
- **题目生成**:小学、初中、高中三个级别的题目生成器
|
|
|
|
|
- **答题系统**:选择题形式,支持自定义题目数量
|
|
|
|
|
- **成绩统计**:显示得分和正确率
|
|
|
|
|
|
|
|
|
|
#### 技术特点
|
|
|
|
|
- 使用CardLayout实现多面板切换
|
|
|
|
|
- 基础的用户验证系统
|
|
|
|
|
- 简单的题目生成算法
|
|
|
|
|
|
|
|
|
|
#### 主要类结构
|
|
|
|
|
```
|
|
|
|
|
User - 用户类
|
|
|
|
|
Question - 题目类
|
|
|
|
|
QuestionGenerator - 题目生成器抽象类
|
|
|
|
|
PrimaryQuestionGenerator - 小学题目生成器
|
|
|
|
|
JuniorQuestionGenerator - 初中题目生成器
|
|
|
|
|
SeniorQuestionGenerator - 高中题目生成器
|
|
|
|
|
UserManager - 用户管理类
|
|
|
|
|
MathLearningApp - 主应用程序类
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### 版本2.0 - 功能增强版
|
|
|
|
|
|
|
|
|
|
#### 新增功能
|
|
|
|
|
- **用户名系统**:引入用户名概念,不再仅依赖邮箱
|
|
|
|
|
- **界面美化**:改进UI设计,添加颜色和样式
|
|
|
|
|
- **验证码系统**:注册时发送验证码
|
|
|
|
|
- **欢迎界面**:登录后显示个性化欢迎信息
|
|
|
|
|
|
|
|
|
|
#### 技术改进
|
|
|
|
|
- 改进的用户管理,支持用户名和邮箱双重索引
|
|
|
|
|
- 增强的题目生成逻辑
|
|
|
|
|
- 更友好的用户界面
|
|
|
|
|
|
|
|
|
|
### 版本3.0 - 算法优化版
|
|
|
|
|
|
|
|
|
|
#### 核心改进
|
|
|
|
|
- **题目生成优化**:
|
|
|
|
|
- 小学:操作数数量扩展为1-5个
|
|
|
|
|
- 初中:支持混合运算和平方/开方运算
|
|
|
|
|
- 高中:三角函数使用特殊角度,确保结果合理
|
|
|
|
|
- **表达式计算**:引入JavaScript引擎计算复杂表达式
|
|
|
|
|
- **输入验证**:题目数量限制为10-30题
|
|
|
|
|
|
|
|
|
|
#### 技术升级
|
|
|
|
|
- 更健壮的题目生成算法
|
|
|
|
|
- 改进的错误处理机制
|
|
|
|
|
- 优化的用户交互体验
|
|
|
|
|
|
|
|
|
|
### 版本4.0 - 企业级版本
|
|
|
|
|
|
|
|
|
|
#### 重大改进
|
|
|
|
|
- **数据持久化**:用户数据序列化保存到文件
|
|
|
|
|
- **表达式计算器**:自定义表达式计算引擎
|
|
|
|
|
- **包管理**:添加com.hnu包结构
|
|
|
|
|
- **代码重构**:大幅优化代码结构和算法
|
|
|
|
|
|
|
|
|
|
#### 新增特性
|
|
|
|
|
- **文件存储**:用户数据自动保存和加载
|
|
|
|
|
- **高级计算**:支持括号和运算优先级
|
|
|
|
|
- **健壮性提升**:完善的异常处理和输入验证
|
|
|
|
|
|
|
|
|
|
## 核心功能详解
|
|
|
|
|
|
|
|
|
|
### 1. 用户管理系统
|
|
|
|
|
|
|
|
|
|
#### 版本演进
|
|
|
|
|
- **1.0**:基于邮箱的简单用户管理
|
|
|
|
|
- **2.0**:引入用户名系统,双重索引
|
|
|
|
|
- **4.0**:数据持久化,文件存储
|
|
|
|
|
|
|
|
|
|
#### 功能特性
|
|
|
|
|
- 用户注册(邮箱验证)
|
|
|
|
|
- 用户登录
|
|
|
|
|
- 密码修改
|
|
|
|
|
- 数据持久化(4.0+)
|
|
|
|
|
|
|
|
|
|
### 2. 题目生成系统
|
|
|
|
|
|
|
|
|
|
#### 小学题目
|
|
|
|
|
- **运算符**:+、-、*、/
|
|
|
|
|
- **特点**:支持括号,2-4个操作数
|
|
|
|
|
- **演进**:从简单运算到支持复杂表达式
|
|
|
|
|
|
|
|
|
|
#### 初中题目
|
|
|
|
|
- **类型**:基本运算、平方、开方
|
|
|
|
|
- **特点**:混合运算,确保完全平方数
|
|
|
|
|
- **演进**:算法优化,结果更合理
|
|
|
|
|
|
|
|
|
|
#### 高中题目
|
|
|
|
|
- **类型**:三角函数、复合表达式
|
|
|
|
|
- **特点**:使用特殊角度,避免极端值
|
|
|
|
|
- **演进**:从简单三角函数到复合表达式
|
|
|
|
|
|
|
|
|
|
### 3. 答题与评分系统
|
|
|
|
|
|
|
|
|
|
#### 答题流程
|
|
|
|
|
1. 选择学习阶段
|
|
|
|
|
2. 输入题目数量
|
|
|
|
|
3. 逐题作答
|
|
|
|
|
4. 查看成绩
|
|
|
|
|
|
|
|
|
|
#### 评分机制
|
|
|
|
|
- 实时计分
|
|
|
|
|
- 百分比显示
|
|
|
|
|
- 成绩评级(优秀、良好、及格、加油)
|
|
|
|
|
|
|
|
|
|
## 技术架构
|
|
|
|
|
|
|
|
|
|
### 设计模式应用
|
|
|
|
|
- **工厂模式**:题目生成器
|
|
|
|
|
- **单例模式**:用户管理
|
|
|
|
|
- **策略模式**:不同级别的题目生成
|
|
|
|
|
|
|
|
|
|
### 核心算法
|
|
|
|
|
|
|
|
|
|
#### 表达式计算(版本4.0)
|
|
|
|
|
```java
|
|
|
|
|
// 支持括号和运算优先级
|
|
|
|
|
public static double calculate(String expression) {
|
|
|
|
|
// 递归处理括号
|
|
|
|
|
// 先乘除后加减
|
|
|
|
|
// 完善的错误处理
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
#### 题目生成
|
|
|
|
|
```java
|
|
|
|
|
// 确保题目多样性和合理性
|
|
|
|
|
public Question generateQuestion() {
|
|
|
|
|
// 操作数数量随机
|
|
|
|
|
// 运算符随机选择
|
|
|
|
|
// 错误答案生成算法
|
|
|
|
|
// 选项随机排序
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
## 部署与使用
|
|
|
|
|
|
|
|
|
|
### 环境要求
|
|
|
|
|
- Java 8+
|
|
|
|
|
- 支持Swing的Java环境
|
|
|
|
|
|
|
|
|
|
### 运行方式
|
|
|
|
|
```bash
|
|
|
|
|
javac MathLearningApp.java
|
|
|
|
|
java MathLearningApp
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### 测试账户
|
|
|
|
|
- 用户名:测试用户
|
|
|
|
|
- 密码:Test123
|
|
|
|
|
|
|
|
|
|
## 版本对比总结
|
|
|
|
|
|
|
|
|
|
| 特性 | 1.0 | 2.0 | 3.0 | 4.0 |
|
|
|
|
|
|------|-----|-----|-----|-----|
|
|
|
|
|
| 用户管理 | 基础 | 增强 | 增强 | 持久化 |
|
|
|
|
|
| 题目生成 | 简单 | 改进 | 优化 | 高级 |
|
|
|
|
|
| 界面设计 | 基础 | 美化 | 优化 | 专业 |
|
|
|
|
|
| 数据存储 | 内存 | 内存 | 内存 | 文件 |
|
|
|
|
|
| 计算能力 | 基础 | 基础 | 引擎 | 自定义 |
|
|
|
|
|
| 代码结构 | 简单 | 模块化 | 优化 | 企业级 |
|
|
|
|
|
|
|
|
|
|
## 未来发展建议
|
|
|
|
|
|
|
|
|
|
1. **数据库集成**:替换文件存储为数据库
|
|
|
|
|
2. **网络功能**:添加在线排名和题目分享
|
|
|
|
|
3. **移动端**:开发Android和iOS版本
|
|
|
|
|
4. **AI辅助**:集成智能题目推荐
|
|
|
|
|
5. **多媒体**:添加题目解析视频功能
|
|
|
|
|
|