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.
|
|
4 months ago | |
|---|---|---|
| .. | ||
| README.md | 4 months ago | |
README.md
小初高数学学习软件 - 代码说明文档
项目概述
本项目是一个面向小学、初中和高中学生的数学学习软件,提供图形化界面的数学题目练习和测试功能。软件采用JavaFX开发,实现了用户注册、登录、题目生成、在线答题和成绩统计等完整功能。
项目结构
src/
├── Main.java # 主程序入口,界面控制器
├── QuestionGenerator.java # 题目生成器
├── ExamManager.java # 试卷管理器
├── User.java # 用户实体类
└── MailSender.java # 邮件发送器
核心功能模块
1. 用户管理模块
功能特性
- 双方式登录:支持邮箱或用户名登录
- 用户注册:邮箱验证、用户名设置(4-10位)
- 密码管理:6-10位,必须包含大小写字母和数字
- 密码修改:登录状态下可修改密码
核心代码
// 用户验证方法
private boolean isValidUsername(String username) // 用户名格式验证
private boolean isValidEmail(String email) // 邮箱格式验证
private boolean isValidPassword(String password) // 密码强度验证
2. 题目生成模块
题目难度分级
小学题目
- 运算符:+、-、*、/
- 支持括号运算
- 操作数:1-100
- 操作数个数:2-5个
初中题目
- 包含小学所有运算符
- 新增:平方(^2)、开根号(√)
- 确保每道题至少包含一个特殊运算符
高中题目
- 包含初中所有运算符
- 新增:sin、cos、tan三角函数
- 确保每道题至少包含一个三角函数
核心算法
public String generateQuestion(String type) // 根据类型生成题目
public List<String> generateOptions(String answer) // 生成选择题选项
3. 考试管理模块
功能特性
- 题目查重:同一试卷内题目不重复
- 进度跟踪:实时显示答题进度
- 自动评分:答完后自动计算分数
- 成绩展示:显示得分、正确率、详细统计
核心类
public class ExamManager {
public List<String> generateExam(int numQuestions) // 生成指定数量题目
}
4. 界面导航流程
登录界面 → 注册界面 → 难度选择 → 题目数量输入 → 答题界面 → 成绩界面
↑ ↓
←←←←←←←←←←←←←←←←←←←←←←←←←←←←←←←←←←←←←←←←←←←←←←←←←←←
技术实现细节
1. 数据存储
- 使用内存Map存储用户数据
- 题目历史记录在Session中维护
- 符合"不可以使用数据库存储数据"的要求
2. 邮件服务
- 使用QQ邮箱SMTP服务
- 异步发送验证码
- 支持注册验证功能
3. 界面设计
- 采用JavaFX图形界面
- 响应式布局设计
- 友好的用户交互提示
代码规范与架构
1. 类职责分离
Main.java:界面控制和业务流程QuestionGenerator.java:题目生成算法ExamManager.java:试卷管理逻辑User.java:用户数据模型MailSender.java:邮件服务封装
2. 方法设计原则
- 单一职责原则
- 方法行数控制在40行以内
- 清晰的参数和返回值定义
配置要求
运行环境
- Java 8及以上
- JavaFX SDK
- 网络连接(用于邮件发送)
邮箱配置
在Main.java中修改发件邮箱配置:
private MailSender mailSender = new MailSender("你的邮箱", "授权码");
功能验证清单
✅ 已实现功能
- 图形化界面操作
- 用户注册与邮箱验证
- 密码强度验证(6-10位,大小写字母+数字)
- 双方式登录(邮箱/用户名)
- 密码修改功能
- 三难度题目生成(小学、初中、高中)
- 题目数量限制(10-30题)
- 选择题形式答题
- 自动评分与成绩展示
- 继续做题/退出选择
✅ 符合项目要求
- 不使用数据库存储
- 所有功能通过图形界面操作
- 完整的用户流程
- 题目符合各学段难度要求
使用说明
- 首次使用:点击"前往注册",设置用户名、邮箱,接收验证码完成注册
- 登录系统:使用邮箱或用户名+密码登录
- 选择难度:根据学习阶段选择小学、初中或高中
- 设置题量:输入10-30之间的题目数量
- 开始答题:逐题作答,系统自动记录进度
- 查看成绩:答题完成后查看详细成绩统计
- 继续学习:可选择继续做题或退出系统
最后更新:2025年10月12日