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.
|
|
2 months ago | |
|---|---|---|
| .idea | 2 months ago | |
| .mvn/wrapper | 2 months ago | |
| out/artifacts/MathSystemTogether_jar | 2 months ago | |
| src/main | 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 | 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 | 高中 | 三角函数运算 |
新用户注册
系统支持新用户注册功能:
- 点击注册按钮:在登录界面点击"📝 注册"按钮
- 填写注册信息:
- 用户名(至少3个字符)
- 密码(至少6个字符)
- 确认密码
- 邮箱地址
- 难度级别选择
- 邮箱验证:
- 点击"📤 发送验证码"获取验证码
- 输入收到的6位数字验证码
- 验证码有效期为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)
- 正确题数:答对的题目数量
- 总题数:考试题目总数
- 详细结果:每题的用户答案、正确答案、对错标记
🎯 使用建议
- 选择合适的难度级别:根据学生水平选择对应难度
- 合理设置题目数量:建议5-20题,避免过长或过短
- 认真阅读题目:仔细理解题目要求
- 仔细选择答案:确认选择后再提交
- 查看详细结果:了解错题原因,便于改进
🔧 开发环境
- Java版本:JDK 21+
- 构建工具:Maven 3.6+
- GUI框架:JavaFX 21
- 开发工具:IntelliJ IDEA(推荐)
📝 注意事项
- 首次运行可能需要下载JavaFX依赖
- 题目文件保存在项目根目录的
papers文件夹中 - 每个用户有独立的文件夹存储题目
- 支持同时运行多个用户会话(需要多次启动)
🐛 故障排除
常见问题
-
应用程序无法启动
- 检查Java版本是否为JDK 21+
- 确保Maven依赖下载完整
-
界面显示异常
- 检查JavaFX模块是否正确配置
- 尝试重新编译项目
-
登录失败
- 确认用户名和密码正确
- 检查输入框是否为空
-
无法生成题目
- 确认题目数量在5-20范围内
- 检查难度级别选择
-
答题过程中断
- 可以点击"退出考试"重新开始
- 系统会提示确认退出
📞 技术支持
如有问题,请检查:
- Java版本兼容性
- Maven依赖完整性
- 文件权限设置
- 系统环境变量配置
🎉 系统改造完成
数学考试系统已成功改造完成!
改造内容总结
1. 系统架构重新设计
- 原系统:试卷生成系统(生成题目文件)
- 新系统:学生答题系统(在线答题考试)
2. 核心功能转换
- 题目生成 → 选择题生成
- 文件保存 → 在线答题
- 题目展示 → 交互式答题界面
3. 新增核心组件
Question.java - 选择题数据模型
- 题目内容 (questionText)
- 四个选项 (optionA, B, C, D)
- 正确答案 (correctAnswer)
- 题目编号 (questionNumber)
ChoiceQuestionGenerator.java - 选择题生成器
- 支持三个难度级别
- 智能选项生成算法
- 防重复机制
- 数学计算引擎
ExamController.java - 考试控制器
- 用户登录管理
- 考试流程控制
- 答案记录统计
- 结果展示功能
系统优势
相比原系统的改进
- 交互性:从静态生成到动态答题
- 实时性:即时反馈和结果统计
- 用户友好:图形化界面替代命令行
- 教育价值:支持学习评估和测试
技术特色
- 模块化设计:清晰的代码结构
- 可扩展性:易于添加新功能
- 稳定性:完善的错误处理
- 性能优化:高效的算法实现
系统验证
功能测试
- ✅ 用户登录功能正常
- ✅ 考试设置功能正常
- ✅ 题目生成功能正常
- ✅ 答题流程功能正常
- ✅ 结果统计功能正常
界面测试
- ✅ 登录界面显示正常
- ✅ 考试设置界面显示正常
- ✅ 答题界面显示正常
- ✅ 结果界面显示正常
性能测试
- ✅ 编译无错误
- ✅ 运行稳定
- ✅ 响应及时
- ✅ 内存使用合理
系统现在支持:
- 完整的在线答题流程
- 三个难度级别的选择题
- 实时进度跟踪
- 自动评分统计
- 详细的考试结果
用户可以通过图形化界面进行数学考试,系统会自动记录答案、统计成绩,并提供详细的结果分析。
系统已准备就绪,可以开始使用! 🚀
祝您考试顺利! 🎉