1. 程式人生 > >華為OJ自動售貨系統

華為OJ自動售貨系統

操作說明     命令字與第一個引數間使用一個空格分隔,多條命令採用分號隔開。考試系統會對輸入命令格式進行處理,考生不需要關注輸入命令格式的合法性,只需要實現命令處理函式。 2.1 系統初始化 命令格式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 初始化成功
2.2 投幣 命令格式p 錢幣面額     功能說明: (1)如果投入非1元、2元、5元、10元的錢幣面額(錢幣面額不考慮負數、字元等非正整數的情況),輸出“E002:Denomination error”; (2)如果存錢盒中1元和2元面額錢幣總額小於本次投入的錢幣面額,輸出“E003:Change is not enough, pay fail”,但投入1元和2元面額錢幣不受此限制。 (3)如果投幣餘額大於10元,輸出“E004:Pay the balance is beyond the scope biggest”; (4)如果自動售貨機中商品全部銷售完畢,投幣失敗。輸出“E005:All the goods sold out”; (5)如果投幣成功,輸出“S002:Pay success,balance=X”;     約束說明
: (1)系統在任意階段都可以投幣; (2)一次投幣只能投一張錢幣; (3)同等條件下,錯誤碼的優先順序:E002 > E003 > E004 > E005;     輸出說明:如果投幣成功,輸出“S002:Pay success,balance=X”。 例:
命令 輸出
p 10; S002:Pay success,balance=10
2.3 購買商品 命令格式b 商品名稱 功能說明: (1)如果購買的商品不在商品列表中,輸出“E006:Goods does not exist”; (2)如果所購買的商品的數量為0,輸出“E007:The goods sold out”; (3)如果投幣餘額小於待購買商品價格,輸出“E008:Lack of balance”; (4)如果購買成功,輸出“S003:Buy success,balance=X”; 約束說明: (1)一次購買操作僅能購買一件商品,可以多次購買; (2)同等條件下,錯誤碼的優先順序:E006 > E007 > E008; 輸出說明: 如果購買成功,輸出“S003:Buy success,balance=X”。 例:
命令 輸出
b A1; S003:Buy success,balance=8
2.4退幣 命令格式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
2.5查詢 命令格式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 number=2 10 yuan coin number=1
知識點 字串
執行時間限制 0M
記憶體限制 0
輸入

依照說明中的命令碼格式輸入命令。

命令彙總
命令 命令格式 示例 說明
r r A1數量-A2數量-A3數量-A4數量-A5數量-A6數量 1元張數-2元張數-5元張數-10元張數; r 6-5-4-3-2-1 4-3-2-1; r,初始化商品和存錢盒資訊
p 錢幣面額; p 10; p,向自動售貨機投入某個面額的錢幣
b 商品名稱; b A1; b,購買商品
c c; c; c,可退出所有投幣餘額,投幣餘額清零。
q q查詢類別; q0; q,查詢自動售貨機中所有商品存量資訊及存錢盒資訊
返回碼彙總
返回碼描述 說明
E001:Illegal command 考試系統使用,考生不用關注
E002:Denomination error “錢幣面額”引數不合法;
E003:Change is not enough, pay fail 存錢盒中1元和2元面額錢幣總額小於本次投入的錢幣面額
E004:Pay the balance is beyond the scope biggest 投幣餘額最大不能超過10元
E005:All the goods sold out 所有商品存量為0時,不能投幣。
E006:Goods does not exist 選擇購買的商品不在商品銷售列表
E007:The goods sold out 所選擇的商品存量為0,不能購買。
E008:Lack of balance 投幣餘額小於待購買商品價格,不能選擇。
E009:Work failure 投幣餘額為零,不允許退幣。
E010:Parameter error “查詢類別”引數不合法。
S001:Initialization is successful 初始化操作成功,考試系統使用,考生不用關注
S002:Pay success,balance=X 投幣成功,X 為系統的投幣餘額。例: S002:Pay success,balance=5
S003:Buy success,balance=X 購買商品成功,X 為系統的投幣餘額。例: S003:Buy success,balance=3
3 約束 1、所有指令格式的合法性、範圍不做為測試點,考生不需要考慮。 2、測試用例中所有的命令必須以”r”開頭,即所有的用例都是以初始化開始的。 3、輸入命令的引數與引數之間用”-”(橫線)隔開,命令與命令之間用”;”(英文分號)隔開。 4、仔細閱讀題目規格,使用給出的參考程式碼框架,實現OpReset,OpPay,OpBuy,OpChange,OpQuery五個函式的功能,函式已經定義好,直接修改即可。考生也可根據需要自行新增函式,輸入輸出功能可直接呼叫參考程式碼框架中的函式。 4 參考測試用例
測試用例編號 輸入 預期輸出
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
2 r 1-1-1-1-1-1 10-5-2-1;p 2;q 1; S001:Initialization is successful
S002:Pay success,balance=2
1 yuan coin number=10
2 yuan coin number=6
5 yuan coin number=2
10 yuan coin number=1
3 r 1-1-1-1-1-1 4-0-0-0;p 5;q 1; S001:Initialization is successful
E003:Change is not enough, pay fail
1 yuan coin number=4
2 yuan coin number=0
5 yuan coin number=0
10 yuan coin number=0
4 r 1-1-1-1-1-1 0-5-0-0;p 10; S001:Initialization is successful
S002:Pay success,balance=10
5 r 1-1-1-1-1-1 0-3-0-0;p 5; S001:Initialization is successful
S002:Pay success,balance=5
6 r 1-1-1-1-1-1 2-1-0-0;p 5; S001:Initialization is successful
E003:Change is not enough, pay fail
7 r 1-1-1-1-1-1 3-2-0-0;p 5; S001:Initialization is successful
S002:Pay success,balance=5

