作业-个人校园消费记账GUI迭代记录与心得

== 第1轮(初版)==

  • 我给AI的提示词:

    请使用python语言在该文件夹“Accounting”做一个“个人消费记账 GUI”,包括记录,统计,提醒等功能,严格按照软件工程原则进行开发。我需要将这个文件夹上传到github,所以需要包括.gitignore等必要文件。具体GUI要求如下:1、包括收支记录、统计分析、预算提醒页面。2、收支记录页面允许添加记录、修改或删除已有记录,每条记录包括日期、收支类型、分类、金额、备注等内容;允许按时间、分类筛选消费记录。3、统计分析界面包括日/周/月/年收支汇总;月度各分类收入/支出占比饼图;月度收支趋势折线图。4、预算提醒页面设置每月生活费总额;超过预算弹窗提醒;每月度净消费金额占预算的比例(可视化)。
  • AI生成的初版要点:

    完成个人消费记账GUI基本功能,大致符合期望。
    收支记录:添加、修改和删除记录,支持日期、收支类型、分类、金额、备注,以及按日期和分类筛选。
    统计分析:查看日、周、月、年收支汇总;查看月度收入/支出分类饼图和年度月度收支趋势图。
    预算提醒:按月设置生活费预算,以“支出-收入”计算净消费和预算占比;超预算时弹窗提醒,并显示预算进度。
    项目结构:界面、业务逻辑和 SQLite 数据存储分层;包含启动入口、项目说明、依赖清单和Git忽略规则。

== 第2轮(第一次迭代修改)==

  • 发现的问题:

    1、所有日期需要手动按xxxx-xx格式输入,很麻烦;
    2、分类只有几个基础分类且无法增添修改;
    3、查询记录时收支分类混在一块了;
    4、按钮功能不明确。
  • 我给AI的修改要求:

    请根据以下要求进行修改:
    1、所有需要输入年份/月份/日期的地方都不要让手动输入,改成选择年份、月份、日期。
    2、分类部分可以允许增加或删除自定义分类。
    3、根据分类查询记录部分应选择收支类型之后再选择分类。
    4、所有需要手动输入的地方标明对应的格式与要求。
    5、记录收支模块的“清空”按钮在添加记录时应改名为“重置”,在修改记录时应改名为“退出修改”。
  • AI修改了什么:

    所有日期、月份和年份改为下拉选择;支持管理自定义分类;筛选分类依赖收支类型;标明手动输入要求说明;按钮名称随状态变化;同步更新了README.md。

== 第3轮(第二次迭代修改)==

  • 发现的问题:

    1、预算提醒部分若净消费小于0显示负数;
    2、预算提醒功能薄弱。
  • 我给AI的修改要求:

    请根据以下要求进行修改:
    1、预算提醒界面,本月预算使用情况部分,若净消费<0,即为改为净收入,数值为净消费的相反数;下面的进度条:若为净收入,则显示绿色,不显示百分比,改为文字恭喜本月赚了多少钱;若为净消费,显示红色,显示百分比,提醒预算剩余。
  • AI修改了什么:

    调整预算提醒页面的本月预算使用情况,净消费小于0改为显示正数净收入,净消费大于或等于0显示预算使用百分比,并提示预算剩余;超预算时显示超出金额。同步更新了README.md。

== 第4轮(第三次迭代修改)==

  • 发现的问题:

    1、预算提醒界面进度条颜色未修改,仍始终为绿色。
  • 我给AI的修改要求:

    请根据以下要求进行修改:
    1、预算提醒界面,下面的进度条:若为净收入,则进度条不显示;若为净消费,净消费占预算比例<50%时柱状显示为绿色,占预算比例>50%时柱状显示为红色,提醒预算剩余不多,超预算时进度条显示红色,并用红色字体突出强调超预算多少元。
  • AI修改了什么:

    预算进度条调整:净收入则隐藏进度条,保留绿色提示;净消费不超过预算50%显示绿色字体;净消费超过预算50%显示红色字体,并用红字提醒预算余额不多;超预算显示红色超额金额;同步更新了README.md。

== 第5轮(第四次迭代修改)==

  • 发现的问题:

    1、界面有些地方短有些地方长,看着很乱;
    2、README金额说明等地方很凌乱;
    3、需要增加边界校验。
  • 我给AI的修改要求:

    请根据以下要求进行修改:
    1、调整界面布局使之更加整齐。
    2、添加边界校验,确保每处输入的具体要求,重新整理README与requirements。
  • AI修改了什么:

    整理记录筛选区布局;调整统计汇总卡片和预算表单的对齐与间距;缩小图表区域并设置合适的窗口尺寸。
    输入边界并补充金额上限、日期范围和分类长度测试;年份范围末尾的周统计会限制在允许的日期范围内。
    重整了 README.md 的安装、输入规则和功能说明;在 requirements.txt 与 pyproject.toml 中统一 Matplotlib 依赖范围。

== 我的检查与验证说明 ==

  • 我怎么确认结果正确:

    构造多组收支样例数据,录入软件,核对程序计算出的总金额、结余是否和实际计算结果一致,验证基础记账逻辑;
    测试边界场景,例如空账单、金额为0、负数收支等输入,检查输出结果是否符合预期;
    确认算法基本逻辑;通过AI编写的单元测试,单独调用核心计算函数,隔离 GUI 界面,验证底层业务逻辑正确性;
    在个人的Windows电脑和Macbook上均运行了程序,仅有页面风格不同,功能都能顺利实现,运行无碍,以下分别为在Windows系统和mac系统运行结果。

image

e4631d3d195f558d7c7a6133ebfa458b

== 心得 ==

本次使用Copilot辅助开发记账软件,收获很多,也踩了不少坑。
首先驯服GitHub耗费了大量时间。提交代码时频繁遇到连接超时,无法推送commit等问题,反复切换网络、进行代理配置才解决。
在和Copilot协作的全过程中,我也发现 AI 适合快速搭建代码框架,但不会自动帮我排查环境、系统层面的隐性问题。AI生成的代码不一定能直接使用,AI是辅助工具,而验证正确性、针对性完成用户需求、定位底层bug,依然需要开发者本人完成。
整体来看,这次项目让我完整走完了小型GUI程序开发、版本管理、测试验证全流程,这是我第一次完整做出一个GUI,感觉帮我打开了Vibe coding的大门,让我以后有信心去做更复杂、更有意义的工具或软件。

  • 本次协作最大惊喜/失望:

    最突出的问题是Tkinter自带ttk进度条受系统主题限制,单纯修改参数无法生效。只简单告诉 AI “把进度条改成别的颜色”,AI 反复给出无效代码,多次尝试依旧保持默认绿色。这件事让我意识到,使用 AI 写代码,不能只提表面效果需求,需要自己先了解技术底层限制,把问题、约束条件完整告知 AI,才能拿到可用的方案;如果自身不清楚原理,很容易陷入反复调试却无法解决问题的困境。还有就是原生界面很丑,如果要进一步更改成比较符合现代审美的好看的UI也比较费劲。
posted @ 2026-10-05 21:39  lv柚子  阅读(2)  评论(0)    收藏  举报