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.
pair-project-lqwchj/doc
clumxc 5584a71436
版本1
4 months ago
..
readme.md 版本1 4 months ago

readme.md

结对项目

带UI的小初高数学学习软件

项目简介

基于 Python 开发的跨平台桌面应用程序,专为小学、初中和高中学生设计,提供个性化的数学练习体验。

核心特性

  • 三个学习阶段:小学 / 初中 / 高中 不同难度数学题
  • 邮箱验证注册:通过邮箱获取注册码完成注册
  • 安全密码管理:密码强度验证与修改功能
  • 智能出题系统:自动生成不重复的选择题试卷
  • 实时评分系统:即时反馈学习成果
  • 本地数据存储:无需数据库,使用文件系统存储数据

系统要求

需求 版本/说明
Python ≥ 3.864 位)
操作系统 Windows 10/11 / macOS 10.14+ / Linux Ubuntu 18.04+

安装与运行

环境配置

  1. 克隆或下载代码到本地
  2. 确保安装 Python 3.8 或更高版本

启动程序

方法一

在项目根目录运行:

python src/main.py

方法二

直接下载运行我们给出的exe文件无需自己进行环境配置

项目结构

src/
├── main.py                    # 程序入口点
├── models/                    # 数据模型层
│   └── appuser.py            # 用户模型
├── views/                     # 视图层
│   ├── base_view.py          # 基础视图类
│   ├── login_view.py              # 登录界面
│   ├── register_view.py           # 注册界面
│   ├── main_view.py           # 主选择界面
│   └── setpassword_view.py       # 设置密码界面
├── controllers/               # 控制层
│   ├── paper_controller.py   # 试卷控制器
│   └── user_controller.py        # 用户控制器
├── services/                  # 服务层
│   ├── paper_service.py      # 试卷服务
│   ├── question_service.py   # 题目生成服务
│   └── email_service.py      # 邮件服务
└── data/                     # 数据存储目录
    └── user_data.json        # 用户信息储存

技术特性

  • 邮箱和用户名是否存在检测,防止重名或多次注册
  • 注册过程实时监测邮箱,防止用户输入注册码后又单独对邮箱进行更改
  • 错误选项以正确选项为中心随机生成,干扰性大
  • 题目去重:同一张试卷不会出现重复题目
  • 运算符权重随机化
  • 自动括号生成
  • 整除校验(小学难度)
  • 时间戳文件名管理

预置测试账号

| 用户名 | 密码 | 是否注册 |
|--------|------|------|
| 1  | 1  | true |

注:内置账号为了测试方便未遵循邮箱密码格式,实际通过注册功能新增的用户必须给出有效的邮箱地址和合规密码

扩展开发

继承 BasePaperManager 类并实现相应方法即可新增题目难度或类型。

注意事项

  • 所有用户数据存储在本地 data/ 目录,第一次运行时自动在程序文件所在根目录生成
  • 生成的试卷保存在 papers/{用户名}/ 目录
  • 程序无需数据库支持