diff --git a/.idea/artifacts/MathLearningApp_jar.xml b/.idea/artifacts/MathLearningApp_jar.xml new file mode 100644 index 0000000..2153fb3 --- /dev/null +++ b/.idea/artifacts/MathLearningApp_jar.xml @@ -0,0 +1,19 @@ + + + $PROJECT_DIR$/out/artifacts/MathLearningApp_jar + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/doc/README.md b/doc/README.md new file mode 100644 index 0000000..f16813f --- /dev/null +++ b/doc/README.md @@ -0,0 +1,84 @@ +## 功能特性 + +### 1. 用户管理系统 +- 用户注册与邮箱验证 +- 用户登录与密码管理 +- 个人资料管理(用户名修改、密码修改) +- 用户教育阶段设置(小学/初中/高中) + +### 2. 数学题目生成系统 +- 支持三种教育阶段的题目生成: + - 小学:基础四则运算(+、-、×、÷) + - 初中:包含平方、开方运算 + - 高中:包含三角函数(sin、cos、tan) +- 自动生成带括号的表达式 +- 智能选项生成(正确答案+干扰项) + +### 3. 答题测试系统 +- 自适应题目数量(10-30题可选) +- 图形化答题界面 +- 实时答题记录 +- 自动评分与结果展示 + +## 技术特点 + +### 核心技术栈 +- Java Swing:图形用户界面 +- Jackson:用户数据序列化 +- BCrypt:密码加密存储 +- JavaMail:邮件验证码发送 + +### 设计模式 +- MVC架构模式 +- 抽象工厂模式(题目生成器) +- 单例模式(用户服务) + +## 使用说明 + +### 系统要求 +- Java 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位 + - 必须包含大小写字母和数字 diff --git a/out/META-INF/MANIFEST.MF b/out/META-INF/MANIFEST.MF new file mode 100644 index 0000000..d752388 --- /dev/null +++ b/out/META-INF/MANIFEST.MF @@ -0,0 +1,3 @@ +Manifest-Version: 1.0 +Main-Class: mathlearning.App + diff --git a/out/artifacts/MathLearningApp_jar/MathLearningApp.jar b/out/artifacts/MathLearningApp_jar/MathLearningApp.jar new file mode 100644 index 0000000..726f5d9 Binary files /dev/null and b/out/artifacts/MathLearningApp_jar/MathLearningApp.jar differ