軟件工程課程設(shè)計銀行儲蓄管理系統(tǒng)_第1頁
軟件工程課程設(shè)計銀行儲蓄管理系統(tǒng)_第2頁
軟件工程課程設(shè)計銀行儲蓄管理系統(tǒng)_第3頁
軟件工程課程設(shè)計銀行儲蓄管理系統(tǒng)_第4頁
軟件工程課程設(shè)計銀行儲蓄管理系統(tǒng)_第5頁
已閱讀5頁,還剩23頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、目錄1 問題定義22 可行性研究22.1 項目概述22.2 可行性分析的前提22.2.1 項目的目標22.2.2 項目的環(huán)境32.3 可選的方案32.3.1 方案一32.3.2 方案二32.4 所建議的系統(tǒng)32.4.1 系統(tǒng)說明32.4.2 系統(tǒng)流程圖32.4.3 高級數(shù)據(jù)流圖42.5 經(jīng)濟可行性52.5.1系統(tǒng)開發(fā)費用52.5.2系統(tǒng)運行費用52.5.3效益52.6技術(shù)可行性62.7 操作可行性63 需求分析63.1 需求概述63.2 需求模型63.2.1 數(shù)據(jù)模型63.2.2 功能模型83.2.3 行為模型93.2.4 數(shù)據(jù)字典104 總體設(shè)計114.1 系統(tǒng)體系結(jié)構(gòu)114.2 模塊詳細說

2、明124.3 數(shù)據(jù)庫設(shè)計135 詳細設(shè)計145.1 人機界面設(shè)計145.2 過程設(shè)計176 測試186.1 白盒測試186.2黑盒測試197 結(jié)論198參考文獻209 附錄209.1程序代碼201 問題定義賬戶管理是銀行業(yè)務(wù)流程過程中十分重要且必備的環(huán)節(jié)之一,在銀行業(yè)務(wù)流程當(dāng)中起著承上啟下的作用,其重要性不言而喻。但是,目前許多銀行在具體的業(yè)務(wù)流程處理過程中仍然使用手工操作的方式來實施,不僅費時、費力,效率低下,而且無法達到理想的效果。本文針對上述問題,采用軟件工程的開發(fā)原理,依據(jù)軟件流程過程規(guī)范,按照需求分析、概要設(shè)計、詳細設(shè)計、程序編碼、測試、軟件應(yīng)用、軟件維護等過程開發(fā)了一個銀行賬戶管理

3、系統(tǒng)。采用VSC+作為開發(fā)工具,數(shù)據(jù)庫設(shè)計遵循3范式,主要設(shè)計了用戶基本信息表、用戶卡信息表、ATM取款機基本信息表、用戶銀行存款信息表、管理系統(tǒng)的用戶口令表、銀行系統(tǒng)的用戶信息表等數(shù)據(jù)表。解決了銀行系統(tǒng)中存在的數(shù)據(jù)安全性、數(shù)據(jù)一致性以及系統(tǒng)運行速度等問題。系統(tǒng)實現(xiàn)的主要有賬戶管理、取款機管理、用戶查詢等功能;*賬戶管理模塊:存款、取款、開戶、銷戶、修改信息、辦卡、掛失卡;*用戶查詢模塊;*取款機信息管理模塊:管理員管理查詢和維護、客戶查詢和取款等功能;通過該銀行賬戶管理系統(tǒng)地運行,是辦公人員可以輕松快捷的完成對賬戶管理的任務(wù),提高賬目管理效率,使銀行的賬目管理工作系統(tǒng)化、規(guī)范化、自動化。該銀

4、行賬目管理信息系統(tǒng),優(yōu)點是設(shè)計過程思路清晰、模塊劃分簡潔,設(shè)計個階段分工明確。經(jīng)過實踐證明,該劃分是合理的,極大地提高了本系統(tǒng)的實現(xiàn)。2 可行性研究2.1 項目概述某銀行計算機儲蓄系統(tǒng)的工作流程大致如下:儲戶填寫的存款單或取款單由業(yè)務(wù)員鍵入系統(tǒng),如果是存款則系統(tǒng)記錄存款人的姓名、住址(或電話號碼)、身份證號碼、存款類型、存款日期、到期日期、利率及密碼(可選)等信息,完成后由系統(tǒng)打印存款單給儲戶。如果是取款,而且存款時留有密碼,則系統(tǒng)首先核對儲戶密碼,若密碼正確或存款時未留密碼,則系統(tǒng)計算利息并印出利息清單給儲戶。2.2 可行性分析的前提2.2.1 項目的目標所建議系統(tǒng)的開發(fā)目標包括: 人力與設(shè)

