7 1 自動售貨機 30分

2021-10-14 07:17:25 字數 1823 閱讀 3979

如圖所示的簡易自動售貨機,物品架1、2上共有10樣商品,按順序進行編號分別為1-10,標有**與名稱,乙個編號對應乙個可操作按鈕,供選擇商品使用。如果物架上的商品被使用者買走,儲物櫃中會自動取出商品送到物架上,保證物品架上一定會有商品。使用者可以一次投入較多錢幣,並可以選擇多樣商品,售貨機可以一次性將商品輸出並找零錢。

使用者購買商品的操作方法是:

(1)從「錢幣入口」放入錢幣,依次放入多個硬幣或紙幣。錢幣可支援1元(紙幣、硬幣)、2元(紙幣)、5元(紙幣)、10元(紙幣),放入錢幣時,控制器會先對錢幣進行檢驗識別出幣值,並統計幣值總額,顯示在控制器顯示屏中,提示使用者確認錢幣放入完畢;

(2)使用者確認錢幣放入完畢,便可選擇商品,只要用手指按對應商品外面的編號按鈕即可。每選中一樣商品,售貨機控制器會判斷錢幣是否足夠購買,如果錢幣足夠,自動根據編號將物品進行計數和計算所需錢幣值,並提示餘額。如果錢幣不足,控制器則提示「insufficient money」。使用者可以取消購買,將會把所有放入錢幣退回給使用者。

先輸入錢幣值序列,以-1作為結束,再依次輸入多個購買商品編號,以-1結束。

輸出錢幣總額與找回零錢,以及所購買商品名稱及數量。

112

25510

10-11

2351

6910-

1

total:

36yuan,change:

19yuan

table-water:

2;table-water:

1;table-water:

1;milk:

1;beer:

1;oolong-tea:

1;green-tea:

1;

我這個做法很笨拙……

有別的辦法希望告訴我哦?

#include

#include

intmain()

;int price[11]

=;int total=

0,change=0;

int money=0;

int choose=0;

while

(money!=-1

)//在這裡獲得了收到的總錢數

change=total;

while(1

)//構建完成選擇物品的次數列表

change-

=price[choose];if

(change<0)

count[choose]++;

}if(change<0)

//錢不夠直接退出不就好了嘛

printf

("total:%dyuan,change:%dyuan\n"

,total,change)

;//emmm比較暴力的解法

if(count[1]

!=0)if

(count[2]

!=0)if

(count[3]

!=0)if

(count[4]

!=0)if

(count[5]

!=0)if

(count[6]

!=0)if

(count[7]

!=0)if

(count[8]

!=0)if

(count[9]

!=0)if

(count[10]

!=0)system

("pause");

}

自動售貨機 (30 分)

如圖所示的簡易自動售貨機,物品架1 2上共有10樣商品,按順序進行編號分別為1 10,標有 與名稱,乙個編號對應乙個可操作按鈕,供選擇商品使用。如果物架上的商品被使用者買走,儲物櫃中會自動取出商品送到物架上,保證物品架上一定會有商品。使用者可以一次投入較多錢幣,並可以選擇多樣商品,售貨機可以一次性將...

ZJUPTA 7 1 自動售貨機

pta 7 1 自動售貨機 如圖所示的簡易自動售貨機,物品架1 2上共有10樣商品,按順序進行編號分別為1 10,標有 與名稱,乙個編號對應乙個可操作按鈕,供選擇商品使用。如果物架上的商品被使用者買走,儲物櫃中會自動取出商品送到物架上,保證物品架上一定會有商品。使用者可以一次投入較多錢幣,並可以選擇...

測試自動售貨機

在面試軟體測試職位時,被問到怎樣測試自動售貨機,但是就亂答了一下,沒什麼條理。回來網搜了一下也沒有什麼很好的答案,本來測試這種可能就是每個人有不同看法。回頭問了一下做測試的朋友,給了幾點建議 從功能點和流程等方面測試,以及對於異常的處理情況。1 首先可能先要測試一下,外觀設計的是否合理,是否符合大眾...