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.
|
|
5 months ago | |
|---|---|---|
| doc | 5 months ago | |
| lib | 5 months ago | |
| questions/1617940512@qq.com | 5 months ago | |
| src | 5 months ago | |
| Math.exe | 5 months ago | |
| README.md | 5 months ago | |
| users.json | 5 months ago | |
README.md
小初高数学学习系统
项目简介
这是一个基于Java Swing开发的数学学习软件,专门为小学、初中和高中学生设计。系统提供个性化的数学题目生成、答题练习和成绩记录功能,支持用户注册、登录和密码管理。
功能特性
用户管理
- 用户注册:支持邮箱、用户名、密码和年级选择注册
- 用户登录:支持邮箱或用户名登录
- 密码修改:安全的密码修改功能
- 数据持久化:用户数据使用JSON格式存储
题目生成
- 分级题目:根据用户年级(小学、初中、高中)生成相应难度的数学题目
- 智能去重:避免重复题目,确保练习效果
- 题目保存:自动保存生成的题目到用户专属文件夹
答题系统
- 选择题形式:每题提供4个选项
- 实时评分:答题后立即显示结果
- 成绩记录:记录每次练习的成绩
年级适配
- 小学:基础四则运算
- 初中:包含平方、平方根运算
- 高中:包含三角函数运算
技术架构
开发环境
- 语言:Java 21
- 构建工具:Maven
- GUI框架:Swing
- 数据格式:JSON
项目结构
src/
├── model/ # 数据模型层
│ ├── UserManager.java # 用户管理
│ ├── QuestionMaker.java # 题目生成器
│ ├── Question.java # 题目模型
│ ├── Grade.java # 年级枚举
│ ├── PrimaryMaker.java # 小学题目生成
│ ├── MiddleMaker.java # 初中题目生成
│ └── HighMaker.java # 高中题目生成
├── ui/ # 用户界面层
│ ├── MathLearningApp.java # 主程序入口
│ ├── LoginFrame.java # 登录界面
│ ├── RegisterDialog.java # 注册对话框
│ ├── GradeSelectionFrame.java # 年级选择界面
│ ├── QuizFrame.java # 答题界面
│ ├── ResultFrame.java # 结果界面
│ ├── UserSettingsDialog.java # 用户设置
│ └── ChangePasswordDialog.java # 修改密码
├── others/ # 资源文件
└── Math.exe # 可执行文件
依赖库
- Gson 2.10.1:JSON数据处理
- JavaMail 1.6.2:邮件功能支持
- JAF 1.1.1:JavaBeans激活框架
安装与运行
平台支持
| 操作系统 | 版本要求 | 支持状态 | 应用 |
|---|---|---|---|
| Windows | 11 | ✅ 完全支持 | exe应用程序 |
运行前,请确保系统已安装以下环境:
Windows:
- openjdk 21.0.5(2024-10-15 LTS)
- OpenJDK Runtime Environment build 21.0.5+11-LTS
- OpenJDK 64-Bit Server VM build 21.0.5+11-LTS, mixed mode, sharing
- Maven 3.6或更高版本
直接运行
- 双击Math.exe程序
编译运行
# 使用Maven编译
mvn compile
# 运行程序
mvn exec:java
# 打包为可执行JAR
mvn package
使用说明
首次使用
- 启动程序后进入登录界面
- 点击"注册"按钮创建新账户
- 填写邮箱、验证码
- 验证完成后填写用户名、密码并选择年级
- 注册成功后返回登录界面登录
练习流程
- 登录成功后选择年级(系统会根据注册信息自动推荐)以及题目数量(10-30)
- 进入答题界面开始练习
- 选择答案后点击“下一题”继续
- 完成所有题目后自动生成并显示成绩
用户设置
- 在登录后界面可以修改密码
- 系统会自动保存练习记录
数据存储
用户数据
- 位置:
users.json - 格式:JSON格式存储用户信息
题目记录
- 位置:
questions/{邮箱}/目录 - 格式:按时间戳命名的文本文件
开发说明
扩展题目类型
要添加新的题目类型,需要:
- 在相应的
*Maker.java类中添加题目生成逻辑 - 在
QuestionMaker.java中更新表达式解析逻辑 - 如果需要新的年级,更新
Grade.java枚举
自定义界面
所有UI组件都使用Swing开发,可以通过修改对应的*.java文件来自定义界面样式和布局。