Kadence

進階範例 01|線上點餐系統

題目

這是小明速食店的菜單:

菜單
漢堡 60 元、薯條 40 元、可樂 20 元、柳橙汁 25 元。消費滿 200 元可折 10 元。

最近外送正夯,請幫小明設計一個訂餐系統,讓顧客線上查看菜單並點餐。顧客輸入「送出」後,系統會自動統計餐點數量和總金額。

怎麼讓 AI 知道我想要什麼?

1. 拆解需求,釐清問題

首先,我們需要將問題分解成更小的子問題,以便更容易理解和解決。以下是我們可以考慮的子問題:

  • 讓電腦知道菜單內容並顯示菜單
  • 接收顧客的點餐
  • 判斷顧客有沒有輸入「送出」
  • 統計餐點數量和總金額
  • 根據總金額計算折扣
  • 顯示餐點數量和最終金額

除了功能的正面描述,我們也可以思考有沒有題目沒有明白說出,但應該被處理的問題?例如:

  • 判斷顧客輸入的品項存不存在
  • 判斷顧客輸入的數量是否為整數

2. 比對經驗,找出相似

我們可以參考已經存在的訂餐系統的介面和功能,例如美食外送平台、網路訂餐系統等。觀察他們怎麼設計點餐的流程。

3. 提取核心,化繁為簡

接著要找出訂餐系統的規則,並且去除不必要的細節。例如:

  • 設計系統時,可以先忽略美觀性,而專注於正確接收顧客的點餐資訊,以及正確計算折扣後的金額。
  • 題目說顧客輸入「送出」後才統計總金額,也就是說這裡存在一個條件判斷,「如果輸入送出,則統計金額;否則允許顧客繼續輸入」。
  • 同理,「消費滿 200 元可折 10 元」也是一個條件判斷,意思是「如果總金額大於或等於 200,則減 10 元;否則維持為金額」。
  • 因為顧客在輸入「送出」前,都可以重複點餐,所以我們可以建立一個購物清單,每次顧客點了新的品項,就更新清單的內容。最後只要結算購物清單的品項和數量,就能得到總金額的數字。

4. 精準表達,轉譯需求

最後,我們需要將需求翻譯成 AI 比較好理解的語言,以下是其中一種表達方式:

我們可以告訴 AI 這樣做

  • 菜單:漢堡 60 元、薯條 40 元、可樂 20 元、柳橙汁 25 元。
  • 創建一個空的購物清單
  • 顯示菜單給顧客參考
  • 當顧客輸入餐點和數量時,將其添加到購物清單
  • 如果輸入的餐點不存在或不符合格式,請顧客重新輸入
  • 當顧客輸入[送出]時,計算購物車中的餐點數量和總金額
  • 如果總金額大於或等於 200,折扣 10 元
  • 顯示餐點數量和總金額給顧客

使用範例 >>

產生程式碼後,點擊畫面右上方的「執行」,就能開始點餐囉!

延伸思考

  1. 如果想要累積折扣金額,滿 200 折 10 元,滿 400 折 20 元,可以怎麼調整提問?
分享