版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、合肥學(xué)院c語(yǔ)言課程設(shè)計(jì)報(bào)告 一、 需求分析課程設(shè)計(jì)名稱(chēng):銀行賬戶(hù)管理系統(tǒng)設(shè)計(jì)內(nèi)容:設(shè)計(jì)一個(gè)銀行賬戶(hù)管理系統(tǒng),該系統(tǒng)要求對(duì)該系統(tǒng)進(jìn)行管理和維護(hù)。該系統(tǒng)具有開(kāi)戶(hù),查詢(xún)賬戶(hù)余額,銷(xiāo)戶(hù),存取款和修改密碼等功能。注意對(duì)用戶(hù)的密碼進(jìn)行加密。將客戶(hù)信息如姓名,身份證號(hào)碼,電話等信息作為一條記錄添加入文件中保存,從實(shí)際出發(fā),不要用虛擬的數(shù)據(jù)。該程序使用microsoft visual c+ 6.0編譯。二、算法設(shè)計(jì)、開(kāi)始menu1:包括新用戶(hù)注冊(cè)和老用戶(hù)登錄功能。menu2:包括取款、存款、查詢(xún)余額、修改密碼功能。各種數(shù)據(jù)均合要求若符合要求則開(kāi)戶(hù)or登錄成功,否則重新輸入數(shù)據(jù),老用戶(hù)登錄按1可進(jìn)入menu2。
2、否則重新輸入數(shù)據(jù)。在menu2中按序號(hào)(15)選擇需要使用的功能,如按1選擇取款功能,按2選擇存款功能等,執(zhí)行完功能4后按1返回menu1.序號(hào)i是否在15之間退出系統(tǒng)結(jié)束yy1設(shè)計(jì)思想:本程序主要運(yùn)用了數(shù)組和指針的知識(shí),用主菜單引入各個(gè)子函數(shù),并由子函數(shù)實(shí)現(xiàn)銀行管理系統(tǒng)的初步功能。2設(shè)計(jì)表示:menu1的功能是將用戶(hù)引入新用戶(hù)注冊(cè)和老用戶(hù)登錄兩個(gè)功能,并在此之后與menu2相銜接;menu2主要針對(duì)老用戶(hù)登錄之后的功能加強(qiáng),有取款,存款,查詢(xún)余額,修改密碼等子功能,并可以通過(guò)輸入功能錢(qián)的序號(hào)來(lái)引導(dǎo)客戶(hù)使用各種子功能;子函數(shù)zhuce是新客戶(hù)注冊(cè)的運(yùn)行函數(shù),新用戶(hù)可以運(yùn)用此函數(shù)創(chuàng)建一個(gè)新的賬號(hào)
3、并在此之后利用這個(gè)賬號(hào)進(jìn)行登錄;子函數(shù)search是用來(lái)對(duì)比新注冊(cè)的賬號(hào)是否有重復(fù)的函數(shù),如果重復(fù)則新賬號(hào)創(chuàng)建失敗,如果不重復(fù)則創(chuàng)建新賬號(hào)成功,并可以在此后利用該賬號(hào)進(jìn)行各種子功能;子函數(shù)add是用來(lái)將新注冊(cè)的賬號(hào)添加至文件中的函數(shù),添加到文件中才能保存該賬號(hào)以進(jìn)行老用戶(hù)登錄的功能;子函數(shù)denglu是老客戶(hù)登陸的運(yùn)行函數(shù),登陸之后則可以通過(guò)對(duì)比輸入的賬號(hào)和文件中的賬號(hào)是否有相同,如果有則可以進(jìn)入menu2中通過(guò)選擇序號(hào)進(jìn)行各個(gè)子函數(shù)的運(yùn)行;子函數(shù)gongneng是用來(lái)實(shí)現(xiàn)老客戶(hù)登錄后運(yùn)行各種功能的函數(shù),包括取款,存款,查詢(xún)余額,在進(jìn)行完每一個(gè)子函數(shù)后可以按任意鍵推出程序。3實(shí)現(xiàn)注釋?zhuān)?inc
4、lude #include #include char cfile = date.txt;/創(chuàng)建一個(gè)文件struct bankchar id10+1;char psw6+1;float money; /定義賬號(hào),密碼,金額; menu1() printf(*歡迎使用虛擬銀行服務(wù)!*n); printf(*n); printf( | 請(qǐng)輸入序號(hào) |n); printf( | 1.新用戶(hù)開(kāi)戶(hù)。 |n); printf( | 2.老用戶(hù)登陸。 |n); printf( | 3.退出系統(tǒng)。 |n); printf(*n); printf(請(qǐng)選擇功能:n); /一級(jí)菜單,實(shí)現(xiàn)新用戶(hù)注冊(cè)和老用戶(hù)menu2
5、()printf(* 歡迎進(jìn)入虛擬銀行系統(tǒng) *n);printf(*n);printf(*1.取款; *n);printf(*2.存款; *n);printf(*3.查詢(xún)余額; *n);printf(*4.返回主頁(yè)面; *n);printf(*任意鍵退出. *n);printf(*n);/二級(jí)菜單實(shí)現(xiàn)老用戶(hù)登陸后的各種功能int search(char* user, char* pwd, char* real_pwd)/將注冊(cè)的賬號(hào)與已注冊(cè)的賬號(hào)對(duì)比是否重復(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)/如果新注冊(cè)的賬號(hào)不重復(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()/新用戶(hù)注冊(cè) struct bank *p; int i=0; char name30; float money; char sh18,n;p=(struct bank*)malloc(sizeof(struct bank);/p創(chuàng)
8、造動(dòng)態(tài)存儲(chǔ)空間 printf(請(qǐng)輸入您的名字:);gets(name);fflush(stdin); printf(請(qǐng)輸入您的身份證號(hào)碼:);gets(sh);fflush(stdin); printf(請(qǐng)輸入您的帳號(hào)10位:n); fflush(stdin); scanf(%s,p-id); fflush(stdin); printf(請(qǐng)輸入您的密碼(6位數(shù)字):n); fflush(stdin); scanf(%s,p-psw); fflush(stdin); printf(請(qǐng)輸入您的存款:n); fflush(stdin); scanf(%f,&money); fflush(stdin)
9、; if (wenjian(p-id,p-psw) system(cls); printf(注冊(cè)成功!); printf(您的注冊(cè)信息如下:n); printf(名字:); puts(name); printf(身份證號(hào)碼:); puts(sh); printf(帳號(hào):); puts(p-id); printf(密碼:); puts(p-psw); printf(存款); printf(%f,money); printf(按1返回主頁(yè)面. 按任意鍵退出:); fflush(stdin); scanf(%c,&n); fflush(stdin); if(n=1) system(cls); ret
10、urn 0; else exit(0);/當(dāng)輸入1時(shí)返回上一級(jí)菜單,否則程序終止 else system(cls); printf(您輸入的帳號(hào)已經(jīng)存在注冊(cè)失敗!按1返回,按任意鍵退出n); scanf(%c,&n); if(n=1) system(cls); return 0; else exit(0); gongneng(char account10,char password6,float money)/實(shí)現(xiàn)老用戶(hù)登陸后的各種功能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; /實(shí)現(xiàn)菜單2中的取款功能printf(按1返回主頁(yè)面. 按任意鍵退出:); 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; /實(shí)現(xiàn)菜單2中的存款功能printf(按1返回主頁(yè)面. 按任意鍵退出:); 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; /實(shí)現(xiàn)菜單2中的查詢(xún)余額的功能printf(按1返回主頁(yè)面. 按
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(請(qǐng)輸入您的
17、帳號(hào)(10位):); gets(account); fflush(stdin); printf(請(qǐng)輸入您的密碼(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)注冊(cè)過(guò)的賬號(hào)進(jìn)行登陸,賬號(hào)或密碼輸入錯(cuò)誤則有三次重新輸入的機(jī)會(huì),否則退出程序 else rewind (fp); printf(您輸入的帳號(hào)不不正確!請(qǐng)重新輸入:n); m+; printf(請(qǐng)輸入您的帳號(hào)(10位):); gets(account); fflush(stdin); printf(請(qǐng)輸入您的密碼(6位):); gets(password); fflush(stdin); fclose(fp);printf(您輸入帳號(hào)密碼不正確已經(jīng)3次,被強(qiáng)制退出(按任意鍵退出)!); 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(您的輸入有誤,請(qǐng)重新輸入:); scanf(%c,&chiose); getchar(); /在一級(jí)菜單中所輸入的賬號(hào)必須在15之間,否則無(wú)法進(jìn)行下一步操作 if(chiose=1) system(cls); zhuce(); printf (繼續(xù)請(qǐng)按任意鍵,
20、退出請(qǐng)按n); scanf (%c,&flag); if(chiose=2) system(cls); denglu(); printf (繼續(xù)請(qǐng)按任意鍵,退出請(qǐng)按n); scanf (%c,&flag); if(chiose=3) printf(謝謝您的使用!); exit(0); /一級(jí)菜單中按3直接退出程序4算法設(shè)計(jì)中一些新的想法:在本次程序的編寫(xiě)過(guò)程中,用了清除緩沖的新想法,即fflush(stdin),清除緩沖的不走可以代替回車(chē)和字符的功能;另外,我還對(duì)頭文件“conio.h”的功能進(jìn)行查詢(xún),發(fā)現(xiàn)其為屏幕操作系列函數(shù)的頭文件。在程序的運(yùn)行中也有幾處不足,在menu2中不能在使用一個(gè)子
21、函數(shù)后再返回菜單調(diào)用另一個(gè)子函數(shù),在menu2的三項(xiàng)功能取款、存款、查詢(xún)余額中,無(wú)論輸入什么數(shù)字都會(huì)顯示-1720304.00,也就是不能正確顯示,賬戶(hù)中的余額。三、 用戶(hù)手冊(cè)在進(jìn)入程序后首先將會(huì)出現(xiàn)menu1的菜單,共有新用戶(hù)注冊(cè)和老用戶(hù)登錄兩個(gè)功能,可按序號(hào)進(jìn)行功能選擇,此時(shí)序號(hào)數(shù)只能為12,否則將會(huì)直接跳出系統(tǒng);新用戶(hù)注冊(cè)完之后可以進(jìn)行老用戶(hù)的賬號(hào)登錄,此時(shí),對(duì)于輸入進(jìn)的老賬戶(hù)賬號(hào)和密碼將會(huì)與之前文件中所輸入的所有新賬戶(hù)賬號(hào)和密碼做對(duì)比,若有相同的則老賬號(hào)可以成功登錄,否則將會(huì)輸出“您所輸入的賬號(hào)/密碼有誤”;若賬號(hào)成功登錄將會(huì)將程序引入menu2,此時(shí),使用者再次可以通過(guò)選擇序號(hào)進(jìn)行功能選擇,序號(hào)只能為13,否則將會(huì)直接跳出系統(tǒng);按1進(jìn)入取款功能,輸入要取的金額,打印出賬戶(hù)中剩下的金額;按2進(jìn)入存款功能,輸入要存的金額,打印出賬戶(hù)中剩下的金額;按3進(jìn)入查詢(xún)余額,程序直接打印出賬戶(hù)中的余額。四、 調(diào)試及測(cè)試一開(kāi)始程序剛寫(xiě)完時(shí)有不少錯(cuò)誤,在老師和同學(xué)的指導(dǎo)下一一把錯(cuò)誤改正過(guò)來(lái),最終程序才能
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025服務(wù)員聘用合同
- 2025借款合同填寫(xiě)注意事項(xiàng)
- 施工安全合同書(shū)(乙方承擔(dān)全部責(zé)任版)
- 課題申報(bào)參考:黎巴嫩女性文學(xué)中的性別敘事與國(guó)家建構(gòu)
- 課題申報(bào)參考:老齡化背景下衰老信念對(duì)年長(zhǎng)員工工作績(jī)效影響的機(jī)制研究
- 2025年新世紀(jì)版選修1歷史上冊(cè)階段測(cè)試試卷
- 2025年外研版三年級(jí)起點(diǎn)選擇性必修三語(yǔ)文上冊(cè)月考試卷
- 2024年華東師大版八年級(jí)地理上冊(cè)月考試卷含答案
- 2025年人教新起點(diǎn)八年級(jí)歷史下冊(cè)月考試卷含答案
- 2025年度物聯(lián)網(wǎng)設(shè)備制造與銷(xiāo)售合同范本4篇
- 2024年山東省泰安市高考物理一模試卷(含詳細(xì)答案解析)
- 護(hù)理指南手術(shù)器械臺(tái)擺放
- 腫瘤患者管理
- 2025年中國(guó)航空部附件維修行業(yè)市場(chǎng)競(jìng)爭(zhēng)格局、行業(yè)政策及需求規(guī)模預(yù)測(cè)報(bào)告
- 2025春夏運(yùn)動(dòng)戶(hù)外行業(yè)趨勢(shì)白皮書(shū)
- 《法制宣傳之盜竊罪》課件
- 通信工程單位勞動(dòng)合同
- 2024年醫(yī)療器械經(jīng)營(yíng)質(zhì)量管理規(guī)范培訓(xùn)課件
- 零部件測(cè)繪與 CAD成圖技術(shù)(中職組)沖壓機(jī)任務(wù)書(shū)
- 2024年計(jì)算機(jī)二級(jí)WPS考試題庫(kù)380題(含答案)
- 高低壓配電柜產(chǎn)品營(yíng)銷(xiāo)計(jì)劃書(shū)
評(píng)論
0/150
提交評(píng)論