最终版1.4 #5

Merged
hnu202326010217 merged 0 commits from chenyingjiang_branch into develop 5 months ago

@ -0,0 +1,19 @@
<component name="ArtifactManager">
<artifact type="jar" name="MathLearningApp:jar">
<output-path>$PROJECT_DIR$/out/artifacts/MathLearningApp_jar</output-path>
<root id="archive" name="MathLearningApp.jar">
<element id="directory" name="META-INF">
<element id="file-copy" path="$PROJECT_DIR$/out/META-INF/MANIFEST.MF" />
</element>
<element id="module-output" name="MathLearningApp" />
<element id="extracted-dir" path="$MAVEN_REPOSITORY$/com/sun/mail/javax.mail/1.6.2/javax.mail-1.6.2.jar" path-in-jar="/" />
<element id="extracted-dir" path="$MAVEN_REPOSITORY$/at/favre/lib/bcrypt/0.9.0/bcrypt-0.9.0.jar" path-in-jar="/" />
<element id="extracted-dir" path="$MAVEN_REPOSITORY$/at/favre/lib/bytes/1.3.0/bytes-1.3.0.jar" path-in-jar="/" />
<element id="extracted-dir" path="$MAVEN_REPOSITORY$/com/fasterxml/jackson/datatype/jackson-datatype-jsr310/2.15.2/jackson-datatype-jsr310-2.15.2.jar" path-in-jar="/" />
<element id="extracted-dir" path="$MAVEN_REPOSITORY$/com/fasterxml/jackson/core/jackson-core/2.15.2/jackson-core-2.15.2.jar" path-in-jar="/" />
<element id="extracted-dir" path="$MAVEN_REPOSITORY$/javax/activation/activation/1.1/activation-1.1.jar" path-in-jar="/" />
<element id="extracted-dir" path="$MAVEN_REPOSITORY$/com/fasterxml/jackson/core/jackson-databind/2.15.2/jackson-databind-2.15.2.jar" path-in-jar="/" />
<element id="extracted-dir" path="$MAVEN_REPOSITORY$/com/fasterxml/jackson/core/jackson-annotations/2.15.2/jackson-annotations-2.15.2.jar" path-in-jar="/" />
</root>
</artifact>
</component>

@ -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位
- 必须包含大小写字母和数字

@ -0,0 +1,3 @@
Manifest-Version: 1.0
Main-Class: mathlearning.App
Loading…
Cancel
Save