一、題目要求
在上一次「銀行系統atm-part1」的基礎上,再一次改進,做乙個新的版本,增加新學的語法要素,如委託、事件與異常等。
要求如下:
上一版本中關於類、屬性、方法、繼承、修飾符等你不太滿意的地方(或者你從別人那裡學到的)可以進一步改進。改進的地方可以加上注釋說明。(佔3分)
程式中使用事件及委託。在atm類中實現乙個事件bigmoneyfetched (一大筆錢被取走了),即atm機在操作時如果使用者取款數大於10000,則可以啟用這個事件。事件引數也是乙個物件(可以定義類bigmoneyargs),含有賬號及當時取款數。在程式中(如main中)註冊這個事件,使之能在介面中顯示出告警資訊(相當於銀行的監控功能)。(佔3分)
程式中使用自定義異常。比如,定義乙個異常類badcashexception,表示有壞的鈔票。在程式中適當的地方(如取款函式)中,丟擲(throw)(自定義的異常類(如random的next(3)小於1,表示有三個之一的概率時就丟擲),在atm呼叫這個函式時進行捕獲(catch)。(佔3分)
使用其他語法(可選,如attribute、lambda表示式)。(佔1分,總體印象較好時,也可獲得這1分)
二、實驗步驟
1.對上篇part1的改進,當使用者輸入賬號或密碼錯誤時,可提示「press any key to continue」,即使用者可按任何鍵來對程式進行重置,此外,當使用者選擇三者之一的功能並使用之後,此時螢幕上會自動清屏並重新顯示功能供使用者選擇。
2.新增bigmoneyfetched類,當取款數大於10000時,可觸發bigmoneyfetched事件發生,事件引數為temid(即使用者賬號)和temmoney(即使用者取款數)。在atm類中引用此事件,判斷當使用者取款數大於10000時,觸發bigmoneyfetched事件,並在螢幕上顯示warning,提示使用者正在大額取款。在main函式中註冊此事件,使之能在介面中顯示出告警資訊(相當於銀行的監控功能)。
3.定義乙個異常類badcashexception,表示有壞的鈔票。在程式中適當的地方(如取款函式)中,丟擲(throw)(自定義的異常類(如random的next(3)小於1,表示有三個之一的概率時就丟擲),在atm呼叫這個函式時進行捕獲(catch)。
三、實驗資料及處理結果
設定的賬戶資料:
其中,普通賬戶的卡號為1111,密碼為1111,餘額為1000。信用賬戶的卡號為2222,密碼為2222,實際餘額為1000,信用額度為500.大額餘額賬戶的卡號為3333,密碼為3333,餘額為20000。
1.普通賬戶:
登入失敗:
登入成功:
輸入1,檢視餘額:
輸入2,存錢並顯示存錢後的餘額:
輸入3,取錢並顯示取錢後的餘額:
當取錢的數目大於餘額時,提示出錯,取錢失敗:
2.信用賬戶
登入失敗、成功如上。
輸入3,取錢並顯示取錢後的餘額(此時賬戶2000裡包含信用餘額500):
3.大額餘額使用者登入:
登入失敗、成功如上。
1.取錢(取錢金額小於10000),此時提示取出的鈔票有破損,正在重新出票,然後重新出票成功,取錢成功,取出5000元,餘額為20000元。
2.取錢(取錢金額大於10000),提示warning,使用者正在取出大額金錢,取錢成功,取錢金額為11000,此時餘額為9000.
C 記憶體管理 part2
allocating class instances using new new operator 也可以用於對class instance分配動態記憶體。如下例 include using namespace std class point private int x int y int main...
c 檔案分割與合併 part 2
同樣,引用system.io,然後,給瀏覽按鈕新增如下 瀏覽 private void button1 click object sender,eventargs e string path openfiledialog1.filename.split tochararray string stem...
c 檔案分割與合併 part 2
同樣,引用system.io,然後,給瀏覽按鈕新增如下 瀏覽 private void button1 click object sender,eventargs e string path openfiledialog1.filename.split tochararray string stem...