版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、仲愷農(nóng)業(yè)工程學(xué)院課程設(shè)計*課 程 面向?qū)ο笳n程設(shè)計姓 名 院 (系) 計算機科學(xué)與工程學(xué)院 專業(yè)年級 計算機科學(xué)與技術(shù)072班學(xué) 號 指導(dǎo)教師 日 期 2009年8月31日-2009年9月13日仲愷農(nóng)業(yè)工程學(xué)院教務(wù)處制目 錄1、需求與功能分析 22、系統(tǒng)總體框架 33、模塊設(shè)計與分析 54、類的設(shè)計與分析 85、特色算法分析 96、功能測試 147、存在的不足與對策 158、程序源代碼 259、使用說明 2510、參考文獻 25一、 需求與功能分析隨著社會經(jīng)濟的發(fā)展,信息化程度的不斷深入,銀行的傳統(tǒng)業(yè)務(wù)己愈來愈不能滿足銀行客戶的需要。現(xiàn)今,人們的金融意識、科技意識己經(jīng)有了很大的提高,在緊張忙碌
2、的生活中,己越來越來不習(xí)慣每月奔忙于各銀行營業(yè)柜臺之問去排隊繳各種各樣的費用了;同時,各種經(jīng)營單位如電信、移動、供電、煤氣、自來水、證券等等一是為了提高服務(wù)質(zhì)量、方便客戶,二是為了減輕自己日趨繁重的工作量,紛紛委托銀行為其開展代收代付業(yè)務(wù):同時,隨著我國加入世貿(mào)組織的日益臨近,我國的銀行業(yè)將面臨更加激烈的同業(yè)競爭,如何提供更多的金融產(chǎn)品和更優(yōu)質(zhì)的服務(wù),如何吸引更多的客戶,如何利用計算機技術(shù)加強銀行帳戶信息管理、進行銀行業(yè)務(wù)再造,提高銀行的工作效率和業(yè)務(wù)竟?fàn)幠芰κ菙[在各家銀行面前的一個迫切需要解訣的問題。近幾年來,各商業(yè)銀行加快了與社會各業(yè)的合作,利用自身的網(wǎng)點優(yōu)勢和業(yè)務(wù)特點,為其提供各種高效、
3、快捷的代收代付業(yè)務(wù),也就是中間代理業(yè)務(wù),目前以與廣大人民群眾生活密切相關(guān)的各項繳費業(yè)務(wù)如水電費、電話費、手機費等代收業(yè)務(wù)為主,這些業(yè)務(wù)開展方式多種多樣,但一般都離不開計算機的高效管理支持。隨著代理業(yè)務(wù)不斷發(fā)展,業(yè)務(wù)品種越來越多,各項業(yè)務(wù)做法互有差異,這就對銀行的電子化水平和相應(yīng)的管理水平提出了更高的要求。如何利用電子化的手段構(gòu)建一個高效統(tǒng)一的、通用靈活的系統(tǒng)來管理各種各樣的業(yè)務(wù),是每個商業(yè)銀行所要研究的課題。支持決策系統(tǒng)的,需要在數(shù)據(jù)庫的基礎(chǔ)上,進行聯(lián)機分析處理,每次處理的數(shù)據(jù)量大,響應(yīng)時間長。特別是銀行每天要處理大量的存取款事件,做好存取款是銀行工作重要的環(huán)節(jié),然而要有效處理必須要有良好的程
4、序和數(shù)據(jù)管理系統(tǒng)來建立一個良好的軟件系統(tǒng)來實現(xiàn)快速、有效、準(zhǔn)確、安全的處理銀行事物。主要用于銀行的儲蓄卡管理系統(tǒng),它可以幫助我們有效、準(zhǔn)確、并且高效實現(xiàn)的完成存取事件。此系統(tǒng)操作方便效率、安全性高,只要客戶開戶并設(shè)定好密碼就可以輕松的實現(xiàn)存取款。系統(tǒng)實現(xiàn)的主要有儲蓄卡開戶管理、存取款管理、用戶查詢歷史數(shù)據(jù)顯示、注銷等功能。 儲蓄卡開戶管理模塊:卡號、姓名、開戶金額、身份證號、地址、電話、密碼、確認密碼和保存組成。(開戶金額必須是數(shù)字,密碼和確認密碼必須一樣是六位數(shù)字) *查詢歷史數(shù)據(jù)模塊:存款記錄、取款記錄、余額顯示等。 *注銷模塊:一旦注銷該卡號就不存在且余額提醒你取出。 通過該銀行賬戶管理
5、系統(tǒng)地運行,使辦公人員可以輕松快捷的完成對賬戶管理的任務(wù),提高賬目管理效率,使銀行的賬目管理工作系統(tǒng)化、規(guī)范化、自動化。 該銀行帳目管理信息系統(tǒng),優(yōu)點是設(shè)計過程思路清晰、模塊劃分簡潔,設(shè)計各階段分工明確。經(jīng)過實踐證明,該劃分是合理的,極大得提高了本系統(tǒng)的實現(xiàn)。二、 系統(tǒng)總體框架銀行管理系統(tǒng)存錢頁面取款頁面余額頁面歷史記錄注銷頁面登錄界面注冊開戶主界頁面注銷退出 圖1 -1三、 模塊設(shè)計與分析儲蓄卡開戶管理模塊:3.1 登錄頁面輸入卡號和密碼,根據(jù)用戶輸入的卡號和密碼,到后臺文件查詢,若正確則登錄成功,并保存卡好信息已備后用。若卡號存在和密碼不匹配或無該卡號已經(jīng)注銷,提示該卡號已存在或已注銷,保
6、持界面三次不變等待用戶的重新輸入。3.2 主界面頁面主要導(dǎo)航欄有:歡迎使用儲蓄卡管理(存款、取款、查詢余額、查詢歷史記錄、注銷退出)3.3 儲蓄卡開戶頁面提供開戶界面,由用戶輸入新儲蓄卡的所有信息,將該信息保存到文件中,并將開戶金額作為該卡的第一次存款記錄存人文件。3.4 存錢頁面從登錄界面得到卡號,并提供數(shù)據(jù)輸入界面,等待用戶的輸入存款金額。從后臺數(shù)據(jù)庫中找到該用戶余額記錄,修改余額,并將該存款事件的相應(yīng)信息寫人數(shù)據(jù)庫,同時將存錢的金額顯示在頁面上。3.5 取款頁面從登錄界面得到卡號,并提供數(shù)據(jù)輸入界面,等待用戶輸入取款金額,如果取款金額大于該用戶卡上的余額則不能取款,或者將新的余額寫人文件
7、,并將本次取款事件寫入文件同時將取錢的金額顯示在頁面上,。3.6 查詢余額頁面從登錄界面得到卡好,把該卡上的余額顯示到界面中。3.7 查詢歷史記錄頁面從登錄界面得到卡號,把該卡的所有存款取款信息查詢出來,并顯示在頁面上。3.8 注銷頁面從關(guān)閉文件,狀態(tài)為注銷,最后關(guān)閉整個系統(tǒng)。列舉取款模塊進行分析:void function:drawing(user &u) system(cls);coutnnntt*nendl; couttt請輸入取款金額:; string str1(ntt現(xiàn)取rmb 鈔- ); string str2; int k=0; while(ksaveanddrawmoney;u
8、.fmoney -=saveanddrawmoney; if(u.fmoney=0) system(cls);coutnnntt正在出炒,請稍等!endl;strstream ss;ssstr2;string frist=record+str2 +.txt; const char *recordfile=frist.c_str(); ofstream outfile(recordfile,ios:out|ios:app); outfilestr1saveanddrawmoney=3) system(cls); cerrnnntt很抱歉,你重復(fù)輸入錯誤多次endl ntt正在退卡中endl; e
9、xit(0); system(cls); u.fmoney +=saveanddrawmoney; cerrnnntt對不起,你輸入的金額超出有效金額。endl ntt 請重新輸入: ; cout(istream & i, user & u);void password();bool login(user &);void savefile(user &); vector strfunction;user()user(int a,string n,int f,string i,string ad,int t):accout(a),name(n),fmoney(f),id(i),address(a
10、d),telephone(t)private: int accout; string name; int fmoney; string id; string address; int telephone; char pword19;char pword29;表1 user 類說明表名稱屬性說明accout數(shù)據(jù)成員用戶賬戶數(shù)據(jù)name數(shù)據(jù)成員用戶姓名fmoney數(shù)據(jù)成員用戶首次金額id數(shù)據(jù)成員用戶身份證號address數(shù)據(jù)成員用戶地址telephone數(shù)據(jù)成員用戶電話pword1數(shù)據(jù)成員用戶密碼pword2數(shù)據(jù)成員用戶再一次確認密碼get()構(gòu)造函數(shù)默認構(gòu)造函數(shù)login()成員方法登錄方法pa
11、ssword()成員方法密碼驗證savefile()成員方法保存數(shù)據(jù)2function 類function 類 主要實現(xiàn)用戶的各種功能:畫出user 類的類圖:相關(guān)代碼:class functionpublic: void saving(user &);void drawing(user &);void balance(user &);void record(user &);private:int saveanddrawmoney; 表1 user 類說明表名稱屬性說明saveanddrawmoney數(shù)據(jù)成員用戶存入與取出金額saving()成員方法實現(xiàn)存款功能與保存數(shù)據(jù)drawing()成員
12、方法實現(xiàn)取款功能與保存數(shù)據(jù)balance()成員方法查詢余額功能record()成員方法查詢歷史記錄五、 特色算法分析1.user類中的password方法 功能:輸入密碼并進行確認,如果密碼確認三次失敗,則退出系統(tǒng)。while(n3)輸入:password1 password2strcmp(pword1,pword2)1 流程圖: 否 是 否 是代碼:void user:password() int num=0; while(num3) coutntt請輸入位儲蓄密碼:; for(int i=0;i8;i+) pword1i=getch();cout*; pword18=0; coutend
13、l; coutntt請再一次確認密碼:; for(int i=0;i8;i+) pword2i=getch();cout*; coutendl; pword28=0; if(strcmp(pword1,pword2)=0) coutnntt密碼確認成功,單擊任何鍵進入主菜單; getch(); return ; else num+; coutntt你輸入的密碼錯誤,請重新輸入!nendl; if(num=3) system(cls); cerrnnntt對不起,你三次輸入不正確nendl tt感謝你的使用,再見! endl; exit(0); 六、 功能測試6.1 首頁:圖6-1:6.2 儲蓄
14、卡開戶頁面 圖6-2:6.3 主界面頁面主要導(dǎo)航欄有:歡迎使用儲蓄卡管理(存款、取款、查詢余額、查詢歷史記錄、注銷退出) 圖6-3:6.4 存錢頁面 圖6-4:6.5 取款頁面從登錄界面得到卡號,并提供數(shù)據(jù)輸入界面,等待用戶輸入取款金額,如果取款金額大于該用戶卡上的余額則不能取款,或者將新的余額寫人文件,并將本次取款事件寫入文件同時將取錢的金額顯示在頁面上。輸入取款金額: 圖6-5:當(dāng)取款金額大于現(xiàn)有金額: 圖6-6:當(dāng)取款金額小于或等于現(xiàn)有金額: 圖6-7:6.6 查詢余額頁面 圖6-8:6.7 查詢歷史記錄頁面 圖6-9:6.8 用戶信息 圖6-10:6.9 注銷頁面從保存數(shù)據(jù)并關(guān)閉文件,
15、狀態(tài)為注銷,最后關(guān)閉整個系統(tǒng)。 圖6-11:七、 存在的不足與對策程序存在的不足之處在于程序以文件方式儲存,并且每個用戶信息與用戶的歷史記錄分別用一個文件來儲存,如果這樣的話一個用戶就需要二個文件儲存信息,那么一萬個用戶就需要用到二萬個文件保存。這不但浪費內(nèi)存而已在查找文件也會花費時間。解決的對策是使用stl標(biāo)準(zhǔn)庫或者數(shù)據(jù)庫的方法進行解決,這里列舉了一個用stl標(biāo)準(zhǔn)庫里面用vector解決的例子:#include #include #include #include using namespace std;class accountpublic: string account; / 如果你要保
16、存0001這樣的格式,用string方便 double balance; / 余額 /自己補充數(shù)據(jù)成員 friend ostream & operator(istream & i, account & t);ostream & operator(ostream & o, const account & t) ot.account t.balance/*自己補充各個數(shù)據(jù)成員*/(istream & i, account & t) it.accountt.balance/*自己補充各個數(shù)據(jù)成員*/; return i;int main() ifstream ifs(account.txt); ve
17、ctor vacc; vacc.assign(istream_iterator(ifs), istream_iterator(); ifs.close(); for (vector:iterator it=vacc.begin(); it!=vacc.end(); +it) if (it-account = 0002) it-balance += 100; /余額增加100 break; ofstream ofs(account.txt); copy(vacc.begin(), vacc.end(), ostream_iterator(ofs); return 0;通過這個例子,我們就可以從程
18、序中輸入像/ account.txt里面的內(nèi)容示例 0001 104.7 0002 252.1 0004 4299.04 0003 723.2八、 程序源代碼#include#include#include#include#include#include#includeusing namespace std;class function;class userpublic: void get(user& );friend class function; ostream &print(ostream &os);/friend ostream & operator(istream & i, user
19、 & u);void password();bool login(user &);void savefile(user &); vector strfunction;user()user(int a,string n,int f,string i,string ad,int t):accout(a),name(n),fmoney(f),id(i),address(ad),telephone(t)private: int accout; string name; int fmoney; string id; string address; int telephone; char pword19;
20、 char pword29;class functionpublic: void saving(user &);void drawing(user &);void balance(user &);void record(user &);private:int saveanddrawmoney;void function:saving(user &u) system(cls); coutnnntt*nendl; coutsaveanddrawmoney; u.fmoney+=saveanddrawmoney; strstream ss; string str2;ssstr2; string fr
21、ist=record+str2 +.txt; const char *recordfile=frist.c_str(); ofstream outfile(recordfile,ios:out|ios:app); outfilestr1saveanddrawmoneyendl; outfile.close(); outfile.clear(); coutnntt操作成功,單擊任何鍵返回主菜單!; getch();void function:drawing(user &u) system(cls); coutnnntt*nendl; couttt請輸入取款金額:; string str1(ntt
22、現(xiàn)取rmb 鈔- ); string str2; int k=0; while(ksaveanddrawmoney;u.fmoney -=saveanddrawmoney; if(u.fmoney=0) system(cls);coutnnntt正在出炒,請稍等!endl;strstream ss;ssstr2;string frist=record+str2 +.txt; const char *recordfile=frist.c_str(); ofstream outfile(recordfile,ios:out|ios:app); outfilestr1saveanddrawmoney
23、=3) system(cls); cerrnnntt很抱歉,你重復(fù)輸入錯誤多次endl ntt正在退卡中endl; exit(0); system(cls); u.fmoney +=saveanddrawmoney; cerrnnntt對不起,你輸入的金額超出有效金額。endl ntt 請重新輸入: ; coutnntt操作成功,單擊任何鍵返回主菜單!; getch();void function:balance(user &u) system(cls); coutnnntt*nendl; couttt你當(dāng)前的余額是:; coutttu.fmoneyendl; coutntt*nendl; c
24、outntt操作成功,單擊任何鍵返回主菜單!; getch();void function:record(user &u) string str1,str2;system(cls);coutnnntt*nendl;couttt摘要幣種鈔匯存/取款金額endl;strstream ss;ssstr2;string frist=record+str2 +.txt; const char *recordfile=frist.c_str();ifstream infile(recordfile,ios:in);if(!infile) coutntt沒有任何歷史記錄!endl; getch(); ret
25、urn ;while(!infile.eof() getline (infile,str1); coutnttstr1endl;coutntt*nendl;coutntt操作成功,單擊任何鍵返回主菜單!;getch();ostream &user:print(ostream &os) /marksystem(cls); osnnntt*nendl; osntt用戶卡號:accoutendl; osntt姓名: name endl; osntt賬戶金額:fmoneyendl; osntt身份證號:idendl; osntt地址: address endl; osntt聯(lián)系電話:telephone
26、 endl; osntt密碼: pword1endl; osntt*nendl; coutntt操作成功,單擊任何鍵返回主菜單!; getch(); return os;void user:savefile(user &u) int filename=u.accout; string frist; string last(.txt); strstream ss; ssfrist;frist+=last; const char *userid=frist.c_str();ofstream outfile(userid,ios:out |ios:trunc );/outfile(*this); o
27、utfileaccout name fmoney id address telephone pword1endl; outfile.close();bool user:login(user &u) int acc; string pwd; coutntt登陸用戶:endl; coutacc; coutpwd; int filename=acc; string frist; string last(.txt); strstream ss; ssfrist;frist+=last; const char *userid=frist.c_str();ifstream infile(userid,io
28、s:in ); while (infile (*this) if (u.accout = acc ) string str; str=pword1;if(str= pwd) return true; return false;/*ostream & operator(ostream & o, const user & u) ou.accout u.name u.fmoney u.id u.address u.telephone u.pword1 (istream & i, user & u) iu.accout u.name u.fmoney u.id u.address u.telephon
29、e u.pword1 ; return i;void user:password() int num=0; while(num3) coutntt請輸入位儲蓄密碼:; for(int i=0;i8;i+) pword1i=getch();cout*; pword18=0; coutendl; coutntt請再一次確認密碼:; for(int i=0;i8;i+) pword2i=getch();cout*; coutendl; pword28=0; if(strcmp(pword1,pword2)=0) coutnntt密碼確認成功,單擊任何鍵進入主菜單; getch(); return ;
30、 else num+; coutntt你輸入的密碼錯誤,請重新輸入!nendl; if(num=3) system(cls); cerrnnntt對不起,你三次輸入不正確nendl tt感謝你的使用,再見! endl; exit(0); void user:get(user& u)system(cls); coutnnntt請輸入用戶信息:nendl; couttt*nendl; coutaccout; coutname; coutfmoney; coutid; coutaddress; couttelephone; u.password(); coutntt*nendl;void sign(
31、)system(cls);coutnnnnnnttt謝謝您使用銀行管理系統(tǒng)t nnendl;couttt*nendl;couttt 姓名: 謝道爾 nn tt 班級: 計算機班nn tt 學(xué)號: 200710214217nnendl; coutntt 已經(jīng)成功退出endl ntt 歡迎你的光臨! endl;char custom(user &u) char x;int k=0;system(cls);coutnnnttntt ntt 歡迎使用儲蓄管理系統(tǒng) ntt ntt 請用戶在使用前選擇開戶: ntt ntt 請選擇: ntt 1:注冊開戶 ntt 2:用戶登錄 ntt 其他:退出 ntt ntt nttnendl; coutx; if(x=1) u.get(u); else if(x=2) while(k3) if(u.login(u) /判斷登陸是否成功 return 0; elsesystem(cls);cerrnnnttt輸
溫馨提示
- 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. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年個人房產(chǎn)租賃管理服務(wù)協(xié)議
- 2025年鐵件掛件行業(yè)深度研究分析報告
- 2025年度綠色能源信托資金借款合同協(xié)議2篇
- 《消防安全教育普及》課件
- 2025年個人門面房租賃合同包含租賃保證金及返還流程2篇
- 2025年湖南長城銀河科技有限公司招聘筆試參考題庫含答案解析
- 2025年消防演練場地搭建與實施合同范本2篇
- 2025個人股份無償轉(zhuǎn)讓與公司戰(zhàn)略調(diào)整服務(wù)協(xié)議4篇
- 2025年廣東潮州潮安區(qū)商業(yè)總公司招聘筆試參考題庫含答案解析
- 2025年貴州湄潭湄江工業(yè)投資集團招聘筆試參考題庫含答案解析
- 《鐵路軌道維護》課件-更換道岔尖軌作業(yè)
- 股份代持協(xié)議書簡版wps
- 職業(yè)學(xué)校視頻監(jiān)控存儲系統(tǒng)解決方案
- 《銷售心理學(xué)培訓(xùn)》課件
- 智能養(yǎng)老院視頻監(jiān)控技術(shù)方案
- 2024年安徽省公務(wù)員錄用考試《行測》真題及解析
- 你比我猜題庫課件
- 豐順縣鄉(xiāng)鎮(zhèn)集中式飲用水水源地基礎(chǔ)狀況調(diào)查和風(fēng)險評估報告
- 無人駕駛航空器安全操作理論復(fù)習(xí)測試附答案
- 2024年山東省青島市中考語文試卷(附答案)
- 職業(yè)技術(shù)學(xué)?!犊缇畴娮由虅?wù)物流與倉儲》課程標(biāo)準(zhǔn)
評論
0/150
提交評論