# 数学冒险岛 - 互动式数学学习软件 ## 📘 项目简介 **“数学冒险岛”** 是一款面向小学、初中和高中学生的互动式数学学习软件。 通过 **游戏化界面设计** 与 **分学段题目设置**,让数学练习更具趣味性与挑战性。 软件支持用户邮件注册登录、学段选择、自定义题目数量、在线答题及结果反馈等功能, 适合各学段学生进行数学能力训练与提升。 --- ## ✨ 功能特点 - **用户系统**:支持账号注册(含邮箱验证码)、登录、密码修改及退出功能 - **学段划分**:分为小学、初中、高中三个学段,自动匹配不同难度题目 - **个性化练习**:可自定义题目数量(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