大学生校园消费记账 GUI —— AI 协作开发迭代记录
== 第1轮(初版) ==
✓ 我给AI的提示词:
请用Python tkinter编写大学生校园生活费记账GUI桌面程序。
功能需求:
- 可以录入消费记录:日期、消费分类(餐饮/交通/网购/日用品)、金额、备注。
- 记录自动保存到本地csv文件,重启程序后数据不会丢失。
- 实现统计功能:总支出。
- 预算提醒:可以设置每月预算,花费超支时弹出提醒弹窗。
要求:代码注释完整,代码可以直接运行,界面简洁。
✓ AI生成的初版要点:
- 创建了完整的 main.py(411行),采用面向对象架构,分为三层:
- 数据层 DataManager:负责 records.csv 读写、budget.txt 预算持久化
- 表格层 RecordTable:用 ttk.Treeview 展示消费记录,带垂直滚动条
- 主程序 ExpenseApp:GUI界面 + 业务逻辑
- 实现功能:录入消费、删除选中记录、总支出统计、本月支出统计、设置预算、超支弹窗提醒
- 边界校验:日期格式校验(YYYY-MM-DD)、金额必须为正数、预算必须为非负数
- AI自动修复了 LabelFrame 未导入的问题,并通过语法检查验证程序可正常运行
- 初版缺陷:缺少各消费分类的单独金额统计,无法直观看到餐饮、交通等各花了多少钱
== 第2轮(第一次迭代修改) ==
✓ 发现的问题:
初版代码有总支出和本月支出,但界面上没有分类消费统计。大学生记账最关心的就是"这个月吃饭花了多少、交通花了多少",缺少分类汇总会让统计功能不完整。
✓ 我给AI的修改要求:
在当前这段记账GUI代码基础上,增加各个消费分类的金额统计,在界面上展示餐饮、交通、网购、日用品每个分类的总消费金额。保持原有全部功能不变。
✓ AI修改了什么:
- 新增分类统计区域
_build_category_area:在记录表格下方、统计与预算区上方,新增"分类消费统计"面板,餐饮、交通、网购、日用品四个分类并列展示,紫色字体显示金额 - 新增分类统计计算方法
_update_category_stats:遍历所有记录按分类累加金额,自动识别并累加对应分类,未知分类不计入 - 统计刷新联动
_update_stats:在原有总支出、本月支出刷新逻辑中调用_update_category_stats(),添加/删除记录或设置预算时,分类金额自动同步刷新 - 界面布局从上到下更新为:录入区 → 记录表格 → 分类消费统计 → 统计与预算区
- 语法检查通过,任务完成
== 第3轮(第二次迭代修改) ==
✓ 发现的问题:
分类统计功能加上后,发现字体偏小、颜色不够醒目,在界面上不够突出,看金额时不太直观。
✓ 我给AI的修改要求:
请调整分类统计的字体大小和颜色,使其更醒目。
✓ AI修改了什么:
- 调大分类统计区域的字体大小
- 调整金额显示颜色为更醒目的紫色
- 保持布局不变,仅优化视觉呈现
- 修改后界面上分类金额清晰可读,与总支出(红色)、本月支出(蓝色)形成视觉区分
== 我的检查与验证说明 ==
✓ 我怎么确认结果正确:
1. 正常功能测试:
- 录入2条餐饮记录:2026-09-01 餐饮 10.00元、2026-09-03 餐饮 20.00元
- 界面显示总支出 30.00元、本月支出 30.00元,与手动计算结果一致
- 分类统计显示:餐饮 30.00元、交通 0.00元、网购 0.00元、日用品 0.00元,累加正确
- 重启程序后,历史记录正常加载,数据未丢失
2. 预算功能测试:
- 设置每月预算 100元
- 剩余预算显示 70.00元(100 - 30 = 70),计算正确
- 预算保存到 budget.txt,重启后自动加载
3. 边界异常测试:
- 金额校验:金额输入 -1(负数),弹出"金额错误"提示框"请输入大于0的有效金额",非法数据未保存 ✓
- 日期校验:日期输入 2026-09-31(9月没有31号),弹出"日期错误"提示框"日期格式应为 YYYY-MM-DD",非法日期被拦截 ✓
- 预算校验:每月预算输入 -1(负数),弹出"预算错误"提示框"请输入有效的非负数预算",非法预算被拦截 ✓
4. 删除功能测试:
- 选中表格中某条记录,点击"删除选中",确认后记录从表格和CSV文件中同步移除,统计数据实时更新
== 心得 ==
本次协作最大的惊喜是:AI能一次性写出结构清晰、分层合理的完整GUI程序,连异常处理和数据持久化都考虑到了,省去了我从零搭框架的大量时间。
但同时我也意识到,AI生成的初版虽然功能完整,但它不会主动"多想一步"——比如用户记账时最关心的分类统计,它只做了我明确要求的总支出。这让我明白,给AI的提示词越具体、越贴近真实使用场景,产出的结果就越好用。笼统说"做一个记账软件"和明确说"要能看到餐饮花了多少、交通花了多少",出来的东西完全不同。
另外,调试过程中我发现主动测试边界输入(负数、错误日期)很重要,这些AI虽然写了校验逻辑,但我自己实际点一遍弹窗,才能确认它真的在工作。这次三轮迭代——从初版到加分类统计再到优化视觉——让我体会到:AI不是一键出成品,更像一个效率很高的搭档,你需要带着验收的眼光去用它。
最后附上我的GUI页面


浙公网安备 33010602011771号