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.
 
 
Go to file
hnu202326010328 6be4b470b7
完结版本
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             # 邮箱配置文件

界面概览

  • 登录与注册: 简洁的登录界面,提供注册新用户的入口。注册流程包含邮箱验证,确保用户真实性。
  • 主菜单: 用户登录后,可以看到欢迎信息,并选择“小学”、“初中”、“高中”三种难度。同时可以自定义题目数量。
  • 答题界面: 清晰地展示题目、选项和进度条。用户通过单选按钮作答,并提交答案进入下一题。
  • 分数界面: 所有题目完成后,展示最终得分和鼓励评语,并提供“再做一组”或“退出登录”的选项。