CoWe · 公开实战 / 回到学习 ↖现在可以练 · 附可运行示例

用 AI 做一个
三人分账
小工具。

需求卡写清楚了,接着把它做出来。
生成一个 HTML 文件,在浏览器里打开,再用具体例子检查结果。

小为把一份需求卡搭成可以体验的工具
小为的动手笔记做出一版,亲手检查,再改一步。
从需求卡,走到能体验的第一版。

这次交付:一个可以直接打开的文件。

甲、乙、丙旅行时,一人垫付一笔开销,三人平均承担。本练习接续「第一份需求卡」,只处理单笔人民币分摊。

人物与数字均为虚构教学示例。这是现在可阅读、可动手的公开实战,完整课程仍在筹备。你可以先体验示例,再自己和 AI 做一遍。

先读第一份需求卡
01 / KEEP THE BRIEF SMALL

确认需求,也确认钱怎么算。

把这一版的规则一次写清楚,减少来回猜测。先不要增加账号、多币种、多笔账单或线上分享。

这一版的六条规则

  • 固定甲、乙、丙三人,一笔人民币开销;选择其中一位付款人。
  • 输入金额大于 0,最高 999999.99 元,最多两位小数。
  • 空白、0、负数、超过两位小数、科学记法和超过上限的金额无效,显示提示并隐藏结果。
  • 用整数“分”计算,先平均分;剩余的分按甲、乙、丙顺序各分一分。分配顺序与谁付款无关。
  • 显示每人的承担金额、付款人的应收总额,以及其他人向付款人应付的金额;合计必须等于原账单。
  • 修改金额或付款人后,隐藏旧结果并提示重新计算,避免把旧答案当成新答案。

第一段指令:先让 AI 检查理解。

我要做一个三人分账小工具。先不要写代码,请复述使用路径并检查歧义。

使用者固定为甲、乙、丙,一人付款,三人平均承担一笔人民币开销。
金额大于 0,最高 999999.99 元,最多两位小数;空白、0、负数、超过两位小数、科学记法、超过上限都要拒绝。
金额用整数“分”计算。先平均分,剩余的分按甲、乙、丙顺序各分一分,不随付款人变化。
结果显示每人承担多少、付款人应收多少、其他人向付款人应付多少。
金额或付款人修改后隐藏旧结果,提示重新计算。
第一版不做多币种、多笔记录、账号或线上分享。

请列出输入、操作、结果和完成条件。仍不清楚的地方请提出来,不要增加功能。
人物与数字仅用于教学练习。
02 / MAKE ONE HTML FILE

把规则交给 AI,生成一个 HTML 文件。

确认 AI 的复述符合需求,再发送下面的指令。复制它返回的完整 HTML,在纯文本编辑器中保存为 three-person-split.html,使用 UTF-8 编码。

文件名应以 .html 结尾。若编辑器保存成 .html.txt,去掉末尾的 .txt;不要把回答中的 Markdown 代码围栏一起保存。

请按以下需求生成一个完整、可直接用浏览器打开的 HTML 文件。
将 CSS 和 JavaScript 全部放在这个文件内,不加载外部资源、不联网、不需要安装依赖。直接给完整 HTML,不要只给代码片段。

功能:甲、乙、丙固定三人,输入一笔人民币金额,选择其中一位付款人,点击“算清这一笔”。
输入规则:金额大于 0,最高 999999.99 元;只接受普通十进制数字,最多两位小数。空白、0、负数、超过两位小数、科学记法、超上限均无效,显示具体提示,不显示分摊结果。
金额计算:将金额精确转成整数“分”。三人先平均分,余数按甲、乙、丙顺序各分一分;分配顺序与付款人无关。
结果:显示每人承担金额、付款人的应收总额、其他人向付款人应付金额;货币显示两位小数。三人承担合计必须等于账单。
交互:修改金额或付款人后立刻隐藏旧结果,提示“输入已修改,请重新计算”;按 Enter 也能提交。
页面:中文,输入和付款人有可见标签,按钮和提示清楚,手机上可用,键盘可操作。
边界:不做多币种、多笔记录、账号、线上分享或数据保存。

核对示例(甲付款):
300 元:每人承担 100.00 元,甲应收 200.00 元。
100 元:甲 33.34 元,乙丙各 33.33 元,甲应收 66.66 元。
0.01 元:甲 0.01 元,乙丙 0.00 元,甲应收 0.00 元。
0.02 元:甲乙各 0.01 元,丙 0.00 元,甲应收 0.01 元。
请完成后说明你如何处理小数与旧结果,并列出还需要我在浏览器里检查的事项。

AI 生成的代码需要亲手检查。能打开文件,只说明页面能运行;分账规则是否正确,还要看下一步的用例。

