銀行賬戶管理系統(tǒng)報告書_第1頁
銀行賬戶管理系統(tǒng)報告書_第2頁
銀行賬戶管理系統(tǒng)報告書_第3頁
銀行賬戶管理系統(tǒng)報告書_第4頁
銀行賬戶管理系統(tǒng)報告書_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、合肥學院c語言課程設(shè)計報告 一、 需求分析課程設(shè)計名稱:銀行賬戶管理系統(tǒng)設(shè)計內(nèi)容:設(shè)計一個銀行賬戶管理系統(tǒng),該系統(tǒng)要求對該系統(tǒng)進行管理和維護。該系統(tǒng)具有開戶,查詢賬戶余額,銷戶,存取款和修改密碼等功能。注意對用戶的密碼進行加密。將客戶信息如姓名,身份證號碼,電話等信息作為一條記錄添加入文件中保存,從實際出發(fā),不要用虛擬的數(shù)據(jù)。該程序使用microsoft visual c+ 6.0編譯。二、算法設(shè)計、開始menu1:包括新用戶注冊和老用戶登錄功能。menu2:包括取款、存款、查詢余額、修改密碼功能。各種數(shù)據(jù)均合要求若符合要求則開戶or登錄成功,否則重新輸入數(shù)據(jù),老用戶登錄按1可進入menu2。

2、否則重新輸入數(shù)據(jù)。在menu2中按序號(15)選擇需要使用的功能,如按1選擇取款功能,按2選擇存款功能等,執(zhí)行完功能4后按1返回menu1.序號i是否在15之間退出系統(tǒng)結(jié)束yy1設(shè)計思想:本程序主要運用了數(shù)組和指針的知識,用主菜單引入各個子函數(shù),并由子函數(shù)實現(xiàn)銀行管理系統(tǒng)的初步功能。2設(shè)計表示:menu1的功能是將用戶引入新用戶注冊和老用戶登錄兩個功能,并在此之后與menu2相銜接;menu2主要針對老用戶登錄之后的功能加強,有取款,存款,查詢余額,修改密碼等子功能,并可以通過輸入功能錢的序號來引導(dǎo)客戶使用各種子功能;子函數(shù)zhuce是新客戶注冊的運行函數(shù),新用戶可以運用此函數(shù)創(chuàng)建一個新的賬號

3、并在此之后利用這個賬號進行登錄;子函數(shù)search是用來對比新注冊的賬號是否有重復(fù)的函數(shù),如果重復(fù)則新賬號創(chuàng)建失敗,如果不重復(fù)則創(chuàng)建新賬號成功,并可以在此后利用該賬號進行各種子功能;子函數(shù)add是用來將新注冊的賬號添加至文件中的函數(shù),添加到文件中才能保存該賬號以進行老用戶登錄的功能;子函數(shù)denglu是老客戶登陸的運行函數(shù),登陸之后則可以通過對比輸入的賬號和文件中的賬號是否有相同,如果有則可以進入menu2中通過選擇序號進行各個子函數(shù)的運行;子函數(shù)gongneng是用來實現(xiàn)老客戶登錄后運行各種功能的函數(shù),包括取款,存款,查詢余額,在進行完每一個子函數(shù)后可以按任意鍵推出程序。3實現(xiàn)注釋:#inc

4、lude #include #include char cfile = date.txt;/創(chuàng)建一個文件struct bankchar id10+1;char psw6+1;float money; /定義賬號,密碼,金額; menu1() printf(*歡迎使用虛擬銀行服務(wù)!*n); printf(*n); printf( | 請輸入序號 |n); printf( | 1.新用戶開戶。 |n); printf( | 2.老用戶登陸。 |n); printf( | 3.退出系統(tǒng)。 |n); printf(*n); printf(請選擇功能:n); /一級菜單,實現(xiàn)新用戶注冊和老用戶menu2

