開發指導
該銀行儲蓄系統的目标,将是設計一個可以支援多名儲戶開戶、存款、取款、轉帳、改密、挂失、解挂、銷戶等功能的系統,以此初步體會完整系統開發,綜合運用已經學過的知識。
以下提示中,給出了多個層次的需要,可以先保證最基本、最簡單功能的實作,疊代式地完善,實作“改進意見”中的要求。
按照子產品化程式設計要求,充分利用函數實作功能。
功能
圖 示
說明和提示
登入
輸入業務員使用者名和密碼。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-正常
改密
用新密碼替代舊密碼。
新密碼必須與确認密碼相同。
計算利息
(這屬于銀行背景管理的功能,不展現在界面上,以上的設計尚不能支援真實系統中的計息功能,故将此作為選做功能。)
現行銀行計息的規則是,每半年計算一次利息,并将利息加到賬号餘額中。
如果要計算利息,需要将每一筆存、取、轉的資訊記錄下來,以獲得各個時間段内的金額,完成利息計算。
請自行設計有關的資料結構完成設計
下面是源代碼: