From 01ebca0667bed748c20097058e91ebf57cc79154 Mon Sep 17 00:00:00 2001 From: hnu202326010109 <3417398995@qq.com> Date: Sun, 12 Oct 2025 16:10:40 +0800 Subject: [PATCH] README.md --- doc/README.md | 191 -------------------------------------------------- 1 file changed, 191 deletions(-) diff --git a/doc/README.md b/doc/README.md index 9f58f80..c2e5feb 100644 --- a/doc/README.md +++ b/doc/README.md @@ -1,196 +1,5 @@ ## 小初高数学学习软件 - 代码说明文档 -## 项目概述 - -本项目是一个面向小学、初中和高中学生的数学学习软件,提供图形化界面的数学题目练习和测试功能。软件采用JavaFX开发,实现了用户注册、登录、题目生成、在线答题和成绩统计等完整功能。 - -## 项目结构 - -``` -src/ -├── Main.java # 主程序入口,界面控制器 -├── QuestionGenerator.java # 题目生成器 -├── ExamManager.java # 试卷管理器 -├── User.java # 用户实体类 -└── MailSender.java # 邮件发送器 -``` - -## 核心功能模块 - -### 1. 用户管理模块 - -#### 功能特性 - -- **双方式登录**:支持邮箱或用户名登录 -- **用户注册**:邮箱验证、用户名设置(4-10位) -- **密码管理**:6-10位,必须包含大小写字母和数字 -- **密码修改**:登录状态下可修改密码 - -#### 核心代码 - -```java -// 用户验证方法 -private boolean isValidUsername(String username) // 用户名格式验证 -private boolean isValidEmail(String email) // 邮箱格式验证 -private boolean isValidPassword(String password) // 密码强度验证 -``` - -### 2. 题目生成模块 - -#### 题目难度分级 - -**小学题目** - -- 运算符:+、-、*、/ -- 支持括号运算 -- 操作数:1-100 -- 操作数个数:2-5个 - -**初中题目** - -- 包含小学所有运算符 -- 新增:平方(^2)、开根号(√) -- 确保每道题至少包含一个特殊运算符 - -**高中题目** - -- 包含初中所有运算符 -- 新增:sin、cos、tan三角函数 -- 确保每道题至少包含一个三角函数 - -#### 核心算法 - -```java -public String generateQuestion(String type) // 根据类型生成题目 -public List generateOptions(String answer) // 生成选择题选项 -``` - -### 3. 考试管理模块 - -#### 功能特性 - -- **题目查重**:同一试卷内题目不重复 -- **进度跟踪**:实时显示答题进度 -- **自动评分**:答完后自动计算分数 -- **成绩展示**:显示得分、正确率、详细统计 - -#### 核心类 - -```java -public class ExamManager { - public List generateExam(int numQuestions) // 生成指定数量题目 -} -``` - -### 4. 界面导航流程 - -``` -登录界面 → 注册界面 → 难度选择 → 题目数量输入 → 答题界面 → 成绩界面 - ↑ ↓ - ←←←←←←←←←←←←←←←←←←←←←←←←←←←←←←←←←←←←←←←←←←←←←←←←←←← -``` - -## 技术实现细节 - -### 1. 数据存储 - -- 使用内存Map存储用户数据 -- 题目历史记录在Session中维护 -- 符合"不可以使用数据库存储数据"的要求 - -### 2. 邮件服务 - -- 使用QQ邮箱SMTP服务 -- 异步发送验证码 -- 支持注册验证功能 - -### 3. 界面设计 - -- 采用JavaFX图形界面 -- 响应式布局设计 -- 友好的用户交互提示 - -## 代码规范与架构 - -### 1. 类职责分离 - -- `Main.java`:界面控制和业务流程 -- `QuestionGenerator.java`:题目生成算法 -- `ExamManager.java`:试卷管理逻辑 -- `User.java`:用户数据模型 -- `MailSender.java`:邮件服务封装 - -### 2. 方法设计原则 - -- 单一职责原则 -- 方法行数控制在40行以内 -- 清晰的参数和返回值定义 - -## 配置要求 - -### 运行环境 - -- Java 8及以上 -- JavaFX SDK -- 网络连接(用于邮件发送) - -### 邮箱配置 - -在`Main.java`中修改发件邮箱配置: - -```java -private MailSender mailSender = new MailSender("你的邮箱", "授权码"); -``` - -## 功能验证清单 - -### ✅ 已实现功能 - -- [x] 图形化界面操作 -- [x] 用户注册与邮箱验证 -- [x] 密码强度验证(6-10位,大小写字母+数字) -- [x] 双方式登录(邮箱/用户名) -- [x] 密码修改功能 -- [x] 三难度题目生成(小学、初中、高中) -- [x] 题目数量限制(10-30题) -- [x] 选择题形式答题 -- [x] 自动评分与成绩展示 -- [x] 继续做题/退出选择 - -### ✅ 符合项目要求 - -- [x] 不使用数据库存储 -- [x] 所有功能通过图形界面操作 -- [x] 完整的用户流程 -- [x] 题目符合各学段难度要求 - -## 使用说明 - -1. **首次使用**:点击"前往注册",设置用户名、邮箱,接收验证码完成注册 -2. **登录系统**:使用邮箱或用户名+密码登录 -3. **选择难度**:根据学习阶段选择小学、初中或高中 -4. **设置题量**:输入10-30之间的题目数量 -5. **开始答题**:逐题作答,系统自动记录进度 -6. **查看成绩**:答题完成后查看详细成绩统计 -7. **继续学习**:可选择继续做题或退出系统 - -## 扩展建议 - -1. **数据持久化**:添加文件存储避免重启数据丢失 -2. **题目查重优化**:跨会话题目历史记录 -3. **学习进度跟踪**:记录用户历史成绩和进步情况 -4. **错题本功能**:自动收集错题供复习使用 - -## 开发者信息 - -- **技术栈**:Java + JavaFX -- **架构模式**:MVC模式 -- **代码规范**:遵循Java编码规范 -- **版本控制**:Git分支管理 - ---- - -*最后更新:2025年X月X日*# 小初高数学学习软件 - 代码说明文档 ## 项目概述