5、備費用的減少及合理利用; 處理速度的提高及準確度的保證; 人員利用率的改進及合理調(diào)度; 改進管理和服務(wù)。建立高效的信息傳輸和服務(wù)平臺,提高信息處理速度和利用率等等。a. 用系統(tǒng)的高速特性來節(jié)省大量的人力,并且能夠極大程度上簡化操作人員的工作,使得操作人員只需要做簡單的輸入輸出以及對于本系統(tǒng)的管理就可以簡便的完成自己的工作;b. 將人工計算的部分更改為系統(tǒng)運算處理極大的提升了速度,這樣就提高了工作效率,也極大程度縮短了用戶的等待時間,這樣可以提高銀行在行業(yè)中的競爭力。c. 利用計算機的系統(tǒng)優(yōu)勢,可以彌補人工作業(yè)時的出錯率高的缺陷,使得每一筆業(yè)務(wù)都能最大限度避免核實以及復(fù)工。d. 利用計算機大容量

6、存儲數(shù)據(jù)庫的模式來完成記錄的存儲,這樣在工作中可以及時查證任意一條記錄。2.2.2 項目的環(huán)境采用WindowsXP操作系統(tǒng)MySQL先進的數(shù)據(jù)庫系統(tǒng),JSP技術(shù),采用B/S框架。2.3 可選的方案2.3.1 方案一通過與銀行熟練業(yè)務(wù)員進行深入討論,制定詳細用戶調(diào)查問卷,真正了解用戶以及銀行業(yè)務(wù)員的實際需求,根據(jù)業(yè)務(wù)員提供的信息以及問題定義再綜合調(diào)查問卷中用戶提出的意見進行改進。最終確定項目需要解決的問題,并確定問題能不能被解決。2.3.2 方案二項目的另一種實現(xiàn)方案是直接購買現(xiàn)有的計算機儲蓄系統(tǒng)。但銀行業(yè)是個對安全性要求很高的行業(yè),如果選用現(xiàn)有計算機儲蓄系統(tǒng),有可能會使得未公開的漏洞對本銀行

7、造成沖擊,需要承擔(dān)更高的安全風(fēng)險;為適應(yīng)該系統(tǒng)有可能需要更改現(xiàn)有存款系統(tǒng)的數(shù)據(jù)結(jié)構(gòu),轉(zhuǎn)換成本高;軟件授權(quán)方式的差異可能導(dǎo)致系統(tǒng)開銷更高。2.4 所建議的系統(tǒng)2.4.1 系統(tǒng)說明系統(tǒng)架構(gòu)為星狀架構(gòu),每個分行辦事處連接到中心數(shù)據(jù)庫,每臺分行電腦與一臺打印機相連以輸出信息。儲戶填寫的存款單或取款單由業(yè)務(wù)員輸入系統(tǒng),系統(tǒng)自動更新中心數(shù)據(jù)庫的內(nèi)容,如果是存款,系統(tǒng)記錄存款人姓名、住址、存款類型、存款日期、利率等信息,并印出存款單給儲戶;如果是取款,系統(tǒng)計算利息并印出利息清單給儲戶。2.4.2 系統(tǒng)流程圖本系統(tǒng)的系統(tǒng)流程圖如下圖所示:銀行管理系統(tǒng)存錢頁面取款頁面余額頁面修改密碼注銷頁面登錄界面注冊開戶主界

8、頁面注銷退出圖2.1系統(tǒng)流程圖2.4.3 高級數(shù)據(jù)流圖業(yè)務(wù)員1接收事物儲戶2處理存款3處理取款儲戶本系統(tǒng)的數(shù)據(jù)流圖如下圖所示:圖2.2銀行儲蓄管理系統(tǒng)基本系統(tǒng)模型2.5 經(jīng)濟可行性2.5.1系統(tǒng)開發(fā)費用人員費用。本系統(tǒng)開發(fā)期六個月,試運行期為二個月。開發(fā)期需要開發(fā)人員5人,試運行期需開發(fā)人員2人。開發(fā)需八個月,員工工資費用為大約10萬元。硬件設(shè)備費。本系統(tǒng)所需的硬件設(shè)備費為大約12萬元,其中包括:服務(wù)器1臺PC機8臺打印機8臺條形碼掃描儀10臺網(wǎng)絡(luò)設(shè)備和布線不間斷電源1臺工作臺8臺軟件費用。系統(tǒng)所需的軟件費用大約為1000元,其中包括:正版WindowsXP正版SQLserver2008Mic

