# 小初高数学学习软件(结对编程项目) > 带图形化界面的小学、初中、高中数学选择题练习系统 - **项目类型**: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 邮箱 SMTP(SSL) 用户需开启邮箱的 SMTP 服务并使用“授权码”作为密码(非登录密码) ⚠️ 如需更换邮箱服务商,请修改 UserService.java 中的 SMTP 配置。