03 / TRY IT, THEN CHECK IT

打开文件,逐项核对结果。

在电脑上双击保存的 HTML 文件,或把它拖进浏览器窗口。无需启动服务器。输入金额、选择付款人,再点击“算清这一笔”。

先在这里体验可运行教学示例。

这个示例按本练习的规则制作。可以直接试,也可以下载同一个文件,在自己的浏览器里打开。

验收清单 · 全部为虚构示例

  • 300 元,甲付款:每人 100.00 元;甲应收 200.00 元,乙丙各向甲付 100.00 元。
  • 改为 360 元:旧结果先隐藏;重新计算后每人 120.00 元,甲应收 240.00 元。
  • 100 元,甲付款:甲承担 33.34 元,乙丙各 33.33 元,合计 100.00 元;甲应收 66.66 元。
  • 100 元,换成乙付款:旧结果先隐藏;重新计算后承担金额不变,乙应收 66.67 元,甲向乙付 33.34 元,丙向乙付 33.33 元。
  • 0.01 元,甲付款:甲承担 0.01 元,乙丙各 0.00 元;甲应收 0.00 元。
  • 0.02 元,甲付款:甲乙各承担 0.01 元,丙 0.00 元;甲应收 0.01 元。
  • 上限 999999.99 元:每人承担 333333.33 元,甲付款时应收 666666.66 元。
  • 无效输入:分别试空白、0、-1、1.234、1e2、1000000;应提示输入问题,并隐藏分摊结果。
  • 手机与键盘:窄屏下标签和结果可读;用 Tab 找到输入、付款人和按钮,按 Enter 能计算。

用同一份清单检查 AI 给你的文件。第三段指令可以辅助查代码,浏览器里的实际结果由你逐项核对。

请按以下用例审查我粘贴的 HTML。先不要改代码。
请区分“通过阅读代码推断”与“已实际运行”,没有运行就不要报告已通过。

甲付款时:300 元应每人 100.00、甲应收 200.00;360 元应每人 120.00、甲应收 240.00。
100 元应甲 33.34、乙丙各 33.33,甲应收 66.66;换乙付款后承担金额不变,乙应收 66.67。
0.01 元应甲承担 0.01、乙丙 0.00;0.02 元应甲乙各 0.01、丙 0.00。
999999.99 元应每人 333333.33;空白、0、-1、1.234、1e2、1000000 应拒绝。
修改金额或付款人后,应隐藏旧结果并提示重新计算。

请逐项指出对应实现、可能不符的地方,以及我还要在浏览器做的检查。
下面是完整 HTML:
【粘贴你保存的 HTML】
04 / FIX ONE REPRODUCIBLE PROBLEM

发现问题,说清步骤再修改。

记录输入、操作、期望和实际结果。一次反馈一个能复现的问题,比“还是不对”更容易得到准确修正。

请只修复下面这个问题,保留现有功能和分账规则。

复现步骤:【例如:输入 300,选甲付款,点击计算;把金额改为 360,暂不再计算。】
期望结果:【修改后旧结果隐藏,并提示重新计算。】
实际结果:【填写你亲眼看到的结果。】

请先解释原因,再返回修正后的完整 HTML,不要增加新功能。
修正后请列出需要重查的用例;没有实际运行的检查请明确说明。
下面是我当前使用的完整 HTML:
【粘贴文件内容】

保存修正版后,刷新浏览器重新打开,再跑一次原来失败的用例,并复查 300 元、100 元、0.01 元与无效输入。确认修复没有改变其他规则。

想接着做多笔账单或多币种,先回到需求卡写新的场景和验收结果。本轮完成的,是一个单笔分账练习。

ONE FILE, ONE SMALL RESULT

带着能体验的作品,再聊下一步。

完成以后,自己检查四件事。

自检勾选只用于当前阅读,不保存或提交。示例只作教学练习,不承接真实旅行账务。

FROM A SMALL NEED TO A SMALL APP

看看真正的旅途里,还要照顾哪些细节。

练习处理了一笔分账;可为旅行记账还要照顾多人、多币种、现金袋与离线记录。具体场景,会给下一版提出新的问题。

了解 可为旅行记账
私域联系 / SAY HELLO.

从一个招呼开始。

了解 CoWe 产品、课程与共创

CoWe 微信联系二维码

添加微信,一起聊聊

备注「CoWe」和你关注的方向:

产品、课程与共创

简单介绍你的需求或作品。产品体验与获取方式、社群参与、课程开放及作品展示安排,在微信确认。

电脑访问可用微信扫码;手机访问请保存二维码,再打开微信「扫一扫」,从相册识别。

保存联系二维码 这是微信联系二维码,社群加入方式请联系后确认。