这次交付:一个可以直接打开的文件。
甲、乙、丙旅行时,一人垫付一笔开销,三人平均承担。本练习接续「第一份需求卡」,只处理单笔人民币分摊。
人物与数字均为虚构教学示例。这是现在可阅读、可动手的公开实战,完整课程仍在筹备。你可以先体验示例,再自己和 AI 做一遍。
先读第一份需求卡确认需求,也确认钱怎么算。
把这一版的规则一次写清楚,减少来回猜测。先不要增加账号、多币种、多笔账单或线上分享。
这一版的六条规则
- 固定甲、乙、丙三人,一笔人民币开销;选择其中一位付款人。
- 输入金额大于 0,最高 999999.99 元,最多两位小数。
- 空白、0、负数、超过两位小数、科学记法和超过上限的金额无效,显示提示并隐藏结果。
- 用整数“分”计算,先平均分;剩余的分按甲、乙、丙顺序各分一分。分配顺序与谁付款无关。
- 显示每人的承担金额、付款人的应收总额,以及其他人向付款人应付的金额;合计必须等于原账单。
- 修改金额或付款人后,隐藏旧结果并提示重新计算,避免把旧答案当成新答案。
第一段指令:先让 AI 检查理解。
我要做一个三人分账小工具。先不要写代码,请复述使用路径并检查歧义。 使用者固定为甲、乙、丙,一人付款,三人平均承担一笔人民币开销。 金额大于 0,最高 999999.99 元,最多两位小数;空白、0、负数、超过两位小数、科学记法、超过上限都要拒绝。 金额用整数“分”计算。先平均分,剩余的分按甲、乙、丙顺序各分一分,不随付款人变化。 结果显示每人承担多少、付款人应收多少、其他人向付款人应付多少。 金额或付款人修改后隐藏旧结果,提示重新计算。 第一版不做多币种、多笔记录、账号或线上分享。 请列出输入、操作、结果和完成条件。仍不清楚的地方请提出来,不要增加功能。 人物与数字仅用于教学练习。
把规则交给 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 生成的代码需要亲手检查。能打开文件,只说明页面能运行;分账规则是否正确,还要看下一步的用例。
打开文件,逐项核对结果。
在电脑上双击保存的 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】
发现问题,说清步骤再修改。
记录输入、操作、期望和实际结果。一次反馈一个能复现的问题,比“还是不对”更容易得到准确修正。
请只修复下面这个问题,保留现有功能和分账规则。 复现步骤:【例如:输入 300,选甲付款,点击计算;把金额改为 360,暂不再计算。】 期望结果:【修改后旧结果隐藏,并提示重新计算。】 实际结果:【填写你亲眼看到的结果。】 请先解释原因,再返回修正后的完整 HTML,不要增加新功能。 修正后请列出需要重查的用例;没有实际运行的检查请明确说明。 下面是我当前使用的完整 HTML: 【粘贴文件内容】
保存修正版后,刷新浏览器重新打开,再跑一次原来失败的用例,并复查 300 元、100 元、0.01 元与无效输入。确认修复没有改变其他规则。
想接着做多笔账单或多币种,先回到需求卡写新的场景和验收结果。本轮完成的,是一个单笔分账练习。
带着能体验的作品,再聊下一步。
自检勾选只用于当前阅读,不保存或提交。示例只作教学练习,不承接真实旅行账务。
