## 功能特性 ### 1. 用户管理系统 - 用户注册与邮箱验证 - 用户登录与密码管理 - 个人资料管理(用户名修改、密码修改) - 用户教育阶段设置(小学/初中/高中) ### 2. 数学题目生成系统 - 支持三种教育阶段的题目生成: - 小学:基础四则运算(+、-、×、÷) - 初中:包含平方、开方运算 - 高中:包含三角函数(sin、cos、tan) - 自动生成带括号的表达式 - 智能选项生成(正确答案+干扰项) ### 3. 答题测试系统 - 自适应题目数量(10-30题可选) - 图形化答题界面 - 实时答题记录 - 自动评分与结果展示 ## 技术特点 ### 核心技术栈 - Java Swing:图形用户界面 - Jackson:用户数据序列化 - BCrypt:密码加密存储 - JavaMail:邮件验证码发送 ### 设计模式 - MVC架构模式 - 抽象工厂模式(题目生成器) - 单例模式(用户服务) ## 使用说明 ### 系统要求 - Java 8或更高版本 - 网络连接(用于邮件验证) ### 运行环境 程序可以通过可执行文件 math-learning-app-1.0.0.jar执行 运行环境: window PowerShell UTF-8 编码 ### 安装与运行 1. 克隆或下载项目源代码 2. 使用IDE导入项目 3. 配置邮件服务参数(在[RegisterFrame.java](file://D:\filee\软导\java\结对\project\MathLearningApp\git\src\main\java\mathlearning\ui\RegisterFrame.java)和[ChangeCodeFrame.java](file://D:\filee\软导\java\结对\project\MathLearningApp\git\src\main\java\mathlearning\ui\ChangeCodeFrame.java)中) 4. 编译并运行[App.java](file://D:\filee\软导\java\结对\project\MathLearningApp\git\src\main\java\mathlearning\App.java) ### 使用流程 1. **注册账户**:输入用户名、邮箱,获取验证码并设置密码 2. **登录系统**:使用注册邮箱和密码登录 3. **选择教育阶段**:首次登录需选择小学/初中/高中 4. **开始测试**:在主界面选择题目数量开始答题 5. **查看结果**:提交后自动评分并显示结果 ## 项目亮点 1. **安全性**: - 密码BCrypt加密存储 - 邮箱验证机制 - 验证码时效控制(10分钟) 2. **智能化**: - 根据教育阶段自适应题目难度 - 智能选项生成算法 - 表达式计算引擎 3. **用户体验**: - 友好的图形界面 - 实时反馈机制 - 完善的错误处理 ## 注意事项 1. 邮件服务配置: - 需要在[RegisterFrame.java](file://D:\filee\软导\java\结对\project\MathLearningApp\git\src\main\java\mathlearning\ui\RegisterFrame.java)和[ChangeCodeFrame.java](file://D:\filee\软导\java\结对\project\MathLearningApp\git\src\main\java\mathlearning\ui\ChangeCodeFrame.java)中配置SMTP参数 - 默认使用QQ邮箱SMTP服务 2. 数据存储: - 用户数据保存在`data/users.json`文件中 - 首次运行会自动创建数据文件 3. 密码要求: - 长度6-10位 - 必须包含大小写字母和数字