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.
|
|
3 months ago | |
|---|---|---|
| doc | 3 months ago | |
| src/main | 3 months ago | |
| .gitignore | 3 months ago | |
| README.md | 3 months ago | |
| pom.xml | 3 months ago | |
README.md
MathGenerator - 中小学数学学习软件
MathGenerator 是一个使用 JavaFX 构建的桌面应用程序,旨在为中小学生提供一个有趣且富有挑战性的数学练习平台。用户可以注册登录,选择不同难度(小学、初中、高中),生成定制数量的数学测验卷,并在完成后立即获得分数反馈。
核心功能
- 完整的用户系统: 支持新用户注册、邮箱验证、登录以及密码修改功能。
- 三级难度递进:
- 小学: “安全”的四则运算,确保运算过程和结果不为负数。
- 初中: 在小学基础上,增加了平方和开方运算。
- 高中: 在初中基础上,增加了基础的三角函数运算 (sin, cos, tan)。
- 动态试卷生成: 用户可自定义每套试卷的题目数量(10-30题),程序会根据所选难度动态生成不重复的题目。
- 即时反馈与评分: 完成答题后,系统会立刻计算分数,并根据分数高低给出不同的鼓励性评语。
- 试卷存档: 每次生成的试卷都会自动以
.txt格式保存在本地,方便用户随时回顾和复习。 - 精美的用户界面: 使用 JavaFX 和 CSS精心设计了所有界面,包含自定义的背景图片和玻璃拟态效果,提升了用户体验。
技术栈
- 核心框架: Java 17, JavaFX 17
- JSON 处理: Google Gson (用于持久化用户数据)
- 邮件服务: Apache Commons Mail (用于发送注册验证码)
- 表达式计算: Mozilla Rhino (用于动态计算生成的数学表达式字符串)
- 构建工具: Maven
如何运行
1. 先决条件
- JDK 17 或更高版本
- Apache Maven
2. 配置邮件服务
为了使“邮箱验证码”功能正常工作,您需要在项目根目录下创建一个 config.properties 文件,并填入您的 SMTP 服务信息。
同时,在自己的邮箱设置中开通相应服务
config.properties 文件模板:
# QQ邮箱 SMTP 服务器配置示例
smtp.host=smtp.qq.com
smtp.port=465
# 您的发件人邮箱地址
smtp.username=your-email@qq.com
# 您的邮箱SMTP授权码 (注意:不是邮箱登录密码)
smtp.password=your_email_authorization_code
3. 构建和运行
在项目根目录下,执行以下 Maven 命令:
# 清理并构建项目,生成一个可执行的 fat-jar
mvn clean package
# 运行生成的 JAR 文件
java -jar MathGenerator-1.0.0.jar
(注意: JAR 文件名可能因 pom.xml 配置而异)
项目结构
src
├── main
│ ├── java
│ │ └── com
│ │ └── mathgenerator
│ │ ├── controller # FXML视图的控制器类
│ │ ├── generator # 不同难度题目的生成器
│ │ ├── model # 数据模型 (User, Level, ChoiceQuestion)
│ │ ├── service # 核心业务逻辑 (用户服务, 试卷服务)
│ │ ├── storage # 文件读写管理
│ │ ├── util # 工具类 (验证逻辑)
│ │ ├── Launcher.java # 解决 fat-jar 问题的启动器
│ │ └── MainApplication.java # JavaFX主程序入口
│ └── resources
│ └── com
│ └── mathgenerator
│ ├── images # UI图片资源
│ ├── styles # CSS样式表
│ │
│ └── view # FXML界面布局文件
│── users.json # (程序首次运行后生成) 用户数据文件
└── config.properties # 邮箱配置文件
界面概览
- 登录与注册: 简洁的登录界面,提供注册新用户的入口。注册流程包含邮箱验证,确保用户真实性。
- 主菜单: 用户登录后,可以看到欢迎信息,并选择“小学”、“初中”、“高中”三种难度。同时可以自定义题目数量。
- 答题界面: 清晰地展示题目、选项和进度条。用户通过单选按钮作答,并提交答案进入下一题。
- 分数界面: 所有题目完成后,展示最终得分和鼓励评语,并提供“再做一组”或“退出登录”的选项。