9、rosoftOfficeAccess2003、MicrosoftVisualC+6.0可免費下載耗材費。所需耗材費用估計為1.0萬元咨詢和評審費、調(diào)研和差旅費:約2.0萬元其他不可預(yù)見費。按開發(fā)總費用的10%計算。綜上,系統(tǒng)開發(fā)總費用為28萬元。 2.5.2系統(tǒng)運行費用假定本系統(tǒng)運行期為5年,每年的運行費用為:系統(tǒng)維護費。每年需要人員進行系統(tǒng)維護,維護費為1.8萬元。設(shè)備維護費。建設(shè)設(shè)備的運行更新期為5年。假設(shè)設(shè)備日常故障維護費每年0.6萬元。消耗材料費。每年耗材費按0.8萬元計算。系統(tǒng)年運行費用為4萬元,則5年累計系統(tǒng)運行費用為21萬元。綜上,系統(tǒng)開發(fā)和運行總費用為49萬元,折合10萬元/年

10、。效益一次性收益。提高工作效率,減少工作人員人數(shù)。本系統(tǒng)運行可以提高業(yè)務(wù)處理,核算信息管理的效率。累計可以綜合提高工作效率達30%??梢詼p少現(xiàn)有15%的工作人員,節(jié)約人員工資大約12萬元/年。經(jīng)常性收益。辦公設(shè)備、紙張等使用量減少可節(jié)約成本每年約1萬元。不可定量收益。業(yè)務(wù)量的增加使直接經(jīng)濟效益每年上升約7萬元。綜上所述,每年可增加收益20萬元。收益/投資比20/10=2,投資回收周期為三年。由此可見,此系統(tǒng)一經(jīng)使用,可給用戶帶來很大收益,過一段時間后即可收回成本,帶來盈利。在經(jīng)濟上具有可行性。2.6技術(shù)可行性開發(fā)系統(tǒng)的計算機硬件已經(jīng)非常普及,能夠適應(yīng)銀行系統(tǒng)的快速和大容量存儲,硬件方面完全沒有

11、問題;現(xiàn)在的計算機各方面的技術(shù)都非常成熟,相對來說開發(fā)此系統(tǒng)的技術(shù)也要求比較簡單,因此在技術(shù)方面是可行的;同時銀行還必須有一定量的系統(tǒng)管理和維護的專業(yè)人員,在這方面可以通過培訓(xùn)原來的技術(shù)人員成為新的需要的技術(shù)人員,也可以雇用所需這方面的專業(yè)技術(shù)員;若按計劃,在規(guī)定的期限內(nèi),本系統(tǒng)的開發(fā)是可以完成的。2.7 操作可行性該系統(tǒng)可采用C/S模式開發(fā),提供窗體界面,操作簡單。銀行業(yè)務(wù)員要求有基本的計算機使用技能,經(jīng)過簡單培訓(xùn)后將會熟練使用本軟件系統(tǒng)管理員要求有一定計算機的專業(yè)知識,需要經(jīng)過專業(yè)培訓(xùn),以能夠熟練管理本系統(tǒng),使其正常運行。3 需求分析3.1 需求概述隨著人民生活水平的提高,餐飲,住宿,娛樂

12、業(yè)在服務(wù)行業(yè)中占有越來越重要的地位。要使在當(dāng)前酒店行業(yè)日趨激烈的競爭中脫穎而出,必須努力發(fā)展自己的特色。在管理方面也要有自己的管理特色,避免傳統(tǒng)管理方法的失誤,使得酒店的信譽以及各個管理方面都能夠出現(xiàn)零失誤,以及能夠給管理者和普通的營業(yè)員帶來操作上的方便,對整個酒店各個方面的業(yè)務(wù)帶來快捷,方便,高效的服務(wù),使用戶能夠?qū)@個軟件感到滿意,那么才是管理軟件的成功之處。酒店管理系統(tǒng)一個現(xiàn)代化的管理系統(tǒng),系統(tǒng)給出了實際酒店管理中遇到的所有情況,此酒店管理系統(tǒng)軟件是為了代替酒店管理者更好的管理而制作的,軟件給出了酒店管理中的各種細節(jié)問題,使得管理變的更加的輕松。它符合人們平時的使用習(xí)慣,使用性強,能較好

