華爲2017校招題:自動售貨系統

描述:考生需要模擬實現一個簡單的自動售貨系統,實現投幣、購買商品、退幣、輸出庫存商品及存錢盒信息的功能.
1. 系統中存在以下商品與錢幣:
三種商品:每種商品包含商品名稱、單價、數量三種屬性,分別爲:名稱爲A1的商品單價爲2元數量爲5件;名稱爲A2的商品單價爲3元數量爲10件;名稱爲A3的商品單價爲4元數量爲14件
存錢盒信息存在以下三種面額1、2、5元的錢幣,每種錢幣包括面額、張數屬性,分別爲:1元的 5張;2元的 5張, 5元的 3張;
2. 系統退幣原則:根據系統存錢盒內錢幣的信息,按錢幣總張數最少的原則進行退幣,即使用戶只投幣不購買商品也按此原則退幣。
3. 約束:考生不需要考慮命令的非法性,即不存在非法的命令的情況,例如系統中A1商品只有5件,不存在買第6件的情況,不存在買的商品總價超過投幣總和的等情況。
4. 輸入說明
系統接收到輸入命令需要初始化系統,初始化系統中商品與錢幣數量。命令字與參數間使用一個空格分隔,不同命令之間用逗號分隔。
1). 投幣命令:命令格式:p 錢幣面額,投幣可以投入多次,只能投入1、2、5元面額的錢幣。
2). 購買商品:命令格式:b 商品名稱
一條購買命令僅能購買一件商品,可以多次購買;購買商品成功後,自動售貨機中對應商品數量減1,存錢盒中金額相應的增加,全部購買完成需要按退幣原則把多餘的錢幣退回。
例如:p 5,p 5,p 5,b A3,b A3,b A2
5. 輸出說明
輸出自動售貨機中商品和存錢盒的信息,包含商品名稱、數量,存錢盒面額、數量。根據商品名稱的從小到大順序進行排序,輸出結果中商品名稱與數量使用一個空格分開,
存錢盒根據錢幣面額從小到大排序輸出,錢幣面額與數量使用一個空格分開,不同信息間使用逗號分開,商品信息與存錢盒信息使用分號分開。
例如,返回結果爲:A1 5,A2 9,A3 12;1 5,2 3,5 6
運行時間限制:
無限制
內存限制:
無限制
輸入:

投幣命令、購買商品命令
輸出:

自動售貨機中商品和存錢盒的信息
樣例輸入:

p 5,p 5,p 5,b A3,b A3,b A2
樣例輸出:

A1 5,A2 9,A3 12;1 5,2 3,5 6
答案提示:


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章