相關推薦

OJ自動售貨系統

2 操作說明     命令字與第一個引數間使用一個空格分隔,多條命令採用分號隔開。考試系統會對輸入命令格式進行處理,考生不需要關注輸入命令格式的合法性,只需要實現命令處理函式。 2.1 系統初始化 命令格式: r A1數量-A2數量-A3數量-A4數量-A5數量-A6數量 1元張數-2元張數-5元張數-10

OJ:數字顛倒

ring pan mod ber ack art ava scan end 將數字轉成一個字符串即可了。 import java.util.Scanner; public class convertNumber { public static void main(St

OJ 名字美麗度

list tty res mod set 範圍 重載 物聯網 實例 這是一道坑爹的題目,為什麽這麽說,且看我慢慢分析…… 題目例如以下: 給出一個名字,該名字有26個字符串組成,定義這個字符串的“美麗度”是其全部字母“美麗度”的總和。 每一個字母都

如何開啟小米,oppo,等手機的系統應用的指定頁面

如題,拿Oppo 手機做個示例,小米 華為也是如此。 在編寫Android應用的時候,我們經常會有這樣的需求,我們想直接開啟系統應用的某個頁面。比如在Oppo R9 手機上我們想開啟某個應用的通知管理介面如下圖 點選QQ圖示,跳轉到如下介面

企業網路營銷系統分析報告

(一)調查企業 華為技術有限集團 (二)調查問卷的問題 1.您的性別是? A.男 B女 2.您的年齡是? A.18歲以下 B.18—30 C.30—40 D.40歲以上 3.您覺得您購買手機看重的是? A.價效比 B.價格 C. 外觀D.其他 4.您能接受的手機價位是? A.1000以下 B

Python練習【5】【自動售貨系統

不足 ESS exceptio dsw default 限制 int coin 提示信息 題目: 代碼: # 商品屬性 prize_default = [2, 3, 4, 5, 8, 6] goods_info = {‘A‘ + str(i+1): dict(prize

尋找01矩陣中的最大子矩陣--OJ機試--java語言版

題目描述: 在一個M * N的矩陣中,所有的元素只有0和1,從這個矩陣中找出一個面積最大的全1子矩陣,所謂最大是指元素1的個數最多。 輸入: 輸入可能包含多個測試樣例。 對於每個測試案例,輸入的第一行

oj素數伴侶

題目描述若兩個正整數的和為素數,則這兩個正整數稱之為“素數伴侶”,如2和5、6和13,它們能應用於通訊加密。現在密碼學會請你設計一個程式,從已有的N(N為偶數)個正整數中挑選出若干對組成“素數伴侶”,挑選方案多種多樣,例如有4個正整數:2,5,6,13,如果將5和6分為一組

【Android開發】app升級報錯,解析包時出現錯誤(手機8.0系統

問題描述: 今天釋出app版本升級,碰到華為手機8.0系統,安裝升級的時候提示,解析包時出現問題。而其他手機都是正常的。而且當我的包沒有經過360加固的時候,也是可以去升級新版本,加固過後就不行了。 這個導致這個問題的原因有很多,我先把我這邊app的問題處理方案介紹給大家

oj【IP地址判斷有效性】

#include <iostream> #include <cstring> #include<string> using namespace std; bool isIPAddressValid(const char* pszIPAddr) { if(pszIPA

判斷是否小米、、魅族系統

public class SystemUtil { public static final String SYS_EMUI = "sys_emui"; public static final String SYS_MIUI = "sys_miui";

oj】超長正整數想加

問題描述:請設計一個演算法完成兩個超長正整數的加法。 介面說明  /*  請設計一個演算法完成兩個超長正整數的加法。  輸入引數:  String addend:加數  String augend:被

字串反轉——來自OJ平臺測試基礎篇

 /*  * 字串反轉  * 與字元逆序一樣,是同一個程式  * 描述:  寫出一個程式,接受一個字串,然後輸出該字串反轉後的字串。例如:  * 知識點:  陣列,指標   * 題目來源:  內部整理   * 練習階段:  初級   * 執行時間限制: 10Se

OJ之N皇后問題(C++程式碼)

1問題描述 N皇后問題,就是如何將國際象棋中的N個皇后放在N*N的棋盤上而不會互相攻擊,是一種通過列舉,再遞迴、回溯的思想。 2思路 以8皇后問題為例,可知在8*8二維陣列中,每個點用data[i][j]表示(0 <= i,j <= 7)。

python練習題之自動售貨系統

有瑕疵,待改進: 題目描述 總體說明 考生需要模擬實現一個簡單的自動售貨系統,實現投幣、購買商品、退幣、查詢庫存商品及存錢盒資訊的功能。 系統初始化時自動售貨機中商品為6種商品,商品的單價自定義,存錢盒內放置1元、2元、5元、10元錢幣,商品數量和錢幣張數通過初始化命令

oj 公共字串計算

此題是經典的動態規劃的題:設c[i][j] 表示第一個字串從開始到 i 的位置,和第二個字串從開始到 j 的位置的最長公共字串的長度,那麼我們可以根據題目得知一下條件 1.如果pFirstStr[i+1]==pSecondStr[j+1],那麼c[i+1][j+1]=c[

oj 明明的隨機數&&計算字元個數

在此提供三種解法,其實三種解法殊途同歸,不就是排個序,去個重就好! 1.利用map特點,插入map之後,會自動根據關鍵字排序,而且不會出現相同的關鍵字,正好滿足特性 #include<iostream> #include<map> using na

OJ——24點遊戲演算法

24點遊戲演算法 題目描述 問題描述:給出4個1-10的數字,通過加減乘除,得到數字為24就算勝利輸入:4個1-10的數字。[數字允許重複,測試用例保證無異常數字]輸出:true or false 輸

oj 字串萬用字元

本題,其實和分蘋果的題有那麼一丟丟的類似,在此提供兩種能通過的解法(主要就是對於‘*’的處理) 1.這種解法其實是錯誤的,但是也要說說他的思路,對於 ‘*’ 他直接找 ‘*’ 下一個字元是否出現在需要匹配的串中,並且找到那個位置,認為此位置到之前就是‘*’所匹配的內容。

[OJ--C++]088-按位元組擷取字串

題目描述:編寫一個擷取字串的函式,輸入為一個字串和位元組數,輸出為按位元組擷取的字串。但是要保證漢字不被截半個,如"我ABC"4,應該截為"我AB",輸入"我ABC漢DEF"6,應該輸出為"我ABC"