13、的實現(xiàn)各方面的功能。3.2 需求模型3.2.1 數(shù)據(jù)模型本系統(tǒng)的E-R圖如下圖所示:存款存款單類型利率金額賬號到期日期存款日期取款取款單金額取款日期賬號姓名住址電話身份證號儲戶擁有賬戶賬號開戶日期戶主密碼余額 圖3.1銀行儲蓄E-R圖儲戶(身份證號碼,姓名,電話號碼,住址)銀行(名稱,電話號碼,地址)存取款(類型,數(shù)額,利率,密碼,到期日期)3.2.2 功能模型功能級數(shù)據(jù)流圖如下所示:業(yè)務(wù)員2.2 打印存單儲戶儲戶1 接收事物2.1錄入存款信息3.1驗證賬戶3.3 計算利息3.2 核對密碼3.4打印利息清單 存款信息 存單 存款單 事務(wù) 存款信息 取款單 取款額 利息清單賬戶信息 利息取款額

14、密碼 圖3.2數(shù)據(jù)流圖3.2.3 行為模型本系統(tǒng)的狀態(tài)圖如下圖所示:處理存款事務(wù)重新輸入結(jié)束do/打印存款單等待輸入密碼取消do/顯示取消信息驗證密碼處理取款事務(wù)打印利息清單驗證賬戶新開賬戶顯示無效賬戶等待輸入存款信息等待輸入取款信息主屏do/要求事務(wù)類型 選擇存款選擇取款輸入存款單信息 輸入取款單信息【新用戶】【無效】 確認有效、有密碼老用戶 取消 確認【無效】 輸入密碼【無效】 【有效】處理成功 圖4.狀態(tài)圖 數(shù)據(jù)字典本系統(tǒng)數(shù)據(jù)字典如下所示:儲戶名字:儲戶信息描述:存儲用戶的個人詳細信息定義:儲戶信息=儲戶姓名+儲戶住址+儲戶身份證號碼+儲戶帳號+帳戶金額+儲戶密碼位置:儲戶信息名字:存款

15、信息描述:存款儲戶一次存款的存款信息定義:存款信息=存款類型+存取日期+存款金額+利率位置:輸出到打印機名字:取款信息(利息清單)描述:儲戶一次取款的取款信息定義:取款信息=取款日期+取款金額+利息位置:輸出到打印機名字:密碼描述:儲戶存/取款時必須的6位驗證號碼定義:密碼=0|1|2|3|4|5|6|7|8|9+0|1|2|3|4|5|6|7|8|9+0|1|2|3|4|5|6|7|8|9+0|1|2|3|4|5|6|7|8|9+0|1|2|3|4|5|6|7|8|9+0|1|2|3|4|5|6|7|8|9位置:儲戶信息4 總體設(shè)計4.1 系統(tǒng)體系結(jié)構(gòu) 隨著社會經(jīng)濟的發(fā)展,信息化程度的不斷深

16、入,銀行的傳統(tǒng)業(yè)務(wù)已經(jīng)愈來愈不能滿足銀行客戶的需要。現(xiàn)今,人們的金融意識、科技意識已經(jīng)有了很大的提高,在緊張忙碌的生活中,已經(jīng)越來越來不習(xí)慣每月恩忙于各銀行營業(yè)柜臺之問去排隊取款。本銀行賬戶管理信息系統(tǒng)能實現(xiàn)的主要功能有:管理員信息管理;用戶信息修改、開戶、銷戶;辦卡、掛失卡、換卡;存款、取款。系統(tǒng)的總體功能模塊圖如圖4.1所示:銀行儲蓄系統(tǒng)1.0輸入事務(wù)2.0處理存款3.0處理取款1.1輸入存款事務(wù)1.2輸入取款事務(wù)2.1錄入存款信息3.2計算利息3.1驗證賬戶2.2打印存單輸入密碼核對密碼3.3打印利息清單 圖4.1 系統(tǒng)功能模塊圖4.2 模塊詳細說明IPO表系統(tǒng):銀行儲蓄管理系統(tǒng) 作者:

