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.
k_m/README.md

69 lines
2.5 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 + Maven
- **用户群体**:小学、初中、高中学生
- **功能特点**:邮箱注册、密码安全设置、题目生成、在线答题、自动评分
- **技术栈**Java 11, Swing, Maven, javax.mail, exp4j
---
## 项目简介
本项目是一个面向中小学生设计的数学学习软件,支持通过图形化界面完成用户注册、登录、选择学习阶段(小学/初中/高中)、生成数学选择题试卷、在线答题并自动评分。题目难度根据学段自动调整,确保符合教学要求。
---
## 功能特性
| 功能 | 说明 |
|------|------|
| ✅ 邮箱注册 | 用户输入邮箱,系统发送 6 位注册码,完成注册 |
| ✅ 安全密码设置 | 密码需 6-10 位,包含大小写字母和数字 |
| ✅ 密码修改 | 登录后可修改密码,需验证原密码 |
| ✅ 学段选择 | 注册后可选择小学、初中或高中 |
| ✅ 题目生成 | 根据学段生成指定数量10-30的选择题无重复题目 |
| ✅ 在线答题 | 每题四个选项,点击提交后跳转下一题 |
| ✅ 自动评分 | 答题结束后显示正确率(百分比) |
| ✅ 继续练习 | 可选择退出或继续做题 |
| ❌ 无数据库 | 所有数据(用户、题目)保存在本地文件(`userdata.dat` |
---
## 题目难度说明
| 学段 | 运算要求 |
|------|----------|
| 小学 | `+`、`-`、`*`、`/` 和 `()`,操作数 1-100操作数个数 1-5 |
| 初中 | 至少包含一个 **平方** 或 **开根号** 运算 |
| 高中 | 至少包含一个 **sin**、**cos** 或 **tan** 三角函数运算 |
> 所有题目均为选择题,选项随机生成,答案唯一。
---
## 编译与运行
### 1. 构建项目
本项目使用 Maven 管理依赖,需 JDK 11 或以上版本。
```bash
mvn clean package
构建成功后,可在 target/ 目录下找到可执行 JAR 文件:
MathLearningApp.jar ✅ 推荐使用(包含所有依赖的“胖 JAR”
2. 运行程序
java -jar MathLearningApp.jar
⚠️ 第一次运行会生成 userdata.dat 文件用于保存用户数据。
📬 邮箱功能说明
使用 javax.mail 发送注册码到用户邮箱
邮件服务器配置为 QQ 邮箱 SMTPSSL
用户需开启邮箱的 SMTP 服务并使用“授权码”作为密码(非登录密码)
⚠️ 如需更换邮箱服务商,请修改 UserService.java 中的 SMTP 配置。