5、()printf(* 歡迎進入虛擬銀行系統(tǒng) *n);printf(*n);printf(*1.取款; *n);printf(*2.存款; *n);printf(*3.查詢余額; *n);printf(*4.返回主頁面; *n);printf(*任意鍵退出. *n);printf(*n);/二級菜單實現(xiàn)老用戶登陸后的各種功能int search(char* user, char* pwd, char* real_pwd)/將注冊的賬號與已注冊的賬號對比是否重復(fù) file* file; char user_no256, pwd_no256; file = fopen(cfile, r); if (

6、!file) return 0; while (!feof(file) if (fscanf(file, %s%sn, user_no, pwd_no) = eof) return 0; if (!strcmp(user_no, user) if (real_pwd) strcpy(real_pwd, pwd_no); return 1; fclose(file); return 0;int add(char* user, char* pwd)/如果新注冊的賬號不重復(fù),則將其添加至文件data.txt中 file* file; file = fopen(cfile, a); if (!file

7、) return 0; fprintf(file, %s %s n, user, pwd ); fclose(file); return 0;int wenjian(char* user, char* pwd ) if (search(user, pwd, null) return 0; else add(user, pwd ); return 1; zhuce()/新用戶注冊 struct bank *p; int i=0; char name30; float money; char sh18,n;p=(struct bank*)malloc(sizeof(struct bank);/p創(chuàng)

8、造動態(tài)存儲空間 printf(請輸入您的名字:);gets(name);fflush(stdin); printf(請輸入您的身份證號碼:);gets(sh);fflush(stdin); printf(請輸入您的帳號10位:n); fflush(stdin); scanf(%s,p-id); fflush(stdin); printf(請輸入您的密碼(6位數(shù)字):n); fflush(stdin); scanf(%s,p-psw); fflush(stdin); printf(請輸入您的存款:n); fflush(stdin); scanf(%f,&money); fflush(stdin)

9、; if (wenjian(p-id,p-psw) system(cls); printf(注冊成功!); printf(您的注冊信息如下:n); printf(名字:); puts(name); printf(身份證號碼:); puts(sh); printf(帳號:); puts(p-id); printf(密碼:); puts(p-psw); printf(存款); printf(%f,money); printf(按1返回主頁面. 按任意鍵退出:); fflush(stdin); scanf(%c,&n); fflush(stdin); if(n=1) system(cls); ret

10、urn 0; else exit(0);/當輸入1時返回上一級菜單,否則程序終止 else system(cls); printf(您輸入的帳號已經(jīng)存在注冊失敗!按1返回,按任意鍵退出n); scanf(%c,&n); if(n=1) system(cls); return 0; else exit(0); gongneng(char account10,char password6,float money)/實現(xiàn)老用戶登陸后的各種功能file *ps;struct bank xin100;int k=0,j=0,n;char chiose;float inmoney,outmoney;men

11、u2();fflush(stdin);scanf(%c,&chiose);fflush(stdin);ps=fopen(cfile,r);if (!ps) exit(0); if(chiose=1) printf(輸入您的取款金額:); fflush(stdin); scanf(%lf,&outmoney); fflush(stdin); while(!feof(ps) fscanf(ps, %s %s %lf,&xink.id,&xink.psw,&xink.money); k+; fclose(ps); ps=fopen(cfile,wb); if (!ps) exit(0); for (

12、j=0;j+) if (strcmp(account, xinj.id)=0)&(strcmp(password, xinj.psw)=0) xinj.money=xinj.money-outmoney; printf(%.2lfn,xinj.money); fprintf(ps, %s %s %.2lfn, xinj.id, xinj.psw, xinj.money); j+; break; /實現(xiàn)菜單2中的取款功能printf(按1返回主頁面. 按任意鍵退出:); fflush(stdin); scanf(%c,&n); fflush(stdin); if(n=1) system(cls)

13、; return 0; else exit(0); if(chiose=2) printf(輸入您的存款款金額:); fflush(stdin); scanf(%lf,&inmoney); fflush(stdin); while(!feof(ps) fscanf(ps, %s %s %lf,&xink.id,&xink.psw,&xink.money); k+; fclose(ps); ps=fopen(cfile,wb); if (!ps) exit(0); for (j=0;j+) if (strcmp(account, xinj.id)=0)&(strcmp(password, xin

14、j.psw)=0) xinj.money=xinj.money+inmoney; printf(%.2lfn,xinj.money); fprintf(ps, %s %s %.2lfn, xinj.id, xinj.psw, xinj.money); j+; break; /實現(xiàn)菜單2中的存款功能printf(按1返回主頁面. 按任意鍵退出:); fflush(stdin); scanf(%c,&n); fflush(stdin); if(n=1) system(cls); return 0; else exit(0); if(chiose=3)while(!feof(ps) fscanf(p

15、s, %s %s %lf,&xink.id,&xink.psw,&xink.money); k+; fclose(ps);ps=fopen(cfile,r);if (!ps) exit(0); for(j=0;j+) if (strcmp(account, xinj.id)=0)&(strcmp(password, xinj.psw)=0) printf(%.2lfn,xinj.money); fprintf(ps, %s %s %.2lfn, xinj.id, xinj.psw, xinj.money); j+; break; /實現(xiàn)菜單2中的查詢余額的功能printf(按1返回主頁面. 按

16、任意鍵退出:); fflush(stdin); scanf(%c,&n); fflush(stdin); if(n=1) system(cls); return 0; else exit(0); if(chiose=4) return 0; denglu()file *fp;char account10,password6,h;int m=0;char real_account10; char real_password6; float real_money=0.0; fp = fopen(cfile, r);if (!fp) exit(0); while (m=2) printf(請輸入您的

17、帳號(10位):); gets(account); fflush(stdin); printf(請輸入您的密碼(6位):); gets(password); fflush(stdin); while(fscanf(fp, %s %s %lf, &real_account, &real_password,&real_money) != eof) if (strcmp(real_account, account)=0)&(strcmp(real_password, password)=0) system(cls); printf(登陸成功!); gongneng(real_account,real

18、_password,real_money); fclose(fp); return 0; /輸入曾經(jīng)注冊過的賬號進行登陸,賬號或密碼輸入錯誤則有三次重新輸入的機會,否則退出程序 else rewind (fp); printf(您輸入的帳號不不正確!請重新輸入:n); m+; printf(請輸入您的帳號(10位):); gets(account); fflush(stdin); printf(請輸入您的密碼(6位):); gets(password); fflush(stdin); fclose(fp);printf(您輸入帳號密碼不正確已經(jīng)3次,被強制退出(按任意鍵退出)!); fflus

19、h(stdin);scanf(%c,&h);fflush(stdin);exit(0);int main() char chiose; char flag;while (flag!=n)menu1(); scanf(%c,&chiose); getchar(); if(chiose =4) while(chiose =4) printf(您的輸入有誤,請重新輸入:); scanf(%c,&chiose); getchar(); /在一級菜單中所輸入的賬號必須在15之間,否則無法進行下一步操作 if(chiose=1) system(cls); zhuce(); printf (繼續(xù)請按任意鍵,

20、退出請按n); scanf (%c,&flag); if(chiose=2) system(cls); denglu(); printf (繼續(xù)請按任意鍵,退出請按n); scanf (%c,&flag); if(chiose=3) printf(謝謝您的使用!); exit(0); /一級菜單中按3直接退出程序4算法設(shè)計中一些新的想法:在本次程序的編寫過程中,用了清除緩沖的新想法,即fflush(stdin),清除緩沖的不走可以代替回車和字符的功能;另外,我還對頭文件“conio.h”的功能進行查詢,發(fā)現(xiàn)其為屏幕操作系列函數(shù)的頭文件。在程序的運行中也有幾處不足,在menu2中不能在使用一個子

21、函數(shù)后再返回菜單調(diào)用另一個子函數(shù),在menu2的三項功能取款、存款、查詢余額中,無論輸入什么數(shù)字都會顯示-1720304.00,也就是不能正確顯示,賬戶中的余額。三、 用戶手冊在進入程序后首先將會出現(xiàn)menu1的菜單,共有新用戶注冊和老用戶登錄兩個功能,可按序號進行功能選擇,此時序號數(shù)只能為12,否則將會直接跳出系統(tǒng);新用戶注冊完之后可以進行老用戶的賬號登錄,此時,對于輸入進的老賬戶賬號和密碼將會與之前文件中所輸入的所有新賬戶賬號和密碼做對比,若有相同的則老賬號可以成功登錄,否則將會輸出“您所輸入的賬號/密碼有誤”;若賬號成功登錄將會將程序引入menu2,此時,使用者再次可以通過選擇序號進行功能選擇,序號只能為13,否則將會直接跳出系統(tǒng);按1進入取款功能,輸入要取的金額,打印出賬戶中剩下的金額;按2進入存款功能,輸入要存的金額,打印出賬戶中剩下的金額;按3進入查詢余額,程序直接打印出賬戶中的余額。四、 調(diào)試及測試一開始程序剛寫完時有不少錯誤,在老師和同學的指導(dǎo)下一一把錯誤改正過來,最終程序才能

溫馨提示

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

評論

0/150

提交評論