17、張蕓 模塊:開戶 日期:201編號:1.1被調(diào)用:1.0輸出:賬戶號輸入:戶主信息及密碼處理:根據(jù)接收到的賬戶信息。局部數(shù)據(jù)元素:注釋: 表1.IPO表IPO表系統(tǒng):銀行儲蓄管理系統(tǒng) 作者: 模塊:登錄 日期:201編號:1.1被調(diào)用:1.0輸出:賬戶信息輸入:賬號及密碼處理:根據(jù)接收到的賬戶信息,打開賬號。局部數(shù)據(jù)元素:注釋: 表2.IPO表4.3 數(shù)據(jù)庫設(shè)計 通過對銀行賬戶管理的內(nèi)容和數(shù)據(jù)關(guān)系分析,設(shè)計的數(shù)據(jù)項和數(shù)據(jù)結(jié)構(gòu)。表4-1登錄的設(shè)計表列名數(shù)據(jù)類型允許null值賬號(主鍵)nChar(10)密碼nChar(10)表4-2登錄的內(nèi)容表賬號密碼zy123456kris654321表4-3

18、賬戶信息的設(shè)計表列名數(shù)據(jù)類型允許null值姓名 nChar(10)身份證號nChar(20)(主鍵)nChar(10)賬戶nChar(10)余額Float表4-4賬戶信息的內(nèi)容表姓名身份證號賬戶余額zy1234567891100Kris987654321210005 詳細設(shè)計5.1 人機界面設(shè)計進入銀行儲蓄管理系統(tǒng)的界面,開戶界面如下圖所示: 圖5.1開戶界面運行結(jié)果圖開戶功能部分代碼如下:void YH:set_account() int id; string nam; string passw; float m;string company;string address;int numbe

19、r;double in; cout請輸入開戶號:id; cout請輸入開戶人姓名:nam; cout請輸入開戶密碼:passw; cout請輸入存入金額:m;cout請輸入開戶人電話:number;cout請輸入開戶人公司:company;cout請輸入開戶人地址:address;cout請輸入開戶人身份證號碼:in; while(m=0) cout請輸入正確的數(shù)字!m; consumer * acc = new consumer(id,nam,number,in,company,address,passw,m); accountacnum = acc; cout開戶成功!endlendl;

