C 之銀行ATM例項 Part2

2021-10-08 21:04:43 字數 2381 閱讀 9460

一、題目要求

在上一次「銀行系統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...