# 数学学习软件使用说明 ## 项目概述 数学学习软件是一款专为不同学习阶段学生设计的数学练习工具,支持小学、初中和高中三个难度级别的数学题目练习。软件采用用户注册登录系统,通过邮箱验证确保用户身份安全。 ## 系统要求 - **操作系统**: Windows 7及以上版本 - **开发环境**: C++ (兼容C++98标准) - **依赖组件**: - Windows PowerShell (用于邮件发送) - curl (可选,备用邮件发送方案) ## 功能特点 ### 1. 用户管理 - **用户注册**: 通过邮箱验证码注册账号 - **密码安全**: 密码要求6-10位,包含大小写字母和数字 - **登录验证**: 安全的用户身份验证 ### 2. 题目生成 - **小学题目**: 基础四则运算,支持2-3个操作数 - **初中题目**: 平方、开方运算 - **高中题目**: 三角函数计算 ### 3. 答题功能 - **题目数量**: 可自定义10-30道题目 - **实时反馈**: 即时显示答题结果 - **进度跟踪**: 显示答题进度和得分 ## 安装与配置 ### 1. 编译说明 项目使用标准C++编写,可在支持Windows API的开发环境中编译: ```bash g++ -o MathLearning.exe *.cpp -luser32 -lgdi32 ``` ### 2. 邮件配置 如需使用邮件功能,需要配置QQ邮箱SMTP服务: 1. 在 `EmailSender.cpp` 中修改发件人信息: ```cpp const std::string sender_email = "your_email@qq.com"; const std::string sender_password = "your_authorization_code"; ``` 2. 获取QQ邮箱授权码: - 登录QQ邮箱 → 设置 → 账户 - 开启POP3/SMTP服务 - 生成授权码 ## 使用指南 ### 1. 启动程序 运行编译后的可执行文件,进入登录界面。 ### 2. 用户注册 1. 点击"注册"按钮 2. 输入有效的邮箱地址 3. 点击"获取验证码",查收邮件中的验证码 4. 设置符合要求的密码(6-10位,包含大小写字母和数字) 5. 确认密码并完成注册 ### 3. 用户登录 1. 输入已注册的邮箱和密码 2. 点击"登录"进入题目选择界面 ### 4. 选择题目类型 - **小学题目**: 适合小学生的基础数学运算 - **初中题目**: 包含平方和开方运算 - **高中题目**: 三角函数计算 ### 5. 设置题目数量 在10-30道题目范围内选择练习数量。 ### 6. 答题界面 - 阅读题目并选择正确答案 - 点击"下一题"继续答题 - 完成所有题目后查看成绩报告 ## 文件结构 ``` 项目根目录/ ├── main.cpp # 程序入口 ├── LoginWindow.h/cpp # 登录窗口 ├── RegisterWindow.h/cpp # 注册窗口 ├── SelectionWindow.h/cpp # 题目选择窗口 ├── QuestionWindow.h/cpp # 答题窗口 ├── User.h/cpp # 用户类 ├── UserManager.h/cpp # 用户管理 ├── Question.h/cpp # 题目类 ├── QuestionGenerator.h/cpp # 题目生成器 ├── EmailSender.h/cpp # 邮件发送器 └── data/ └── users.txt # 用户数据存储 ``` ## 技术特性 ### 1. 邮件发送 - 支持PowerShell和curl两种发送方式 - 自动故障转移机制 - 详细的发送日志记录 ### 2. 题目生成算法 - 智能避免重复题目 - 考虑运算优先级 - 确保题目难度适中 ### 3. 用户界面 - 基于Windows API的本地化界面 - 支持中文显示 - 响应式窗口设计 ## 故障排除 ### 常见问题 1. **邮件发送失败** - 检查邮箱配置是否正确 - 确认网络连接正常 - 查看email_send_log.txt日志文件 2. **程序无法启动** - 确认系统满足要求 - 检查依赖组件是否安装 3. **题目显示异常** - 确保编译环境支持中文字符集 - 检查控制台编码设置 ### 日志文件 程序生成以下日志文件用于故障诊断: - `email_send_log.txt` - 邮件发送记录 - 控制台输出 - 题目生成和答题详情 ## 开发说明 ### 扩展功能 - 可添加更多题目类型 - 支持用户成绩统计 - 增加题目难度分级 ### 自定义配置 开发者可以通过修改相应头文件中的常量来调整: - 题目数量范围 - 密码复杂度要求 - 邮件发送配置 ## 版权信息 本软件为教育用途开发,遵循相关开源协议。 --- *最后更新: 2024年*