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.
yyx bee13d2506
补充
4 months ago
..
README.md 补充 4 months ago

README.md

软件2302班_杨逸轩_个人项目 - 中小学数学卷子自动生成程序

一、项目概览

本项目是一个命令行程序,旨在为小学、初中、高中不同年级的用户自动生成数学试卷。程序实现了用户登录、根据账户类型生成指定数量的题目、题目查重、以及按用户账户保存卷子等核心功能。所有账户信息和已生成题目都通过一个轻量级的 SQLite 数据库进行持久化管理,确保数据的稳定性和查重的高效性。


二、核心功能

  • 用户认证与退出: 程序通过命令行接收用户名和密码。除了标准的登录流程,用户还可以在登录界面输入 -2 随时退出程序。
  • 智能题目生成:
    • 小学: 题目只包含 + - * /(),并内置了鲁棒的校验逻辑,确保答案为非负整数,且不会出现除零错误
    • 初中/高中: 题目操作数范围调整为 1-5。如果只有一个操作数,程序会直接对其进行开方、平方或三角函数运算,而不是生成带 + - * / 的表达式。
  • 高效题目查重: 所有老师(用户)已生成的题目都会被记录到中央数据库中。每次生成新题目时,程序会查询该用户的历史题目,确保不会生成重复的题目。
  • 命令行交互: 用户可以通过输入 -1 退出当前账户,或使用“切换为 XX”(注意切换为后有一个空格)命令来切换题目类型,程序会进行严格的格式校验。
  • 文件保存: 自动生成的试卷会保存在 papers/<用户名>/ 目录下,并以 年-月-日-时-分-秒.txt 的格式命名。

三、项目目录结构

个人项目/

├── src/

│ ├── main.py # 程序主入口和命令行交互逻辑

│ └── questions.py # 题目生成模块

├── doc/

│ └── README.md # 项目说明文档

└── papers/ # 自动生成的试卷保存目录 (无需提交该目录)


四、运行环境与安装

  • 运行环境: Python 3.8 或更高版本。
  • 依赖: 本项目仅使用 Python 标准库,无需安装任何额外依赖。
  • 启动: 在终端中,进入 src 目录的上层,执行以下命令即可启动程序: python3 src/main.pypython src/main.py

五、使用说明(交互流程)

  1. 启动程序:运行上述命令后,程序将自动初始化数据库并提示登录。
  2. 登录:输入用户名和密码,例如:张三1 123,或输入 -2 退出。
  3. 生成题目:登录成功后,输入 10-30 之间的整数来指定题目数量。
  4. 切换类型:在登录状态下,输入 切换为 初中切换为 高中 来更改题目类型。
  5. 退出登录:输入 -1 即可退出当前账户,返回登录界面。

六、说明与优化

本项目在开发过程中,为了提升程序的鲁棒性和易用性,对部分需求进行了优化:

  • 查重机制: 采用 SQLite 数据库进行集中式查重,相比于通过读取文件进行查重,此方法更为高效、可靠,且不受文件误删等影响。
  • 题目生成: 初中和高中题目新增了对单操作数表达式的生成,使其更符合实际教学场景。
  • 代码解耦: 重构了题目生成模块,将不同难度的题目生成逻辑封装在各自的类中。使得代码职责更清晰,易于维护和扩展。例如,未来如果需要添加“大学”级别的题目,只需新增一个 UniversityQuestionGenerator 类,而无需修改现有代码。