结对编程分析
队友个人项目代码分析
队友: 软件2002 何瑞豪
概述
队友选择python语言编写程序,使用sqlite存储用户信息
项目目录

核心代码

架构分析
程序主要分成三个模块:模拟用户运行逻辑的 user_oper、负责 SQLite 数据库连接及相关语句处理的 sql_link、模拟题目生成校验及本地文件导出的 quest_oper,每个模块也有相对应的类:user_oper 对应的用户类 User,sql_link对应的数据库链接类 SqliteLink 类以及 quest_oper对应的问题类 Quest。
在 user_oper 模块中,通过 login_status 这个布尔值检验用户登录状态,通过 get_cmd 模拟终端内容读取跟处理;sql_link 模块则是通过两个简单的封装 do_select 以及 do_insert 来负责数据库数据的查询跟写入。
在 quest_oper 模块中,生成题目逻辑如下:根据当前登录账户类型生成一个题目列表,然后随机生成题目,检验题目操作符是否符合要求,检验题目是否在已有数据库中,检验题目是否在已有列表中,最后放入列表,多重检验后将生成列表输入到数据库中,同时生成对应 txt 文件。
user_oper 模块将其余两个模块耦合起来,app.py 则利用这种耦合初始化 User 对象,然后执行 User.get_cmd 进行操作。
代码功能测试
经过测试,发现该程序有以下功能没有实现:
- 限制生成题目数量为10~30个。实际效果为:可以输入任意正整数生成题目。
- 输入-1并不退出程序而只是退出登录。
- 没有做题目查重处理,没有实现“同一个老师的卷子中的题目不能与以前的已生成的卷子中的题目重复”。
有以下功能存在提升的空间:
- 题目无法生成答案,只是随机生成表达式。这导致了该项目不能用于结对编程。
- 任何一个题目的表达式中都不含有括号,这是因为生成题目的算法过于简单。
代码格式检测
符合Google的python代码标准。注释也很规范。
优点
实现比较简洁,代码逻辑较为简单

浙公网安备 33010602011771号