銀行儲蓄管理系統(tǒng)--童侃.docx_第1頁
銀行儲蓄管理系統(tǒng)--童侃.docx_第2頁
銀行儲蓄管理系統(tǒng)--童侃.docx_第3頁
銀行儲蓄管理系統(tǒng)--童侃.docx_第4頁
銀行儲蓄管理系統(tǒng)--童侃.docx_第5頁
已閱讀5頁,還剩21頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、 C+ 課程設(shè)計報告題 目:銀行儲蓄管理系統(tǒng)-主函數(shù)、 類的定義、文件讀寫、密碼修改 學(xué)生姓名: 童 侃 學(xué) 號: 200917010241 專業(yè)班級: 計科09102班 同組姓名: 徐木蘭、熊敏 指導(dǎo)教師: 易 明 設(shè)計時間:2010年下學(xué)期第34周 指導(dǎo)老師意見: 評定成績: 簽名: 日期:一、系統(tǒng)簡介我們制作的銀行儲蓄管理系統(tǒng),是根據(jù)我們對現(xiàn)有銀行系統(tǒng)工作的了解來構(gòu)造并將其具體實現(xiàn)的。從大體上講,它包括管理員操作和用戶操作;詳細(xì)的來說,我們將其分為六個模塊,分別為:主函數(shù)、類定義和鏈表的建立、文件讀寫、常規(guī)操作(其包括開戶、銷戶、掛失和解掛、存款取款、轉(zhuǎn)賬)、界面設(shè)計(包括主界面和子界面

2、)以及信息查詢和修改(如存取、款等信息的查詢,用戶等信息的修改)。以下將逐一簡單介紹:1)主函數(shù)中主要包含一些頭文件以及子文件,它負(fù)責(zé)調(diào)用其中的主界面,并引出各類操作函數(shù),也將各類信息存入文件(或從文件中刪除)。2)系統(tǒng)中,我們定義類三個類,分別為賬戶類(account)、用戶類(user)、存取款類(s-d),每一個類都定義了其數(shù)據(jù)成員和成員函數(shù),為以后的許多的操作做好了鋪墊。我們分別為每一個類創(chuàng)立了一個鏈表,為其順利進行文件讀寫打下伏筆。3)在文件讀寫這一塊,我們分別做了三個讀和寫的函數(shù),將每個類的文件讀寫分開來,這樣在有問題出現(xiàn)時,能更清晰地辨別。4)常規(guī)操作主要包括:開戶、銷戶、掛失、

3、解掛、存款、取款和轉(zhuǎn)賬,這也是主要的功能模塊。5)在此系統(tǒng)中,我們設(shè)計了許多界面,主要是主界面,主界面中包括管理員登陸和用戶登錄兩個選擇,選擇后,因調(diào)用不同函數(shù)而出現(xiàn)不同的子界面。6)最后一個模塊是信息查詢,由于在類的定義時,我們給出的數(shù)據(jù)成員很充足,因此在查詢用戶信息時,我們可以有不同的查詢方式。比如按賬號查詢,按姓名查詢、按身份證號查詢、按存取款信息查詢等等??偟膩碚f,我們的系統(tǒng)還算是比較完善,但也還有許多值得修改的地方。二、系統(tǒng)設(shè)計功能模塊圖以及流程圖 系統(tǒng)的層次方框圖(圖1):轉(zhuǎn)賬取款存款查詢修改密碼掛失解掛普通用戶登陸銀行儲蓄管理系統(tǒng)添加管理員開戶銷戶查詢信息修改管理員登陸修改密碼登

4、陸界面流程圖(圖2)修改信息流程圖(圖3):數(shù)據(jù)流程圖(圖4):重填 存款流程圖(4-1):填出更新存款信息表錯驗收存款單儲戶存款單存款單(存折)存不款要信密息碼儲戶打印存單處理存款存單存款信息 取款流程圖(4-2):重輸重填儲戶處理取款更新余額打印清單儲戶 填出 表錯核對密碼驗收存款單存款單存款單取款信息三、系統(tǒng)實現(xiàn)1)主函數(shù)#include<iostream>/#include<string>#include<fstream>/#include <iomanip> /setw(),setiosflags(ios:left)using name

5、space std;#include <conio.h>#include"11.h"#include"13.h"#include"14.h"#include"16.h"#include"12.h"#include"15.h"int main()read1();read2();read3(); switch(first_face() case 1: pass1(); /管理員登錄 break; case 2: pass2(); break; case 3: cout

