diff --git a/doc/说明文档.markdown b/doc/说明文档.markdown new file mode 100644 index 0000000..6ab05ba --- /dev/null +++ b/doc/说明文档.markdown @@ -0,0 +1,181 @@ +# 数学学习软件系统说明文档 + +## 概述 +数学学习软件是一个基于 JavaFX 开发的桌面应用程序,旨在为不同学段(小学、初中、高中)的学生提供定制化的数学练习平台。系统支持用户注册登录、题目难度选择、答题练习和成绩统计等功能,确保生成的题目符合各学段的教学要求。 + +## 运行环境 + +### 平台要求 +- **操作系统**: Windows 10/11 +- **Java版本**: JDK 17 或更高版本 +- **内存**: 最低 2GB RAM +- **磁盘空间**: 至少 100MB 可用空间 + +### 依赖项 +- JavaFX 17 (已包含在项目中) +- 需要网络连接用于邮箱验证功能 + +## 项目结构 +``` +src/ +├── com.wsf.mathapp/ # 前端界面和控制器 +│ ├── controller/ +│ │ └── SceneManager.java +│ ├── view/ +│ │ ├── LoginView.java +│ │ ├── RegisterView.java +│ │ ├── MainMenuView.java +│ │ ├── LevelSelectionView.java +│ │ ├── QuestionCountView.java +│ │ ├── QuizView.java +│ │ └── ResultView.java +│ ├── service/ +│ │ └── QuestionService.java +│ └── MathApplication.java +├── com.ybw.mathapp/ # 后端核心逻辑 +│ ├── entity/ +│ │ ├── User.java +│ │ └── QuestionWithOptions.java +│ ├── service/ +│ │ ├── QuestionGenerator.java +│ │ ├── PrimarySchoolGenerator.java +│ │ ├── JuniorHighGenerator.java +│ │ ├── SeniorHighGenerator.java +│ │ ├── MultipleChoiceGenerator.java +│ │ └── AdvancedCaculate.java +│ ├── util/ +│ │ ├── Login.java +│ │ ├── Register.java +│ │ ├── ChangePassword.java +│ │ ├── LoginFileUtils.java +│ │ └── EmailService.java +│ └── config/ +│ └── EmailConfig.java +└── Main.java +``` + +## 安装和运行 + +### 方法一:使用 IDE 运行(推荐) +1. **安装 JDK 17** + - 下载并安装 Oracle JDK 17 或 OpenJDK 17 + - 设置 JAVA_HOME 环境变量 + +2. **导入项目** + - 使用 IntelliJ IDEA 或 Eclipse 导入项目 + - 确保配置了 JDK 17 + +3. **运行程序** + - 打开 `Main.java` 或 `MathApplication.java` + - 点击运行按钮启动应用程序 + +### 方法二:使用 JAR 文件 + **直接运行 JAR 文件** +```bash +java -jar .\mathapp-1.0.jar +``` + +## 系统功能 + +### 1. 用户管理 +- **用户注册**: 支持用户名、邮箱注册,通过邮箱验证码验证身份 +- **用户登录**: 支持用户名或邮箱登录,密码验证 +- **密码修改**: 在线修改密码,需验证原密码 +- **用户信息显示**: 动态显示用户头像和用户名 + +### 2. 题目生成 +- **小学题目**: 生成包含四则运算和括号的题目,确保计算结果为非负数 +- **初中题目**: 生成包含平方或开根号运算的题目,确保每道题目都包含高级运算符 +- **高中题目**: 生成包含三角函数的题目,支持复杂的数学表达式 +- **选择题转换**: 将生成的题目转换为选择题形式,包含正确答案和干扰项 + +### 3. 答题评估 +- **实时答题**: 显示题目和四个选项,支持单选 +- **进度跟踪**: 显示当前题号和总题数 +- **自动评分**: 计算正确率并给出相应评语 +- **结果展示**: 根据得分显示不同颜色的分数和鼓励性评语 + +## 使用指南 + +### 第一步:启动应用 +```bash +# 确保在项目根目录下执行 +java -jar .\mathapp-1.0.jar +``` + +### 第二步:用户注册 +1. 点击"注册账号"按钮 +2. 输入用户名(3-20位字母、数字) +3. 输入有效邮箱地址 +4. 获取并输入邮箱验证码 +5. 设置密码(6-10位,包含大小写字母和数字) +6. 确认密码并完成注册 + +### 第三步:选择练习 +1. 登录后进入主菜单 +2. 点击"开始练习" +3. 选择难度级别:小学、初中或高中 +4. 输入题目数量(10-30题) +5. 开始答题 + +### 第四步:答题和查看结果 +1. 阅读题目并从四个选项中选择答案 +2. 点击"下一题"继续 +3. 完成所有题目后查看得分和评语 +4. 可选择"再次练习"或"返回主菜单" + +## 配置说明 + +### 邮箱配置 +系统使用 QQ 邮箱发送验证码,如需修改配置,编辑 `EmailConfig.java`: +```java +public class EmailConfig { + public static final String SMTP_HOST = "smtp.qq.com"; + public static final String SMTP_PORT = "587"; + public static final String SENDER_EMAIL = "your-email@qq.com"; + public static final String SENDER_PASSWORD = "your-authorization-code"; +} +``` + +### 数据存储 +- 用户信息存储在 `users.txt` 文件中 +- 每个用户的答题记录保存在以用户名为名的目录中 + +## 故障排除 + +### 常见问题 +1. **无法启动程序** + - 检查 JDK 版本是否为 17 + - 确认 JavaFX 库路径正确 + +2. **邮箱验证码收不到** + - 检查网络连接 + - 确认邮箱配置正确 + - 查看垃圾邮件文件夹 + +3. **界面显示异常** + - 确保屏幕分辨率不低于 1024x768 + - 检查系统字体设置 + +### 日志查看 +程序运行日志输出到控制台,包含: +- 用户登录/注册信息 +- 题目生成状态 +- 界面切换记录 + +## 技术特性 + +- **模块化设计**: 易于维护和扩展 +- **响应式界面**: 适配不同屏幕尺寸 +- **数据验证**: 完整的输入验证机制 +- **错误处理**: 友好的错误提示信息 +- **性能优化**: 高效的题目生成和去重算法 + +## 注意事项 + +1. 首次使用需要注册账号 +2. 小学题目不包含负数运算 +3. 初中题目避免负数开根号 +4. 邮箱验证码有效期为 5 分钟 +5. 建议在稳定的网络环境下使用邮箱功能 +