|
|
# 数学冒险岛 - 互动式数学学习软件
|
|
|
|
|
|
## 📘 项目简介
|
|
|
|
|
|
**“数学冒险岛”** 是一款面向小学、初中和高中学生的互动式数学学习软件。
|
|
|
通过 **游戏化界面设计** 与 **分学段题目设置**,让数学练习更具趣味性与挑战性。
|
|
|
软件支持用户邮件注册登录、学段选择、自定义题目数量、在线答题及结果反馈等功能,
|
|
|
适合各学段学生进行数学能力训练与提升。
|
|
|
|
|
|
---
|
|
|
|
|
|
## ✨ 功能特点
|
|
|
|
|
|
- **用户系统**:支持账号注册(含邮箱验证码)、登录、密码修改及退出功能
|
|
|
- **学段划分**:分为小学、初中、高中三个学段,自动匹配不同难度题目
|
|
|
- **个性化练习**:可自定义题目数量(10–30 题),满足多样化练习需求
|
|
|
- **友好界面**:采用渐变卡通风格设计,搭配 Emoji 元素增强趣味性
|
|
|
- **即时反馈**:答题完成后即时展示得分结果,支持重新挑战
|
|
|
- **数据管理**:自动保存用户试卷记录,实现持久化存储
|
|
|
|
|
|
---
|
|
|
## 📁 项目结构
|
|
|
|
|
|
```bash
|
|
|
数学冒险岛/
|
|
|
├── core/ # 核心逻辑模块
|
|
|
│ ├── data_handler.py # 数据处理与文件存储
|
|
|
│ ├── email_service.py # 邮件验证码发送模块
|
|
|
│ ├── question_bank.py # 题目生成与难度匹配
|
|
|
│ ├── user_system.py # 用户注册、登录与管理
|
|
|
│
|
|
|
├── ui/ # 图形界面模块(PyQt5 实现)
|
|
|
│ ├── login_ui.py # 登录界面
|
|
|
│ ├── main_window.py # 主窗口与页面切换逻辑
|
|
|
│ ├── question_ui.py # 题目答题界面
|
|
|
│ ├── register_ui.py # 注册界面
|
|
|
│ ├── result_ui.py # 答题结果展示界面
|
|
|
│ └── user_management_ui.py # 用户信息管理界面
|
|
|
│
|
|
|
├── generated_papers/ # 用户完成的试卷存储目录
|
|
|
├── main.py # 程序入口(运行此文件启动)
|
|
|
```
|
|
|
|
|
|
## 安装说明
|
|
|
|
|
|
### 环境要求
|
|
|
|
|
|
- Python 版本:`3.7+`
|
|
|
- 主要依赖:
|
|
|
- `PyQt5`(界面框架)
|
|
|
- `random`(随机题目生成)
|
|
|
- `smtplib`(邮箱验证码发送)
|
|
|
|
|
|
---
|
|
|
|
|
|
## 安装步骤
|
|
|
|
|
|
```bash
|
|
|
# 克隆仓库(若有)
|
|
|
git clone <仓库地址>
|
|
|
|
|
|
# 进入项目目录
|
|
|
cd math_adventure_island
|
|
|
|
|
|
# 安装依赖
|
|
|
pip install PyQt5
|
|
|
````
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## 界面展示
|
|
|
|
|
|
以下表格展示了软件主要界面的功能与设计亮点:
|
|
|
|
|
|
| 页面名称 | 界面描述 | 主要功能 | 设计特点 |
|
|
|
|:--------:|:--------:|:--------:|:--------:|
|
|
|
| **主页面** | 登录 / 注册入口页面 | 用户登录、账号注册、退出系统 | 粉绿渐变背景、卡通风格、Emoji 装饰 |
|
|
|
| **学段选择页** | 选择学习阶段 | 小学 / 初中 / 高中学段选择、用户信息显示 | 分学段色彩、清晰布局、渐变背景延续 |
|
|
|
| **题目数量页** | 设置练习题目数量 | 输入题目数量、开始练习、返回上一级 | 简洁输入框、范围提示、友好错误提示 |
|
|
|
| **答题页** | 进行数学题目练习 | 显示题目、选择答案、进度跟踪 | 清晰排版、选项高亮、进度指示、交互反馈 |
|
|
|
| **结果页** | 展示答题成绩和统计 | 显示得分、重新练习、返回主页 | 数据可视化、醒目得分、鼓励性设计 |
|
|
|
|
|
|
## 使用指南
|
|
|
|
|
|
### 注册账号
|
|
|
|
|
|
1. 在主页面点击 **“注册账号”**
|
|
|
2. 输入用户名、邮箱和密码
|
|
|
3. 接收邮箱验证码并填写,完成注册
|
|
|
|
|
|
### 登录系统
|
|
|
|
|
|
1. 点击主页面 **“🎮 开始冒险”**
|
|
|
2. 输入注册的账号与密码进行登录
|
|
|
|
|
|
### 开始练习
|
|
|
|
|
|
1. 登录后选择学段:
|
|
|
* 小学乐园
|
|
|
* 初中城堡
|
|
|
* 高中太空
|
|
|
2. 输入题目数量(10–30 之间)
|
|
|
3. 点击 **“ 开始冒险”** 进入答题环节
|
|
|
|
|
|
### 查看结果
|
|
|
|
|
|
* 完成全部题目后系统自动展示得分结果
|
|
|
* 可选择 **“重新做题”** 或返回主页继续挑战
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
## 开发说明
|
|
|
|
|
|
### 技术栈
|
|
|
|
|
|
* **语言:** Python
|
|
|
* **框架:** PyQt5
|
|
|
* **架构:** 模块化设计 + QStackedWidget 页面切换
|
|
|
|
|
|
### 核心模块
|
|
|
|
|
|
| 文件名 | 主要功能 |
|
|
|
| ---------------- | ------------ |
|
|
|
| main_window.py | 主窗口逻辑与页面切换管理 |
|
|
|
| question_bank.py | 题目生成与试卷管理 |
|
|
|
| email_service.py | 注册验证码生成与邮件发送 |
|
|
|
| data_handler.py | 文件存储与用户数据处理 |
|
|
|
|
|
|
---
|
|
|
|
|
|
## 界面设计
|
|
|
|
|
|
* 使用 **QSS 样式表** 实现渐变背景、圆角按钮、柔和阴影等效果
|
|
|
* 通过 **QStackedWidget** 实现多页面无缝切换
|
|
|
* 界面配色采用卡通风格,适合中小学生视觉体验
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## 联系方式
|
|
|
|
|
|
如需反馈问题或提出改进建议,请联系:
|
|
|
**1463365450@qq.com**
|
|
|
或在 **头歌** 提交 Issue
|
|
|
|
|
|
|