20、acnum+;save();cin.get();return;void YH:del_account()int id; coutendlid;int flag = 1; int i = 0; while(iget_id() flag = 0; else i+; if(flag) cout該帳號不存在,請重新輸入!endl; return; /返回到登陸界面 登錄界面如下圖所示: 圖5.2登陸界面運行結(jié)果圖 圖5.3登陸界面運行結(jié)果圖登錄功能部分代碼如下:void YH:enter_account()int id; coutid; int flag = 1; int i = 0; /_page_

21、break_while(iget_id() flag = 0; else i+; if(flag) cout帳號不存在!endl; return; coutpassw;if(passw!=accounti-get_passwd() return;/返回到登錄界面accounti-display();cin.get();cin.get();int n;dosystem(cls); 5.2 過程設(shè)計登錄系統(tǒng)窗體算法描述如下:If 賬戶和密碼一致 If 儲蓄系統(tǒng)被選中 If 該賬號有權(quán)限登錄儲蓄系統(tǒng) 進入儲蓄系統(tǒng)界面; Else該賬號無權(quán)限登錄儲蓄系統(tǒng) 提示“用戶名或密碼錯誤,請重新輸入!”信息;

22、Endif6 測試6.1 白盒測試登陸模塊過程的流圖如下:1 243657 圖6.1 登錄過程的流圖 路徑一:17 路徑二:12357路徑三:12467按照此部分采用路徑測試,測試用例如下:路徑一的測試用例: 輸入:不匹配的用戶名和密碼 預(yù)計結(jié)果:提示“用戶名或密碼錯誤,請重新輸入!”信息; 路徑二的測試用例: 輸入:正確的用戶名、密碼和登錄賬戶信息系統(tǒng)的權(quán)限且該用戶擁有該權(quán)限 預(yù)計結(jié)果:賬戶信息系統(tǒng)界面彈出 路徑三的測試用例: 輸入:正確的用戶名、密碼和登錄消費信息系統(tǒng)的權(quán)限且該用戶沒有該權(quán)限 預(yù)計結(jié)果:提示“您沒有該權(quán)限!”信息。 6.2黑盒測試根據(jù)登錄模塊,可以劃分出如下等價類。1. 有

23、效等價類(1) 輸入的用戶名存在(2) 輸入與用戶名匹配的正確的密碼(3) 選擇符合用戶名的正確權(quán)限2. 無效等價類(5)用戶名不存在(6)輸入與用戶名不匹配的密碼(7)選擇不符合用戶名的權(quán)限(8)輸入為空根據(jù)上面劃分出的等價類,設(shè)計出下述測試方案。(1) 用戶名存在,與用戶名匹配的正確的密碼,選擇符合用戶名的正確權(quán)限輸入:用戶名zy,密碼123,選擇儲蓄系統(tǒng)預(yù)計輸出:進入賬戶信息界面(2) 用戶名不存在輸入:用戶名zzy,密碼321,選擇儲蓄系統(tǒng)預(yù)計輸出:用戶名或密碼錯誤,請重新輸入?。?) 用戶名存在,密碼不匹配輸入:用戶名zy,密碼321,選擇儲蓄系統(tǒng)預(yù)計輸出:用戶名或密碼錯誤,請重新輸

24、入!7 結(jié)論首先由衷感謝老師給我們這樣一個鍛煉自己的機會,經(jīng)過兩周的設(shè)計我的收獲還是很大的。不僅鞏固了以前學(xué)過的知識,還學(xué)到了很多以前不知道的東西。理論跟實際的差別還是很大的,以后要學(xué)會用理論聯(lián)系實際。從而提高動手實踐能力和獨立思考能力。課程設(shè)計過程中遇到了很多問題,而且有很多的不足之處,發(fā)現(xiàn)自己對以前的知識理解的不夠透徹,掌握的不夠牢固,有待加強。我們的工作是一個團隊的工作,大家一起交流與合作,發(fā)揚團隊協(xié)作精神,學(xué)會了合作與交流。要想有成功必須要有合作,這是我學(xué)到的一點很重要的。如果這次設(shè)計只有我一個人的話,我想我是不會這么快做出來的,在同學(xué)的幫助下,和查資料(包括百度)寫出了這個程序,心里

25、很有成就感。經(jīng)過設(shè)計,感覺自己的理解更加深入了,以前不太明白的,現(xiàn)在也都理解了,使我更加對這些東西感興趣了,通過此次課程設(shè)計也使我學(xué)會獨立思考,與人溝通等能力。熟練了對VC6.0的使用,此次設(shè)計由于自己水平的限制,還存在很多不足之處,比如說程序的效率比較低!這次程序設(shè)計讓我體驗到了失敗的痛苦和成功后的欣喜,這將是我人生中一筆重要的財富,是人生擁有的美好的回憶。 8參考文獻1 軟件工程導(dǎo)論(第5版)張海藩編著清華大學(xué)出版社出版2 軟件工程原理,方法與應(yīng)用 吳欽藩 編著 人民交通出版社出版 3 軟件工程導(dǎo)論(第四版) 張海藩 編著 清華大學(xué)出版社出版 4 軟件工程 任勝兵 邢琳 編著 北京郵電大學(xué)

26、出版社5 王瑞等,Visual C+數(shù)據(jù)庫系統(tǒng)開發(fā)完全手冊,人民郵電出版社,20066 于永彥,C+程序設(shè)計基礎(chǔ)案例教程,北京大學(xué)出版社,20097 數(shù)據(jù)庫系統(tǒng)概述第四版王珊主編高等教育出版社9 附錄9.1程序代碼#include#include #includeusing namespace std;class consumer;class YH /銀行類public:void set_account();/銀行開戶功能void del_account(); /注銷賬戶功能void transfer(int); /轉(zhuǎn)賬功能void enter_account(); /進入用戶個人信息功能vo

27、id addmoney(int,float);/存款功能void exitYH();/ 退出系統(tǒng)void functionshow();void save();void load();/ 功能界面protected: consumer *account20; static int acnum;/賬戶數(shù);class consumer:public YH/用戶類,繼承銀行類的屬性public: friend class YH; consumer(int id,string Name,int Number,double IN,string Company,string Address,string

28、PassWord,float m) ID=id;name=Name;number=Number;in=IN;company=Company;address=Address;money=m;passwd=PassWord; consumer()ID=0;name=0;number=0;in=0;company=0;address=0;money=0;passwd=0; int get_id()return ID; void savemoney();/ 取錢 string get_passwd()return passwd;/ 取得密碼 void display(); void fetchmone

29、y(); /取錢 void change_passwd(); void add_money(float);/計算余額 void dec_money(float);/計算余額 float get_money();/卡卡轉(zhuǎn)帳private: int ID; /開戶帳號 string passwd; / 用戶密碼 string name; / 用戶姓名 float money; /開戶金額int number;string company;string address;double in;void YH:save()ofstream ofile(bankdat.dat,ios:out);/以輸出方式

30、打開文件 ofstream outfile(bankdat.dat,ios:out);/以輸出方式打開文件 bankdat.dat接收從內(nèi)存輸出的數(shù)據(jù)int n=0;outfileacnum ;for(n=0;nacnum;n+)outfileID ;/把信息寫入磁盤文件bankdat.datoutfilemoney ;outfilename ;outfilepasswd ;outfilenumber ;outfilecompany ;outfileaddress ;outfilein ;outfile.close(); /*讀入用戶信息功能實現(xiàn)*/void YH:load()ifstream

31、 infile(bankdat.dat,ios:in);/以輸入方式打開文件if(!infile)cerr讀取錯誤,無資料中!acnum;for(n=0;nid;/從磁盤文件bankdat.dat讀入信息infilem;infilenam;infilepassw;infilecompany;infilenumber;infileaddress;infilein;accountn-passwd;consumer * acc = new consumer(id,nam,number,in,company,address,passw,m); /每讀入一個n開辟一段內(nèi)存accountn = acc;

32、/賦值首地址infile.close();cout讀取資料正常!endl;/*轉(zhuǎn)賬功能實現(xiàn)*/void YH:transfer(int x)int id; coutid; int flag = 1; int i = 0; while(iget_id() flag = 0; else i+; if(flag) cout帳號不存在!endlendl; return ; float b; coutendlb; while(b=0) cout請輸入正確的數(shù)字!endl;coutb; if(accountx-get_money()b) /調(diào)用友元類consumer的公有成員函數(shù)cout對不起,金額不夠!

33、dec_money(b);accounti-add_money(b);cout轉(zhuǎn)賬成功!money=accountx-money-y;float consumer:get_money()return money;void main()YH yh;yh.functionshow();/*主界面顯示*/void YH:functionshow() int n;dosystem(cls); load();coutendl請輸入相應(yīng)的操作序號進行操作:endl;coutendl;cout endl;cout 1. 開戶 endl;cout endl;cout 2.賬戶登錄 endl;cout endl

34、;cout 3.賬戶注銷 endl;cout endl;cout 4.退出系統(tǒng) endl;cout endl;coutendl;coutn; while(n4) cout操作錯誤,請輸入正確的操作序號!endl; coutn; switch(n) case 1: set_account();/開戶 break; case 2:enter_account();/登錄break; case 3: del_account();/注銷 break; case 4: exitYH();/退出 break; cin.get();/輸入流類istream的成員函數(shù)while(true);void YH:en

35、ter_account()int id; coutid; int flag = 1; int i = 0; /_page_break_while(iget_id() flag = 0; else i+; if(flag) cout帳號不存在!endl; return; coutpassw;if(passw!=accounti-get_passwd() return;/返回到登錄界面accounti-display();cin.get();cin.get();int n;dosystem(cls); cout請選擇下列操作:endl;coutendl;cout endl;cout 1.查看賬戶信

36、息 endl;cout endl;cout 2.取款 endl;cout endl;cout 3.存款 endl;cout endl;cout 4.修改密碼 endl;cout endl;cout 5.轉(zhuǎn)賬 endl;cout endl;cout 6.返回上一菜單 endl;cout endl;coutendl;coutn;switch(n)case 1: accounti-display();break;case 2: accounti-fetchmoney();save();break;/從2-5功能,每執(zhí)行一次調(diào)用一次save函數(shù),重新寫入數(shù)據(jù)case 3:accounti-savemo

37、ney();save();break;case 4:accounti-change_passwd();save();break;case 5:transfer(i);save();break;case 6:return;cin.get();cin.get();while(1);void YH:set_account() int id; string nam; string passw; float m;string company;string address;int number;double in; cout請輸入開戶號:id; cout請輸入開戶人姓名:nam; cout請輸入開戶密碼:passw; cout請輸入存入金額:m;cout請輸入開戶人電話:number;cout請輸入開戶人公司:company;cout請輸入開戶人地址:address;cout請輸入開戶人身份證號碼:in

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論