




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、 C+ 課程設計報告題 目:銀行儲蓄管理系統(tǒng)-主函數(shù)、 類的定義、文件讀寫、密碼修改 學生姓名: 童 侃 學 號: 1 專業(yè)班級: 計科09102班 同組姓名: 徐木蘭、熊敏 指導教師: 易 明 設計時間:2010年下學期第34周 指導老師意見: 評定成績: 簽名: 日期:一、系統(tǒng)簡介我們制作的銀行儲蓄管理系統(tǒng),是根據(jù)我們對現(xiàn)有銀行系統(tǒng)工作的了解來構(gòu)造并將其具體實現(xiàn)的。從大體上講,它包括管理員操作和用戶操作;詳細的來說,我們將其分為六個模塊,分別為:主函數(shù)、類定義和鏈表的建立、文件讀寫、常規(guī)操作(其包括開戶、銷戶、掛失和解掛、存款取款、轉(zhuǎn)賬)、界面設計(包括主界面和子界面)以及信息查詢和修改(
2、如存取、款等信息的查詢,用戶等信息的修改)。以下將逐一簡單介紹:1)主函數(shù)中主要包含一些頭文件以及子文件,它負責調(diào)用其中的主界面,并引出各類操作函數(shù),也將各類信息存入文件(或從文件中刪除)。2)系統(tǒng)中,我們定義類三個類,分別為賬戶類(account)、用戶類(user)、存取款類(s-d),每一個類都定義了其數(shù)據(jù)成員和成員函數(shù),為以后的許多的操作做好了鋪墊。我們分別為每一個類創(chuàng)立了一個鏈表,為其順利進行文件讀寫打下伏筆。3)在文件讀寫這一塊,我們分別做了三個讀和寫的函數(shù),將每個類的文件讀寫分開來,這樣在有問題出現(xiàn)時,能更清晰地辨別。4)常規(guī)操作主要包括:開戶、銷戶、掛失、解掛、存款、取款和轉(zhuǎn)賬
3、,這也是主要的功能模塊。5)在此系統(tǒng)中,我們設計了許多界面,主要是主界面,主界面中包括管理員登陸和用戶登錄兩個選擇,選擇后,因調(diào)用不同函數(shù)而出現(xiàn)不同的子界面。6)最后一個模塊是信息查詢,由于在類的定義時,我們給出的數(shù)據(jù)成員很充足,因此在查詢用戶信息時,我們可以有不同的查詢方式。比如按賬號查詢,按姓名查詢、按身份證號查詢、按存取款信息查詢等等??偟膩碚f,我們的系統(tǒng)還算是比較完善,但也還有許多值得修改的地方。二、系統(tǒng)設計功能模塊圖以及流程圖 系統(tǒng)的層次方框圖(圖1):轉(zhuǎn)賬取款存款查詢修改密碼掛失解掛普通用戶登陸銀行儲蓄管理系統(tǒng)添加管理員開戶銷戶查詢信息修改管理員登陸修改密碼登陸界面流程圖(圖2)修
4、改信息流程圖(圖3):數(shù)據(jù)流程圖(圖4):重填 存款流程圖(4-1):填出更新存款信息表錯驗收存款單儲戶存款單存款單(存折)存不款要信密息碼儲戶打印存單處理存款存單存款信息 取款流程圖(4-2):重輸重填儲戶處理取款更新余額打印清單儲戶 填出 表錯核對密碼驗收存款單存款單存款單取款信息三、系統(tǒng)實現(xiàn)1)主函數(shù)#include/#include#include/#include /setw(),setiosflags(ios:left)using namespace std;#include #include11.h#include13.h#include14.h#include16.h#incl
5、ude12.h#include15.hint main()read1();read2();read3(); switch(first_face() case 1: pass1(); /管理員登錄 break; case 2: pass2(); break; case 3: coutendltt退出系統(tǒng),再見!endl; exit(0); return 0;2)類定義類定義中,每一個類有許多數(shù)據(jù)成員,這是為方便查詢而設置的,get和set函數(shù)是為便于修改信息而設置的。class account /賬戶類string account_number; /卡號int account_level; /賬
6、號狀態(tài)(已注銷0/未注銷1)string opendate; /開戶日期int status; /掛失0&沒掛失1public: string get_ano();void set_ano(string ano);string get_opendate();void set_opendate(string opendatel); int get_level();void set_level(int level); int get_status();void set_status(int statusl);account *next;account *head1=NULL;account *p1
7、=NULL;account *x1=NULL;class user /用戶類 string username; /用戶姓名string account_number; /賬號char password20; /密碼string userID; /身份證號碼int user_level; /用戶類別string unit; /單位string phone_no; /聯(lián)系電話string address; /家庭住址public:string get_na();void set_na(string name1);void set_password(char* passwordl); char *
8、get_password();void set_phone(string phone_no1);string get_phone(); string get_unit();void set_unit(string unit1);string get_id();void set_id(string userIDl); string get_ad();void set_ad(string ad);int get_ulevel();void set_ulevel(int ulevel);string get_ano();void set_ano(string ano); user *next; /指
9、向自己的指針;user *head2=NULL;user *p2=NULL;user *x2=NULL;class s_d /存取類 string username; /用戶姓名string account_number;/卡號string time; /存取時間 int money1; /存&取的錢數(shù)int money2; /余額 int type; /存&取(0代表取,1代表存,2代表轉(zhuǎn)賬)public: s_d * next; /指向自身的指針string get_na();void set_na(string namel);string get_ano();void set_ano(s
10、tring ano);string get_time();void set_time(string timel);int get_money2();void set_money2(int moneyl);int get_money1();void set_money1(int moneyl);int get_type();void set_type(int typel);string account:get_ano()return account_number;void account:set_ano(string ano)account_number=ano;string account:g
11、et_opendate()return opendate;void account:set_opendate(string opendatel)opendate =opendatel;int account:get_level()return account_level;void account:set_level(int level)account_level=level;int account:get_status()return status;void account:set_status(int statusl)status=statusl;string user:get_na()re
12、turn username;void user:set_na(string name1)username=name1;char * user:get_password()return password;void user:set_password(char* passwordl)strcpy(password,passwordl);string user:get_phone()return phone_no;void user:set_phone(string phone_nol)phone_no=phone_nol;string user:get_unit()return unit;void
13、 user:set_unit(string unitl)unit=unitl;string user:get_id()return userID;void user:set_id(string userIDl)userID=userIDl;string user:get_ad()return address;void user:set_ad(string ad)address=ad;int user:get_ulevel()return user_level;void user:set_ulevel(int ulevel)user_level=ulevel;string user:get_an
14、o()return account_number;void user:set_ano(string ano)account_number=ano; string s_d:get_na()return username;void s_d:set_na(string namel)username=namel;string s_d:get_ano()return account_number;void s_d:set_ano(string ano)account_number=ano;string s_d:get_time()return time;void s_d:set_time(string
15、timel)time=timel;int s_d:get_type()return type;void s_d:set_type(int typel)type=typel;int s_d:get_money2()return money2;void s_d:set_money2(int moneyl)money2=moneyl;int s_d:get_money1()return money1;void s_d:set_money1(int moneyl)money1=moneyl;s_d *head3=NULL;s_d *p3=NULL;s_d *x3=NULL;3)文件的讀寫void re
16、ad1() /對account的讀操作/account *head=NULL;ifstream fin(account.txt);if(!fin)cout打開文件失敗endl;cout開始讀文件,本操作將清空內(nèi)存鏈表數(shù)據(jù).i;/從文件讀入紀錄條數(shù)string t,s;int r,o;for(j=0;jtrso;/從文件讀入一條用戶紀錄到局部變量x-set_ano(t);/將臨時變量中的值填入鏈表結(jié)點x-set_level(r);x-set_opendate(s);x-set_status(o);x-next=head1;head1=x;coutendl讀文件成功endl; fin.close(
17、);void read2() /對user的讀操作/user *head=NULL;ifstream fin(user.txt);if(!fin)cout打開文件失敗endl;cout開始讀文件,本操作將清空內(nèi)存鏈表數(shù)據(jù).i;/從文件讀入紀錄條數(shù)string t,n,s,b,c,d;char r20;int q; for(j=0;jtnrsqbcd;/從文件讀入一條用戶紀錄到局部變量/r=*;x-set_na(t);/將臨時變量中的值填入鏈表結(jié)點x-set_ano(n); x-set_password(r); x-set_id(s);x-set_ulevel(q);x-set_unit(b);
18、x-set_phone(c);x-set_ad(d);x-next=head2;head2=x;coutendl讀文件成功endl; fin.close();void read3() /對s-d的讀操作head3=NULL;ifstream fin(s_d.txt);if(!fin)cout打開文件失敗endl;cout開始讀文件,本操作將清空內(nèi)存鏈表數(shù)據(jù).i;/從文件讀入紀錄條數(shù)string t,r,s;int q,a,o;for(j=0;jtrsqoa;/從文件讀入一條用戶紀錄到局部變量x-set_na(t); x-set_ano(r);/將臨時變量中的值填入鏈表結(jié)點x-set_time(
19、s);x-set_money1(q);x-set_money2(o);x-set_type(a);coutget_na() get_ano() get_time() get_money1() get_money2() get_type()next=head3;head3=x;coutendl讀文件成功endl; fin.close();void write1()/將account內(nèi)存鏈表中的數(shù)據(jù)存入硬盤文件ofstream fout(account.txt);if(!fout)cout打開文件失敗endl;return;cout開始寫文件,本操作將清空硬盤文件數(shù)據(jù).next; foutin;
20、p=head1; while(p!=NULL)/將鏈表中的結(jié)點依次存入文件 foutget_ano() get_level() get_opendate() get_status()next; cout寫文件成功endl; fout.close();void write2()/將user內(nèi)存鏈表中的數(shù)據(jù)存入硬盤文件ofstream fout(user.txt);if(!fout)cout打開文件失敗endl;return;cout開始寫文件,本操作將清空硬盤文件數(shù)據(jù).next; foutin; p=head2; while(p!=NULL)/將鏈表中的結(jié)點依次存入文件 foutget_na()
21、 get_ano() get_password() get_id() get_ulevel() get_unit() get_phone() get_ad()next; cout寫文件成功endl; fout.close();void write3()/將s-d內(nèi)存鏈表中的數(shù)據(jù)存入硬盤文件ofstream fout(s_d.txt);if(!fout)cout打開文件失敗endl;return;cout開始寫文件,本操作將清空硬盤文件數(shù)據(jù).next; foutin; p=head3; while(p!=NULL)/將鏈表中的結(jié)點依次存入文件 foutget_na() get_ano() get
22、_time() get_money1() get_money2() get_type()next; cout寫文件成功endl; fout.close();4)修改密碼void enter() /管理員修改密碼string na;char nu120;char nu220;p2=head2;coutna;while(p2!=NULL)if(na=p2-get_na()break;elsep2=p2-next;if(p2!=NULL)coutnu1;coutendlnu2;while(strcmp(nu1,nu2)!=0)cout兩次輸入密碼不一致,請重新輸入:endl;coutnu1;cout
23、endlnu2;p2-set_password(nu1);strcpy(p2-get_password(),nu1);cout重設密碼成功!endl;elsecout對不起,該用戶不存在,請檢查后從新輸入!get_ano()break;elsep2=p2-next;if(p2!=NULL)coutnu1;coutendlnu2;while(strcmp(nu1,nu2)!=0) cout兩次輸入密碼不一致,請重新輸入:endl;coutnu1;coutendlnu2;p2-set_password(nu1);strcpy(p2-get_password(),nu1);cout重設密碼成功!endl;elsecout對不起,該用戶不存在,請檢查后從新輸入!endl;system(pause);四、系統(tǒng)測試主界面:管理員登陸界面:用戶登陸界面:管理員和用戶密碼修改:寫文件操作:在管理員的查詢中,可以按許多不同方式來查詢,在查詢所有記錄是,可以顯示鏈表中的各條記錄。五、心得 在這兩周的課程設計中,我遇到了許多困難,也走了很多彎路。最后也交上了一份勉強過關(guān)的答卷,但對于我來說,這份答卷是艱辛的,而我的艱汗水也是值得的! 首先,我發(fā)現(xiàn)一個團隊與一個人真的有本質(zhì)上的區(qū)別。而作為一個團隊的隊長,要想團隊能有喜人的成果,就要懂得如何劃分各自組
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 買賣合同與加工合同范例
- 保證合同范本解析
- 互換土地合同范例
- 寫真服務合同范例
- 公園懸掛燈籠合同范例
- 買賣寵物合同范例
- 代駕員工合同范例
- app開發(fā)服務合同范例
- 養(yǎng)殖鵝鴨合同范例
- 保鮮庫合作合同范例
- 人教版2025三下英語單詞表
- 職業(yè)病衛(wèi)生監(jiān)督培訓課件
- 2024年張家界市市直事業(yè)單位選調(diào)工作人員考試真題
- 2025年四川省對口招生(旅游類)考試復習題(附答案)
- 私募股權(quán)投資基金基礎知識-《私募股權(quán)投資基金基礎知識》高分通關(guān)卷5
- 校園春季傳染病預防
- 婦產(chǎn)科學(甲)知到智慧樹章節(jié)測試課后答案2024年秋浙江大學
- 醫(yī)院危險化學品安全管理
- 2024年勞動合同(30篇)
- 燃氣公司安全生產(chǎn)實施方案
- 全國職業(yè)院校技能大賽高職組(生產(chǎn)事故應急救援賽項)選拔賽考試題庫500題(含答案)
評論
0/150
提交評論