C語言ATM程序設(shè)計_第1頁
C語言ATM程序設(shè)計_第2頁
C語言ATM程序設(shè)計_第3頁
C語言ATM程序設(shè)計_第4頁
C語言ATM程序設(shè)計_第5頁
已閱讀5頁,還剩13頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、C語言程序?qū)嵺`實(shí)驗(yàn)報告姓 名學(xué) 號班 級指 導(dǎo) 教 師開 設(shè) 學(xué) 期開 設(shè) 時 間實(shí)驗(yàn)題目自動取款機(jī)程序設(shè)計實(shí)驗(yàn)日期評 定 成 績評定人簽字評 定 日 期一、實(shí)驗(yàn)?zāi)康?.函數(shù)的調(diào)用2.結(jié)構(gòu)體的使用3.文件的應(yīng)用:打開、關(guān)閉、輸入、輸出等4.宏定義二、實(shí)驗(yàn)內(nèi)容與實(shí)驗(yàn)步驟實(shí)驗(yàn)內(nèi)容、原理分析1. 給出數(shù)據(jù)結(jié)構(gòu)或函數(shù)定義結(jié)構(gòu)體:struct clientslong int card_number,card_password;char name20;float money;yonghu3;card_number:銀行卡號card_password:密碼name:用戶名money:卡內(nèi)金額自定義函數(shù):vo

2、id fuction(float,int);用于登陸后的操作2. 用流程圖表示出來程序設(shè)計的思想開始用戶文件是否存在創(chuàng)建文件輸入用戶信息信息是否重復(fù)輸入卡號和密碼錯誤是否超過三次輸入信息是否正確輸入0輸入其他輸入5輸入4輸入3輸入2存款輸入1輸入錯誤修改密碼顯示菜單充話費(fèi)取款結(jié)束3給出具體實(shí)驗(yàn)步驟#include #include #define N 3 /*用戶人數(shù)*/struct clientslong int card_number,card_password;char name20;float money;yonghuN;FILE *fp;int i;void fuction(floa

3、t,int);void main()int j,number,password,times1=3,times2=3;printf( 歡迎使用中國建設(shè)銀行自動取款機(jī)!n);fp = fopen(clients.txt,a+);if(getw(fp)=EOF)printf(用戶文件未設(shè)置!n);for(i=0;iN;i+) /*文件不存在時,輸入用戶信息*/printf(請輸入第%d位用戶的信息:n,i+1);printf(銀行卡號密碼用戶名卡內(nèi)金額n);scanf(%d %d %s %f,&yonghui.card_number,&yonghui.card_password,yonghui.na

4、me,&yonghui.money);if(i=1)while(yonghui.card_number=yonghui-1.card_number)|(yonghui.card_password=yonghui-1.card_password)printf(輸入信息有重復(fù)!請重新輸入n);printf(請輸入第%d位用戶的信息:n,i+1);printf(銀行卡號密碼用戶名卡內(nèi)金額n);scanf(%d %d %s %f,&yonghui.card_number,&yonghui.card_password,,&yonghui.money);if(i=2)while(y

5、onghui.card_number=yonghui-1.card_number)|(yonghui.card_password=yonghui-1.card_password)|(yonghui.card_number=yonghui-2.card_number)|(yonghui.card_password=yonghui-2.card_password)printf(輸入信息有重復(fù)!請重新輸入n);printf(請輸入第%d位用戶的信息:n,i+1);printf(銀行卡號密碼用戶名卡內(nèi)金額n);scanf(%d %d %s %f,&yonghui.card_number,&yonghu

6、i.card_password,,&yonghui.money);fprintf(fp,%d %d %s %f,yonghui.card_number,yonghui.card_password,,yonghui.money);putc(n,fp);fclose(fp);printf(nn 請登錄系統(tǒng)n); /*登錄系統(tǒng),輸入卡號和密碼*/printf(請輸入您的銀行卡號:n);scanf(%d,&number);printf(請輸入您的密碼:n);scanf(%d,&password);fp = fopen(clients.txt,r+);fo

7、r(i=0;iN;i+)fscanf(fp,%d %d %s %f,&yonghui.card_number,&yonghui.card_password,,&yonghui.money);fclose(fp);for(i=0;iN;i+) /*判斷卡號及密碼是否匹配*/if(number!=yonghu0.card_number)&(number!=yonghu1.card_number)&(number!=yonghu2.card_number)if(times1-1)!=0)printf(該用戶不存在!您還有%d次嘗試機(jī)會n,times1-1);printf(請輸

8、入您的銀行卡號:n);scanf(%d,&number);printf(請輸入您的密碼:n);scanf(%d,&password);i=-1;elseprintf(嘗試失敗!請按任意鍵退出:n);exit(0);times1-;elseif(number=yonghui.card_number)if(password=yonghui.card_password)printf( %s登陸成功!請繼續(xù)您的操作n,);j=i;i=5; /*登陸成功,退出循環(huán)*/elseif(times2-1)!=0)printf(密碼輸入錯誤!您還有%d次嘗試機(jī)會n,times2-1);p

9、rintf(請輸入您的密碼:n);scanf(%d,&password);i=-1;elseprintf(嘗試失敗!請按任意鍵退出:n);exit(0);times2-;fuction(yonghuj.money,j);void fuction(float m,int k)float saved_money,fetched_money,payment;int phone_num,x,old_password,new_password;while(1)printf(1.存款.n2.取款.n3.充話費(fèi).n4.修改密碼.n5.顯示菜單.n0.退出系統(tǒng).n);scanf(%d,&x);switch(x

10、)case 0:printf(退出系統(tǒng)!);exit(0);case 1:printf(卡內(nèi)金額: %fn,m);printf(請輸入存款金額:n);scanf(%f,&saved_money);while(saved_money0)printf(輸入有誤!請重新輸入!n);printf(請輸入存款金額:n);scanf(%f,&saved_money);m += saved_money;printf(操作成功!卡內(nèi)余額為: %fn,m);yonghuk.money = m;fp = fopen(clients.txt,w+);for(i=0;iN;i+)fprintf(fp,%d %d %s

11、 %f,yonghui.card_number,yonghui.card_password,,yonghui.money);putc(n,fp);fclose(fp);break;case 2:printf(卡內(nèi)金額: %fn,m);printf(請輸入取款金額:n);scanf(%f,&fetched_money);m -= fetched_money;while(fetched_money0)|(m0)printf(輸入有誤!請重新輸入!n);m += fetched_money;printf(請輸入取款金額:n);scanf(%f,&fetched_money);

12、m -= fetched_money;printf(操作成功!卡內(nèi)余額為: %fn,m);yonghuk.money = m;fp = fopen(clients.txt,w+);for(i=0;iN;i+)fprintf(fp,%d %d %s %f,yonghui.card_number,yonghui.card_password,,yonghui.money);putc(n,fp);fclose(fp);break;case 3:printf(卡內(nèi)金額: %fn,m);printf(請輸入電話號碼:n);scanf(%d,&phone_num);printf(請輸

13、入所交話費(fèi)金額:n);scanf(%f,&payment);m -= payment;while(payment0)|(m0)printf(輸入有誤!請重新輸入!n);m += payment;printf(請輸入所交話費(fèi)金額:n);scanf(%f,&payment);m -= payment;printf(操作成功!卡內(nèi)余額為: %fn,m);yonghuk.money = m;fp = fopen(clients.txt,w+);for(i=0;iN;i+)fprintf(fp,%d %d %s %f,yonghui.card_number,yonghui.card_password,y

14、,yonghui.money);putc(n,fp);fclose(fp);break;case 4:while(1)printf(請輸入原密碼:n);scanf(%d,&old_password);if(old_password=yonghuk.card_password)printf(請輸入新密碼:n);scanf(%d,&new_password);printf(密碼修改成功!n);yonghuk.card_password = new_password;fp = fopen(clients.txt,w+);for(i=0;iN;i+)fprintf(fp,%d %

15、d %s %f,yonghui.card_number,yonghui.card_password,,yonghui.money);putc(n,fp);fclose(fp);break;elseprintf(密碼輸入錯誤!n);break;case 5:break;default:printf(輸入有誤!請重新輸入!n);break;三、實(shí)驗(yàn)過程與結(jié)果分析1.現(xiàn)象:輸入用戶信息后,在登錄系統(tǒng)時,輸入第一個用戶的信息,提示該用戶不存在解決方法:fp = fopen(clients.txt,r+);for(i=0;i0時,提示剩余嘗試機(jī)會,當(dāng)times-1=0時,退出程序

16、3.現(xiàn)象:存取款或充話費(fèi)時,輸入負(fù)數(shù)仍能運(yùn)行解決方法:增加循環(huán):while(saved_money0)printf(輸入有誤!請重新輸入!n);printf(請輸入存款金額:n);scanf(%f,&saved_money);while(fetched_money0)|(m0)printf(輸入有誤!請重新輸入!n);m += fetched_money;printf(請輸入取款金額:n);scanf(%f,&fetched_money);m -= fetched_money;while(payment0)|(m0)printf(輸入有誤!請重新輸入!n);m += payment;printf(請輸入所交話

溫馨提示

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

評論

0/150

提交評論