ZJUPTA 7 1 自動售貨機

2021-10-14 07:46:08 字數 1566 閱讀 8422

pta 7-1 自動售貨機

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

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

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

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

輸入格式:

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

輸出格式:

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

輸入樣例:

1 1 2 2 5 5 10 10 -1

1 2 3 5 1 6 9 10 -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

#include

#include

struct item

;int

main()

,,,,

,,,,

,,};

static

int result[11]

;//儲存購買結果

int putinmoney =0;

//輸入的總錢

for(;;

) putinmoney +

= temp;

}int printfmoney = putinmoney;

for(;;

)if(putinmoney >= goods[index]

.price)

else

}printf

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

, printfmoney, putinmoney)

;for

(int i =

1; i <=

10; i++)}

return0;

}

7 1 自動售貨機 30分

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

測試自動售貨機

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

自動售貨機(2)

只是寫了兩種情況,乙個好的驗證testbeach 必須包含所有情況,可以重複但一定不能漏掉情況。timescale 1ns 1ps module drink status moore tb localparam charge width 6 localparam reset init h 10 lo...