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
hnu202326010114 c3eba1c28a
1
2 months ago
.idea 打包准备修复bug 2 months ago
.mvn/wrapper 第一次提交 2 months ago
out/artifacts/MathSystemTogether_jar 打包准备修复bug 2 months ago
src/main 方法代码行数40 2 months ago
.gitignore 第一次提交 2 months ago
README.md 添加注册功能并完善邮箱验证 2 months ago
mvnw 第一次提交 2 months ago
mvnw.cmd 第一次提交 2 months ago
pom.xml 添加注册功能并完善邮箱验证 2 months ago
run_gui.bat 添加注册功能并完善邮箱验证 2 months ago
user_data.txt 打包准备修复bug 2 months ago

README.md

数学考试系统 - 学生答题系统

🎯 项目概述

这是一个基于JavaFX的数学考试系统支持学生在线答题。系统提供选择题形式的数学考试支持小学、初中、高中三个难度级别。

🚀 快速开始

方法一:使用启动脚本(推荐)

Windows用户

双击运行 run_gui.bat

Linux/Mac用户

chmod +x run_gui.sh
./run_gui.sh

方法二使用Maven命令

# 编译项目
mvn clean compile

# 运行考试系统
mvn exec:java -Dexec.mainClass="com.example.mathsystemtogether.HelloApplication"

👤 用户账号

预设测试账号

系统预设了9个测试账号

用户名 密码 难度级别 题目类型
张三1 123 小学 基础四则运算
张三2 123 小学 基础四则运算
张三3 123 小学 基础四则运算
李四1 123 初中 平方、开方运算
李四2 123 初中 平方、开方运算
李四3 123 初中 平方、开方运算
王五1 123 高中 三角函数运算
王五2 123 高中 三角函数运算
王五3 123 高中 三角函数运算

新用户注册

系统支持新用户注册功能:

  1. 点击注册按钮:在登录界面点击"📝 注册"按钮
  2. 填写注册信息
    • 用户名至少3个字符
    • 密码至少6个字符
    • 确认密码
    • 邮箱地址
    • 难度级别选择
  3. 邮箱验证
    • 点击"📤 发送验证码"获取验证码
    • 输入收到的6位数字验证码
    • 验证码有效期为5分钟
  4. 完成注册:点击"🚀 注册"完成账户创建
  5. 自动跳转:注册成功后自动返回登录界面

注意

  • 用户名不能重复
  • 邮箱地址格式必须正确
  • 验证码通过真实邮件发送
  • 用户数据保存在本地 user_data.txt 文件中

邮件服务配置

系统支持真实的邮箱验证码功能已配置QQ邮箱

  • 邮箱地址1961004835@qq.com
  • SMTP服务器smtp.qq.com:587
  • 配置文件src/main/resources/mail.properties

如需修改邮箱配置,请编辑 mail.properties 文件。

🎮 使用流程

1. 用户登录或注册

登录现有账户:

  • 输入用户名张三1
  • 输入密码123
  • 点击"🚀 登录"按钮

注册新账户:

  • 点击"📝 注册"按钮
  • 填写注册信息(用户名、密码、邮箱、难度级别)
  • 获取并输入邮箱验证码
  • 点击"🚀 注册"完成账户创建

2. 设置考试

  • 选择难度级别(小学/初中/高中)
  • 输入题目数量5-20题
  • 点击"开始考试"按钮

3. 答题过程

  • 系统显示第一题和四个选项A、B、C、D
  • 选择你认为正确的答案
  • 点击"提交答案"按钮
  • 系统自动进入下一题
  • 重复直到完成所有题目

4. 查看结果

  • 系统显示考试结果
  • 包括得分、正确题数、总题数
  • 显示每题的详细结果(你的答案 vs 正确答案)

📚 题目类型示例

小学题目

  • 基础四则运算
  • 示例:15 + 23 = ?
  • 选项A. 38 B. 35 C. 40 D. 42

初中题目

  • 平方运算5² = ?
  • 开方运算√16 = ?
  • 选项A. 2 B. 4 C. 6 D. 8

高中题目

  • 三角函数sin(30°) = ?
  • 选项A. 0.5 B. 0.7 C. 1.0 D. 1.2

🎨 界面特色

登录界面

  • 简洁的用户名密码输入
  • 实时登录状态反馈
  • 错误提示和成功提示

考试设置界面

  • 难度级别选择下拉框
  • 题目数量输入框
  • 清晰的开始考试按钮

考试界面

  • 题目编号和进度显示
  • 大字体题目显示
  • 四个单选按钮选项
  • 提交答案和下一题按钮
  • 退出考试确认对话框

结果界面

  • 总分和正确率显示
  • 每题详细结果展示
  • 重新考试和返回登录选项

🛠️ 技术特性

  • 智能题目生成:根据难度级别生成相应题目
  • 防重复机制:同一张试卷不会出现相同题目
  • 实时进度跟踪:显示当前题目和总题目数
  • 答案记录:自动记录用户选择
  • 结果统计:自动计算得分和正确率
  • 用户友好:清晰的操作提示和状态反馈

📁 项目结构

