天天看點

C語言及程式設計提高例程-40 小小型應用系統開發指導(四)

開發指導

  該銀行儲蓄系統的目标,将是設計一個可以支援多名儲戶開戶、存款、取款、轉帳、改密、挂失、解挂、銷戶等功能的系統,以此初步體會完整系統開發,綜合運用已經學過的知識。

  以下提示中,給出了多個層次的需要,可以先保證最基本、最簡單功能的實作,疊代式地完善,實作“改進意見”中的要求。

  按照子產品化程式設計要求,充分利用函數實作功能。

功能

圖       示

說明和提示

登入

  輸入業務員使用者名和密碼。3次輸入不正确,強制退出程式。

本講方案

  隻設一名業務員,用全局變量表示其使用者名和密碼,寫在檔案中,程式開始時讀入。

改進意見

  可以用一個文本檔案儲存多名業務員的資訊,在程式開始執行時,讀入業務員資訊,以支援多名業務員登入。

  用檔案儲存密碼時,一般不用“明文”,而要加密處理。

系統菜單

  當業務員資訊驗證後,進入到系統主要菜單,由業務員為儲戶辦理各種業務,直到按0後退出。

  儲戶的資訊都儲存在檔案中,在處理業務前需要将資訊讀入,系統退出前需要将資料儲存到檔案中。

開戶

賬号由系統自動配置設定

确認密碼和密碼不同時要拒絕。

開戶後,賬号狀态為0-正常

  增加一個銀行賬戶(銀行卡)

  銀行賬戶資訊如下表:

序号

賬号

使用者名

密碼

餘額

狀态

1

10001

Tom

123456

1000.23

正常

2

10023

Jerry

666666

200000.05

挂失

3

23005

Pluto

888888

20.34

4

12306

Goofy

123

778.23

登出

理想方案應該采用結構體,限于我們學習到的技術的限制,我們采用多個數組存儲資料

#define upNum 2000 //系統最多容納的使用者數

int user[upNum][3];  //賬号、密碼、狀态

char name[upNum][10];   //使用者名

double balance[upNum];  //賬戶餘額

//以上相同行下标,描述同一人的資訊

1、要求密碼是6位數字字元

2、用靜态數組太浪費空間,改用動态數組

3、将使用者資訊改為連結清單,是更合适的做法

4、儲存密碼時,可以考慮加密。

5、賬戶狀态state可以定義為枚舉型。

銷戶

  輸入賬号,确認後,将餘額全部取完,并将狀态state置為2-銷戶。

  辦理銷戶的賬号,其狀态必須為“0-正常”(下同)。

存款

  輸入賬号、自動出現姓名,輸入金額後,記錄存款後的餘額。

取款

  輸入賬号、金額,記錄取款後的餘額。

  取款額不能超過餘額。

  密碼不對拒絕取款。

查詢

  輸入賬号,顯示賬戶資訊。

轉賬

  輸入轉出賬号、金額、轉入賬戶,記錄轉賬後的餘額。

  賬戶必須存在,扣除轉出賬戶的金額,要與轉入賬戶增加的金額相同。

  輸入賬号,将狀态改變為 1-挂失

解挂

  輸入賬号,将狀态為 1-挂失 的賬戶狀态改為 0-正常

改密

  用新密碼替代舊密碼。

  新密碼必須與确認密碼相同。

計算利息

(這屬于銀行背景管理的功能,不展現在界面上,以上的設計尚不能支援真實系統中的計息功能,故将此作為選做功能。)

  現行銀行計息的規則是,每半年計算一次利息,并将利息加到賬号餘額中。

  如果要計算利息,需要将每一筆存、取、轉的資訊記錄下來,以獲得各個時間段内的金額,完成利息計算。

  請自行設計有關的資料結構完成設計

下面是源代碼:



繼續閱讀