You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Partner_Project/README.md

128 lines
3.8 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# 小初高数学学习系统
## 项目简介
这是一个基于Java Swing开发的数学学习软件专门为小学、初中和高中学生设计。系统提供个性化的数学题目生成、答题练习和成绩记录功能支持用户注册、登录和密码管理。
## 功能特性
### 用户管理
- **用户注册**:支持邮箱、用户名、密码和年级选择注册
- **用户登录**:支持邮箱或用户名登录
- **密码修改**:安全的密码修改功能
- **数据持久化**用户数据使用JSON格式存储
### 题目生成
- **分级题目**:根据用户年级(小学、初中、高中)生成相应难度的数学题目
- **智能去重**:避免重复题目,确保练习效果
- **题目保存**:自动保存生成的题目到用户专属文件夹
### 答题系统
- **选择题形式**每题提供4个选项
- **实时评分**:答题后立即显示结果
- **成绩记录**:记录每次练习的成绩
### 年级适配
- **小学**:基础四则运算
- **初中**:包含平方、平方根运算
- **高中**:包含三角函数运算
## 技术架构
### 开发环境
- **语言**Java 11
- **构建工具**Maven
- **GUI框架**Swing
- **数据格式**JSON
### 项目结构
```
src/
├── model/ # 数据模型层
│ ├── UserManager.java # 用户管理
│ ├── QuestionMaker.java # 题目生成器
│ ├── Question.java # 题目模型
│ ├── Grade.java # 年级枚举
│ ├── PrimaryMaker.java # 小学题目生成
│ ├── MiddleMaker.java # 初中题目生成
│ └── HighMaker.java # 高中题目生成
├── ui/ # 用户界面层
│ ├── MathLearningApp.java # 主程序入口
│ ├── LoginFrame.java # 登录界面
│ ├── RegisterDialog.java # 注册对话框
│ ├── GradeSelectionFrame.java # 年级选择界面
│ ├── QuizFrame.java # 答题界面
│ ├── ResultFrame.java # 结果界面
│ ├── UserSettingsDialog.java # 用户设置
│ └── ChangePasswordDialog.java # 修改密码
├── others/ # 资源文件
└── Math.exe # 可执行文件
```
### 依赖库
- **Gson 2.10.1**JSON数据处理
- **JavaMail 1.6.2**:邮件功能支持
- **JAF 1.1.1**JavaBeans激活框架
## 安装与运行
### 环境要求
- Java 11 或更高版本
- Maven 3.6 或更高版本
### 直接运行
- 双击Math.exe程序
### 编译运行
```bash
# 使用Maven编译
mvn compile
# 运行程序
mvn exec:java
# 打包为可执行JAR
mvn package
```
## 使用说明
### 首次使用
1. 启动程序后进入登录界面
2. 点击"注册"按钮创建新账户
3. 填写邮箱、验证码
4. 验证完成后填写用户名、密码并选择年级
5. 注册成功后返回登录界面登录
### 练习流程
1. 登录成功后选择年级系统会根据注册信息自动推荐以及题目数量10-30
2. 进入答题界面开始练习
3. 选择答案后点击"下一题"继续
4. 完成所有题目后自动生成并显示成绩
### 用户设置
- 在登录后界面可以修改密码
- 系统会自动保存练习记录
## 数据存储
### 用户数据
- 位置:`users.json`
- 格式JSON格式存储用户信息
### 题目记录
- 位置:`questions/{邮箱}/` 目录
- 格式:按时间戳命名的文本文件
## 开发说明
### 扩展题目类型
要添加新的题目类型,需要:
1. 在相应的`*Maker.java`类中添加题目生成逻辑
2. 在`QuestionMaker.java`中更新表达式解析逻辑
3. 更新`Grade.java`枚举(如果需要新的年级)
### 自定义界面
所有UI组件都使用Swing开发可以通过修改对应的`*.java`文件来自定义界面样式和布局。