# 小初高数学学习系统 ## 项目简介 这是一个基于Java Swing开发的数学学习软件,专门为小学、初中和高中学生设计。系统提供个性化的数学题目生成、答题练习和成绩记录功能,支持用户注册、登录和密码管理。 ## 功能特性 ### 用户管理 - **用户注册**:支持邮箱、用户名、密码和年级选择注册 - **用户登录**:支持邮箱或用户名登录 - **密码修改**:安全的密码修改功能 - **数据持久化**:用户数据使用JSON格式存储 ### 题目生成 - **分级题目**:根据用户年级(小学、初中、高中)生成相应难度的数学题目 - **智能去重**:避免重复题目,确保练习效果 - **题目保存**:自动保存生成的题目到用户专属文件夹 ### 答题系统 - **选择题形式**:每题提供4个选项 - **实时评分**:答题后立即显示结果 - **成绩记录**:记录每次练习的成绩 ### 年级适配 - **小学**:基础四则运算 - **初中**:包含平方、平方根运算 - **高中**:包含三角函数运算 ## 技术架构 ### 开发环境 - **语言**:Java 11 - **构建工具**: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激活框架 ## 安装与运行 ### 环境要求 - Java 11 或更高版本 - Maven 3.6 或更高版本 ### 直接运行 - 双击Math.exe程序 ### 编译运行 ```bash # 使用Maven编译 mvn compile # 运行程序 mvn exec:java # 打包为可执行JAR mvn package ``` ## 使用说明 ### 首次使用 1. 启动程序后进入登录界面 2. 点击"注册"按钮创建新账户 3. 填写邮箱、验证码 4. 验证完成后填写用户名、密码并选择年级 5. 注册成功后返回登录界面登录 ### 练习流程 1. 登录成功后选择年级(系统会根据注册信息自动推荐)以及题目数量(10-30) 2. 进入答题界面开始练习 3. 选择答案后点击"下一题"继续 4. 完成所有题目后自动生成并显示成绩 ### 用户设置 - 在登录后界面可以修改密码 - 系统会自动保存练习记录 ## 数据存储 ### 用户数据 - 位置:`users.json` - 格式:JSON格式存储用户信息 ### 题目记录 - 位置:`questions/{邮箱}/` 目录 - 格式:按时间戳命名的文本文件 ## 开发说明 ### 扩展题目类型 要添加新的题目类型,需要: 1. 在相应的`*Maker.java`类中添加题目生成逻辑 2. 在`QuestionMaker.java`中更新表达式解析逻辑 3. 更新`Grade.java`枚举(如果需要新的年级) ### 自定义界面 所有UI组件都使用Swing开发,可以通过修改对应的`*.java`文件来自定义界面样式和布局。