MathSystemTogether/
├── src/main/java/com/example/mathsystemtogether/
│   ├── HelloApplication.java          # 主应用程序入口
│   ├── ExamController.java            # 考试系统控制器
│   ├── RegisterController.java        # 注册功能控制器
│   ├── EmailService.java              # 邮件服务类
│   ├── Question.java                  # 选择题数据模型
│   └── ChoiceQuestionGenerator.java   # 选择题生成器
├── src/main/resources/com/example/mathsystemtogether/
│   ├── exam-view.fxml                # 考试界面布局文件
│   └── register-view.fxml            # 注册界面布局文件
├── src/main/resources/
│   └── mail.properties                # 邮件服务配置文件
├── user_data.txt                     # 用户数据存储文件
├── papers/                           # 题目文件存储目录
│   ├── 张三1/                        # 用户文件夹
│   ├── 李四1/
│   └── 王五1/
├── run_gui.bat                       # Windows启动脚本
├── run_gui.sh                        # Linux/Mac启动脚本
└── README.md                         # 本说明文件

🔧 核心功能

用户管理功能

  • 用户注册:支持新用户注册,包含邮箱验证
  • 用户登录:支持预设账号和注册账号登录
  • 数据存储:用户信息保存在本地文件中
  • 数据验证:用户名唯一性、邮箱格式验证

题目生成算法

  • 小学:基础四则运算(+、-、×、÷)
  • 初中:平方运算(²)、开方运算(√)
  • 高中三角函数sin、cos、tan

选项生成策略

  • 正确答案作为选项之一
  • 生成3个接近正确答案的错误选项
  • 随机打乱选项顺序

考试流程控制

  • 题目顺序显示
  • 答案自动记录
  • 进度实时更新
  • 结果自动统计

邮箱验证功能

  • 真实邮件发送通过SMTP服务器发送验证码邮件
  • 验证码生成6位数字随机验证码
  • 时效控制验证码5分钟有效期
  • 防重复发送60秒倒计时限制
  • 格式验证:邮箱地址格式检查
  • HTML邮件美观的HTML格式验证码邮件

📊 考试结果

系统会显示:

  • 总分:按百分比计算(正确题数/总题数 × 100
  • 正确题数:答对的题目数量
  • 总题数:考试题目总数
  • 详细结果:每题的用户答案、正确答案、对错标记

🎯 使用建议

  1. 选择合适的难度级别:根据学生水平选择对应难度
  2. 合理设置题目数量建议5-20题避免过长或过短
  3. 认真阅读题目:仔细理解题目要求
  4. 仔细选择答案:确认选择后再提交
  5. 查看详细结果:了解错题原因,便于改进

🔧 开发环境

  • Java版本JDK 21+
  • 构建工具Maven 3.6+
  • GUI框架JavaFX 21
  • 开发工具IntelliJ IDEA推荐

📝 注意事项

  1. 首次运行可能需要下载JavaFX依赖
  2. 题目文件保存在项目根目录的 papers 文件夹中
  3. 每个用户有独立的文件夹存储题目
  4. 支持同时运行多个用户会话(需要多次启动)

🐛 故障排除

常见问题

  1. 应用程序无法启动

    • 检查Java版本是否为JDK 21+
    • 确保Maven依赖下载完整
  2. 界面显示异常

    • 检查JavaFX模块是否正确配置
    • 尝试重新编译项目
  3. 登录失败

    • 确认用户名和密码正确
    • 检查输入框是否为空
  4. 无法生成题目

    • 确认题目数量在5-20范围内
    • 检查难度级别选择
  5. 答题过程中断

    • 可以点击"退出考试"重新开始
    • 系统会提示确认退出

📞 技术支持

如有问题,请检查:

  1. Java版本兼容性
  2. Maven依赖完整性
  3. 文件权限设置
  4. 系统环境变量配置

🎉 系统改造完成

数学考试系统已成功改造完成!

改造内容总结

1. 系统架构重新设计

  • 原系统:试卷生成系统(生成题目文件)
  • 新系统:学生答题系统(在线答题考试)

2. 核心功能转换

  • 题目生成选择题生成
  • 文件保存在线答题
  • 题目展示交互式答题界面

3. 新增核心组件

Question.java - 选择题数据模型

- 题目内容 (questionText)
- 四个选项 (optionA, B, C, D)
- 正确答案 (correctAnswer)
- 题目编号 (questionNumber)

ChoiceQuestionGenerator.java - 选择题生成器

- 支持三个难度级别
- 智能选项生成算法
- 防重复机制
- 数学计算引擎

ExamController.java - 考试控制器

- 用户登录管理
- 考试流程控制
- 答案记录统计
- 结果展示功能

系统优势

相比原系统的改进

  1. 交互性:从静态生成到动态答题
  2. 实时性:即时反馈和结果统计
  3. 用户友好:图形化界面替代命令行
  4. 教育价值:支持学习评估和测试

技术特色

  • 模块化设计:清晰的代码结构
  • 可扩展性:易于添加新功能
  • 稳定性:完善的错误处理
  • 性能优化:高效的算法实现

系统验证

功能测试

  • 用户登录功能正常
  • 考试设置功能正常
  • 题目生成功能正常
  • 答题流程功能正常
  • 结果统计功能正常

界面测试

  • 登录界面显示正常
  • 考试设置界面显示正常
  • 答题界面显示正常
  • 结果界面显示正常

性能测试

  • 编译无错误
  • 运行稳定
  • 响应及时
  • 内存使用合理

系统现在支持:

  • 完整的在线答题流程
  • 三个难度级别的选择题
  • 实时进度跟踪
  • 自动评分统计
  • 详细的考试结果

用户可以通过图形化界面进行数学考试,系统会自动记录答案、统计成绩,并提供详细的结果分析。


系统已准备就绪,可以开始使用! 🚀

祝您考试顺利! 🎉