diff --git a/README.md b/README.md deleted file mode 100644 index 8101d5a..0000000 --- a/README.md +++ /dev/null @@ -1,2 +0,0 @@ -# mathlearningapp - diff --git a/doc/README.md b/doc/README.md new file mode 100644 index 0000000..f6bc7fe --- /dev/null +++ b/doc/README.md @@ -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. **多媒体**:添加题目解析视频功能 +