AI辅助开发课程作业管理程序的迭代记录与心得
AI辅助开发课程作业管理程序的迭代记录与心得
一、项目需求与目标
本次作业选择“课程作业管理GUI程序”作为开发主题。平时不同课程布置作业的时间和提交方式不一样,如果只依靠聊天记录或临时备忘,很容易遗漏截止时间。因此,我希望设计一个简单的桌面程序,将课程和作业集中管理。
程序采用Python开发,使用Tkinter构建中文界面,使用SQLite保存数据。主要功能包括课程管理、作业录入、截止时间提醒、完成状态管理和条件筛选。
在明确需求时,我将作业信息细化为所属课程、作业标题、截止时间、完成状态和备注。提醒功能限定为程序打开时在界面中显示临期或逾期状态,暂不包含后台通知,避免需求范围过大。
二、第1轮:生成初版
我给AI的提示词:
请使用Python、Tkinter和SQLite开发一个课程作业管理桌面程序,界面使用中文。用户可以新增课程,为课程添加作业,填写作业标题、截止时间和备注。主界面需要显示作业列表,支持将作业标记为已完成,以及删除指定作业。数据保存在本地数据库中,关闭程序后重新打开能够继续读取。请说明程序的主要结构和启动方法。
AI初版的主要内容:
初版按照要求建立了课程和作业的数据结构,并提供录入区域、作业列表及操作按钮。基本设计能够覆盖新增、查看、完成和删除作业的流程。
阅读初版时,我重点检查了界面操作与数据库操作之间的对应关系。例如,点击“标记完成”之后,是否只改变界面文字,还是同时修改数据库中的状态。这让我认识到,界面上出现了按钮,并不能直接说明功能已经完整实现。
三、第2轮:第一次迭代,完善输入检查
发现的问题:
初版对用户输入的限制不够明确。空白标题、错误日期和未选择课程等情况,都需要在保存前处理,否则可能产生无法正常展示或比较的数据。
我给AI的修改要求:
请完善新增作业时的校验。课程必须从已有课程中选择;标题去除首尾空格后不能为空,长度不超过60个字符;截止时间统一采用“年-月-日 时:分”格式,并检查日期是否真实存在,例如不能接受2月30日。输入错误时保留表单内容,并提示具体原因。所有字段通过检查后,才能写入数据库。
AI的示例修改内容:
增加统一的输入校验函数,使用日期时间解析检查截止时间。校验失败时停止保存,并显示对应提示,避免错误数据进入数据库。
这一轮修改的重点,是把“输入不合法”变成可以明确判断的规则,而不是只要求AI“完善一下”。
四、第3轮:第二次迭代,增加筛选与截止时间提醒
发现的问题:
作业数量增加后,单纯按录入顺序显示不方便查找。另外,距离截止时间较近的作业需要突出显示,已完成作业则不应该继续提示逾期。
我给AI的修改要求:
请增加按课程和完成状态筛选的功能,并允许两个条件同时生效。未完成作业按截止时间从早到晚排列。对于未完成作业,截止时间早于当前时间时显示“已逾期”;距离截止时间大于等于0且不超过48小时时显示“即将截止”;其他情况显示“进行中”。已完成作业统一显示“已完成”。请使用日期时间对象比较时间,不要依靠界面中的日期字符串排序。
AI的示例修改内容:
增加课程与状态筛选,将提醒状态的计算独立为函数。计算时优先检查完成状态,再判断是否逾期或即将截止,避免已完成作业仍显示警告。
五、第4轮:第三次迭代,完善删除流程与操作反馈
发现的问题:
筛选后的作业顺序可能与数据库中的顺序不同。如果使用列表位置定位删除对象,容易操作错误记录。课程删除时,也需要考虑它下面是否还有作业。
我给AI的修改要求:
请使用数据库中的唯一ID定位作业,不要根据列表行号执行更新或删除。删除作业前弹出确认提示,取消后不改变数据。课程下仍有作业时,禁止直接删除课程,并提示先处理关联作业。新增、删除或修改完成状态后,统一刷新列表和数量统计。数据库写入失败时提示错误,不要显示操作成功。
AI的示例修改内容:
将界面选中项与作业ID关联,修改和删除操作均通过ID执行。增加删除确认及课程关联检查,并统一操作后的刷新流程。
六、我的检查与验证说明
验证时,我会分别检查正常操作、异常输入和时间边界,并将界面结果与数据库保存结果进行对照。
第一,检查基本流程。新增“软件工程”课程,再添加一条作业,关闭并重新打开程序。预期课程和作业仍然存在,标题、截止时间及完成状态保持一致。
第二,检查非法输入。分别提交空白标题、未选择课程、格式错误的时间以及不存在的日期。预期程序说明错误原因,不新增记录,同时保留已输入的其他内容。
第三,检查提醒边界。将测试时间固定为2026年10月20日12:00。截止时间为10月19日23:59的未完成作业应显示“已逾期”;截止时间为10月22日12:00的作业应显示“即将截止”;截止时间为10月22日12:01的作业应显示“进行中”。将第一条作业标记完成后,应改为显示“已完成”。
第四,检查筛选与删除。建立两门课程并分别添加作业,筛选其中一门课程后删除一条记录,再取消筛选。预期只有目标记录被删除,其他课程的作业不受影响。
第五,检查数据一致性。设定共5条作业,其中2条已完成,预期未完成数量为3条。再完成其中1条后,已完成数量应为3条,未完成数量应为2条,总数仍为5条。
上述内容是本稿的验收方案,实际通过情况需要以运行记录为准。
七、心得体会
这次作业中,最值得注意的是需求表达与验证之间的关系。
最初只提出“增加截止提醒”,并不能确定程序应该提前多久提醒,也没有说明已完成作业如何处理。将提醒范围细化为48小时,并明确等于截止时间、超过截止时间等情况后,AI的实现方向和后续检查方法才有了共同依据。
AI能够帮助搭建程序结构,但开发者仍然需要检查数据是否正确保存、操作是否影响了正确的对象,以及异常情况是否得到处理。对我来说,这次练习的主要收获,是学会将模糊需求改写成具体规则,并通过可以复现的输入判断结果是否符合要求。
浙公网安备 33010602011771号