6、<<endl<<"tt退出系統(tǒng),再見!"<<endl; exit(0); return 0;2)類定義類定義中,每一個類有許多數(shù)據(jù)成員,這是為方便查詢而設(shè)置的,get和set函數(shù)是為便于修改信息而設(shè)置的。class account /賬戶類string account_number; /卡號int account_level; /賬號狀態(tài)(已注銷0/未注銷1)string opendate; /開戶日期int status; /掛失0&沒掛失1public: string get_ano();void set_ano(string

7、 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=NULL;account *x1=NULL;class user /用戶類 string username; /用戶姓名string account_number; /賬號char password2

8、0; /密碼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 * get_password();void set_phone(string phone_no1);string get_phone(); string get_unit();void set_unit(s

9、tring 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; /指向自己的指針;user *head2=NULL;user *p2=NULL;user *x2=NULL;class s_d /存取類 string username; /用戶姓名string accou

10、nt_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(string ano);string get_time();void set_time(string timel);int get_money2();void set_money2(int

11、 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:get_opendate()return opendate;void account:set_opendate(string opendatel)opendate =opendatel;i

12、nt 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()return username;void user:set_na(string name1)username=name1;char * user:get_password()return p

13、assword;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 user:set_unit(string unitl)unit=unitl;string user:get_id()return userID;void user:set_id(str

14、ing 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_ano()return account_number;void user:set_ano(string ano)account_number=ano; string s_d:get_na()

15、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 timel)time=timel;int s_d:get_type()return type;void s_d:set_type(int typel)type=typel;int s_d

16、: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 read1() /對account的讀操作/account *head=NULL;ifstream fin("account.txt");if(!fin)cout<

17、<"打開文件失敗"<<endl;cout<<"開始讀文件,本操作將清空內(nèi)存鏈表數(shù)據(jù)."<<endl;int i,j=0;fin>>i;/從文件讀入紀(jì)錄條數(shù)string t,s;int r,o;for(j=0;j<i;j+)account *x= new account;fin>>t>>r>>s>>o;/從文件讀入一條用戶紀(jì)錄到局部變量x->set_ano(t);/將臨時變量中的值填入鏈表結(jié)點x->set_level(r);x->s

18、et_opendate(s);x->set_status(o);x->next=head1;head1=x;cout<<endl<<"讀文件成功"<<endl; fin.close();void read2() /對user的讀操作/user *head=NULL;ifstream fin("user.txt");if(!fin)cout<<"打開文件失敗"<<endl;cout<<"開始讀文件,本操作將清空內(nèi)存鏈表數(shù)據(jù)."<

19、<endl;int i,j=0;fin>>i;/從文件讀入紀(jì)錄條數(shù)string t,n,s,b,c,d;char r20;int q; for(j=0;j<i;j+)user *x= new user;fin>>t>>n>>r>>s>>q>>b>>c>>d;/從文件讀入一條用戶紀(jì)錄到局部變量/r="*"x->set_na(t);/將臨時變量中的值填入鏈表結(jié)點x->set_ano(n); x->set_password(r); x->

20、set_id(s);x->set_ulevel(q);x->set_unit(b);x->set_phone(c);x->set_ad(d);x->next=head2;head2=x;cout<<endl<<"讀文件成功"<<endl; fin.close();void read3() /對s-d的讀操作head3=NULL;ifstream fin("s_d.txt");if(!fin)cout<<"打開文件失敗"<<endl;cout<

21、;<"開始讀文件,本操作將清空內(nèi)存鏈表數(shù)據(jù)."<<endl;int i,j=0;fin>>i;/從文件讀入紀(jì)錄條數(shù)string t,r,s;int q,a,o;for(j=0;j<i;j+)s_d *x= new s_d;fin>>t>>r>>s>>q>>o>>a;/從文件讀入一條用戶紀(jì)錄到局部變量x->set_na(t); x->set_ano(r);/將臨時變量中的值填入鏈表結(jié)點x->set_time(s);x->set_money1(q)

22、;x->set_money2(o);x->set_type(a);cout<<x->get_na()<<" "<<x->get_ano()<<" "<<x->get_time()<<" "<<x->get_money1()<<" "<<x->get_money2()<<" "<<x->get_type()<<

23、;'n'x->next=head3;head3=x;cout<<endl<<"讀文件成功"<<endl; fin.close();void write1()/將account內(nèi)存鏈表中的數(shù)據(jù)存入硬盤文件ofstream fout("account.txt");if(!fout)cout<<"打開文件失敗"<<endl;return;cout<<"開始寫文件,本操作將清空硬盤文件數(shù)據(jù)."<<endl;int i=

24、0;account *p=NULL; p=head1; while(p!=NULL)/計算鏈表中共有多少個節(jié)點 i+; p=p->next; fout<<i<<'n' p=head1; while(p!=NULL)/將鏈表中的結(jié)點依次存入文件 fout<<p->get_ano()<<" "<<p->get_level()<<" "<<p->get_opendate()<<" "<<p-&g

25、t;get_status()<<'n' p=p->next; cout<<"寫文件成功"<<endl; fout.close();void write2()/將user內(nèi)存鏈表中的數(shù)據(jù)存入硬盤文件ofstream fout("user.txt");if(!fout)cout<<"打開文件失敗"<<endl;return;cout<<"開始寫文件,本操作將清空硬盤文件數(shù)據(jù)."<<endl;int i=0;user

26、 *p=NULL; p=head2; while(p!=NULL)/計算鏈表中共有多少個節(jié)點 i+; p=p->next; fout<<i<<'n' p=head2; while(p!=NULL)/將鏈表中的結(jié)點依次存入文件 fout<<p->get_na()<<" "<<p->get_ano()<<" "<<p->get_password()<<" "<<p->get_id()&l

27、t;<" "<<p->get_ulevel()<<" "<<p->get_unit()<<" "<<p->get_phone()<<" "<<p->get_ad()<<'n' p=p->next; cout<<"寫文件成功"<<endl; fout.close();void write3()/將s-d內(nèi)存鏈表中的數(shù)據(jù)存入硬盤文

28、件ofstream fout("s_d.txt");if(!fout)cout<<"打開文件失敗"<<endl;return;cout<<"開始寫文件,本操作將清空硬盤文件數(shù)據(jù)."<<endl;int i=0;s_d *p=NULL; p=head3; while(p!=NULL)/計算鏈表中共有多少個節(jié)點 i+; p=p->next; fout<<i<<'n' p=head3; while(p!=NULL)/將鏈表中的結(jié)點依次存入文件 fo

29、ut<<p->get_na()<<" "<<p->get_ano()<<" "<<p->get_time()<<" "<<p->get_money1()<<" "<<p->get_money2()<<" "<<p->get_type()<<'n' p=p->next; cout<<&q

30、uot;寫文件成功"<<endl; fout.close();4)修改密碼void enter() /管理員修改密碼string na;char nu120;char nu220;p2=head2;cout<<"請輸入您的用戶名:"cin>>na;while(p2!=NULL)if(na=p2->get_na()break;elsep2=p2->next;if(p2!=NULL)cout<<"請重新設(shè)置您的密碼:"cin>>nu1;cout<<endl<&

31、lt;"請再次輸入密碼:"cin>>nu2;while(strcmp(nu1,nu2)!=0)cout<<"兩次輸入密碼不一致,請重新輸入:"<<endl;cout<<"請重新設(shè)置您的密碼:"cin>>nu1;cout<<endl<<"請再次輸入密碼:"cin>>nu2;p2->set_password(nu1);strcpy(p2->get_password(),nu1);cout<<"

32、;重設(shè)密碼成功!"<<endl;elsecout<<"對不起,該用戶不存在,請檢查后從新輸入!"<<endl;system("pause");void enter1(string no) /用戶修改密碼char nu120;char nu220;p2=head2;while(p2!=NULL)if(no=p2->get_ano()break;elsep2=p2->next;if(p2!=NULL)cout<<"請重新設(shè)置您的密碼:"cin>>nu1;co

33、ut<<endl<<"請再次輸入密碼:"cin>>nu2;while(strcmp(nu1,nu2)!=0) cout<<"兩次輸入密碼不一致,請重新輸入:"<<endl;cout<<"請重新設(shè)置您的密碼:"cin>>nu1;cout<<endl<<"請再次輸入密碼:"cin>>nu2;p2->set_password(nu1);strcpy(p2->get_password(),nu1);cout<<"重設(shè)密碼成功!"<<endl;

溫馨提示

  • 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)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論