考生需要模擬實現乙個簡單的自動售貨系統,實現投幣、購買商品、退幣、查詢庫存商品及存錢盒資訊的功能。系統初始化時自動售貨機中商品為6種商品, 商品的單價參見1.1規格說明,存錢盒內放置1元、2元、5元、10元錢幣,商品數量和錢幣張數通過初始化命令設定,參見2.1 系統初始化。
1.商品:每種商品含名稱、單價、數量三種屬性。其中商品名不重複。考生不能修改商品名稱和單價,初始化命令設定商品數量。這些資訊在考試框架中定義,考上在實現功能**時可直接呼叫。
商品名稱
單價數量a12
xa23x
a34xa4
5xa58
xa66x
2.存錢盒資訊:有紙張面額、張數兩種屬性。初始化命令設定各種面額錢幣張數。這些資訊在考試框架中定義,考上在實現功能**時可直接呼叫。
錢幣面額
張數10元x5元
x2元x1元
x
3.退幣原則輸入描述:1)根據系統存錢盒內錢幣的資訊,按照錢幣數量最少的原則退幣。
2)如果零錢不足導致不能退幣,則盡最大可能退幣,以減少使用者損失。
(例如:假設存錢盒內只有4張2元,無其他面額錢幣。如果需要退幣7元,系統因零錢不足無法退幣,則繼續嘗試退幣6元,最終系統成功退幣3張2元,使用者損失1元。
4.投幣操作說明
每次投幣成功,投入的錢幣面額累加到投幣餘額。同時,本次投入的錢幣放入存錢盒中,存錢盒響應的面額錢幣增加。
5.投幣餘額
是指當前自動售貨機中使用者剩餘的可購買商品的錢幣總額。比如:投入2元面額的錢幣,投幣餘額增加2元;購買一件2元的商品,投幣餘額減少2元。
6.投幣餘額約束:投幣餘額不能超過10元。
7.退幣操作說明:
退幣操作需要遵守退幣原則;退幣成功後,投幣餘額清零,同時扣除存錢盒相應的餘額。
8.購買商品操作說明:
一次僅允許購買一件商品;購買商品成功後,自動售貨機中對應的商品數量減一,投幣餘額扣除本次購買商品的**。
命令字與第乙個引數間使用乙個空格分隔,多條命令採用分號隔開。考試系統會對輸入命令格式進行處理,考生不需要關注輸入命令格式的合法性,只需要輸入命令處理函式。
命令格式:
r a1 數量 -a2 數量 -a3 數量 -a4 數量 -a5 數量 -a6 數量 1 元張數 -2 元張數 -5 元張數 -10 元張數
引數名稱
引數說明
型別取值範圍
a1數量
商品a1的數量
整數[ 0 , 10 ]
a2數量
商品a2的數量
整數[ 0 , 10 ]
a3數量
商品a3的數量
整數[ 0 , 10 ]
a4數量
商品a4的數量
整數[ 0 , 10 ]
a5數量
商品a5的數量
整數[ 0 , 10 ]
a6數量
商品a6的數量
整數[ 0 , 10 ]
1元張數
面額1元錢幣張數
整數[ 0 , 10 ]
2元張數
面額2元錢幣張數
整數[ 0 , 10 ]
5元張數
面額5元錢幣張數
整數[ 0 , 10 ]
10元張數
面額10元錢幣張數
整數[ 0 , 10 ]
說明:商品和各種面額錢幣取值範圍只是作為初始化命令的限制,其它場景下不限制取值範圍;考試框架已經實現取值範圍的檢查,考生不需要關注。
功能說明:設定自動售貨機中商品數量和存錢盒中各種面額的錢幣張數。
約束說明:系統在任意階段均可執行r 初始化系統;考生不需要關注引數的合法性,不需要關注增加或缺少引數的場景。
輸出說明:輸出操作成功提示(執行完r 命令後系統自動輸出操作結果,考生不需要再次呼叫輸出函式)例:
命令輸出
含義r 6-5-4-3-2-1 4-3-2-1
s001: initialization is successful
初始化成功
格式命令:p 錢幣面額
功能說明:
(1) 如果投入非1元、2元、5元、10元錢幣面額(錢幣面額不考慮負數,字元等非正整數的情況),輸出 :
(2) 如果存錢盒中1元和2元面額錢幣總額小於本次投入的錢幣面額,輸出:e002: denomination error
但投入1元和2元面額錢幣不受此限制。e003: change is not enough, pay fall
(3)如果投幣餘額大於10元,輸出:
(4) 如果自動售貨機中商品全部銷售完畢,投幣失敗,輸出:e004:pay the balance is byond the scope biggest
(5) 如果投幣成功,輸出:e005:all the goods sold out
命令s002:pay success, balance=x.
輸出p 10
s002: pay success, balance = 10
約束說明:
命令格式: b 商品名稱
功能說明:
(1) 如果購買的商品不在商品列表中:輸出 " e006:goods does not exist ";
(2) 如果所購買的商品的數量為0,輸出:」 e007:the goods sold out ";
(3) 如果投幣餘額小於待購買商品**,輸出 「 e008: lack of balance ";
約束說明:
(1)一次購買操作僅能購買一件商品,可以多次購買。
(2)同等條件下,錯誤**優先順序:e006 > e007 > e008;
輸出說明:
如果購買成功,輸出:" s003: buy success, balance = x "; 例:
命令輸出
b a1;
s003: buy success, balance = 8.
命令格式:c
功能說明:
(1)如果投幣餘額等於0,輸出:」 e009:work failure ";
(2)如果投幣餘額大於0,按照投幣原則進行「找零」,輸出投幣資訊;
約束說明:
(1)系統在任意階段都可以退幣。
(2)退幣方式必須按照 退幣原則 進行退幣。
輸出說明:如果退幣成功,按照 退幣原則 輸出退幣資訊。
例:退5元錢幣:
命令輸出
c;1 yuan coin number = 0
2 yuan coin number = 0
5 yuan coin number = 1
10 yuan coin number = 0
命令格式: q 查詢類別
功能說明:
(1)查詢自動售貨機中商品資訊,包括商品名稱、單價、數量。根據商品數量從大到小進行排序;商品數量相同時,按照商品名稱的先後順序進行排序。例如:a1的商品名稱先於a2的商品名稱,a2的商品名稱先於a3的商品名稱。
(2)查詢存錢盒資訊,包含各種面額錢幣張數。
(3)查詢類別如下表所示:
查詢型別
查詢內容
0查詢商品資訊
1查詢存錢盒資訊
如果「查詢類別」 引數錯誤,輸出:" e010: parameter error ".查詢類別錯誤時,不進行下面的處理;
輸出說明:
「查詢類別」為0時,輸出自動售貨機中所有商品資訊(商品名稱單價數量)例:
命令輸出
q 0
a1 2 6
a2 3 5
a3 4 4
a4 5 3
a5 8 2
a6 6 0
「查詢類別」為1時,輸出存錢盒資訊(各種面額錢幣的張數),格式固定,例:
命令輸出
q 1
1 yuan coin number=4
2 yuan coin number=3
5 yuan coin nmuber=2
10 yuan coin number=1
依照說明中的命令碼格式輸入命令。
輸出描述:
輸出執行結果。
輸入
r 1-1-1-1-1-1 10-5-2-1;p 1;q 1;
輸出s001:initialization is successful
s002:pay success,balance=1
1 yuan coin number=11
2 yuan coin number=5
5 yuan coin number=2
10 yuan coin number=1
Oracle部署第一部曲
1 無法用所有預設使用者登入sql plus 解決方案 執行 cmd 鍵入命令 sqlplus as sysdba 2 查詢資料庫中所有使用者 select username from dba users 3 查詢資料庫中所有表空間 select from sys.dba tablespaces 4...
Camera Link 標準解讀第一部
本篇將從物理介面 模式配置,傳輸協議 訊號時序,已經硬體設計和邏輯實現等方面介紹cameralink標準。camera link是一種序列通訊協議標準,基於national semiconductor介面channnel link 簡稱 c link,與2000年 在美國自動化冬夜學會aia的推動下...
魔鬼作坊第一部筆記
f1 沒有技能的時候是 0 有的時候是非 0 快速掃瞄 首次掃瞄 0 走幾步 降f2的技能放到 f1上 大於0 搜尋 重複上面的步驟 4 這樣的一般都是陣列 例如 mov eax,eax esi 4 搜尋eax的數值 動一下技能欄 就會顯 一些資料 是讀取 不是寫入的 要注意下 繼續搜 eax的 e...