c語言程序設(shè)計atm自動取款機實驗報告材料_第1頁
c語言程序設(shè)計atm自動取款機實驗報告材料_第2頁
c語言程序設(shè)計atm自動取款機實驗報告材料_第3頁
已閱讀5頁,還剩56頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、課程設(shè)計報告NDATH CHIlHAUhlisrfflSqTVOF ClfNCE AHO TE tHNOLQGV課程類別:本科課程名稱:程序設(shè)計基礎(chǔ)(C語言)課程代號:指導(dǎo)教師:銀行ATM自動取款機系統(tǒng)課程設(shè)計姓名:學(xué)號:姓名:學(xué)號:姓名:學(xué)號:學(xué)院:班級:目 錄1. 課程設(shè)計內(nèi)容2. 課程設(shè)計要求3. 可行性研究4. 需求分析5. 概要設(shè)計5.1功能模塊圖5.2功能模塊描述5.3數(shù)據(jù)結(jié)構(gòu)6. 詳細(xì)設(shè)計6.1功能流程圖6.2重點設(shè)計7. 測試與調(diào)試8. 總結(jié)8.1 心得體會8.2不足與改進9. 參考文獻1. 課程設(shè)計內(nèi)容模擬銀行的自動取款機 ATM使用過程中的界面和用戶交互過程2. 課程設(shè)計要

2、求(1 )要求利用面向過程的方法以及 C語言的編程思想來完成系統(tǒng)的設(shè)計;(2)在系統(tǒng)的設(shè)計中,要求運用菜單和文件實現(xiàn)系統(tǒng)功能。(3)在基本要求達到后,可進行創(chuàng)新設(shè)計,如存款、代繳電話費等,或設(shè)計友好的界面等。3. 可行性研究系統(tǒng)是一個基于局域網(wǎng)、互聯(lián)網(wǎng)和WINDOWS作的系統(tǒng),現(xiàn)有技術(shù)已較為成熟,利用現(xiàn)有技術(shù) 完全可以實現(xiàn)系統(tǒng)開發(fā)目標(biāo)。同時具有優(yōu)秀的軟件需求人員、軟件設(shè)計人員、和具有豐富經(jīng)驗的軟件測試人員。4. 需求分析在市場經(jīng)濟的蓬勃發(fā)展和人們?nèi)找娣泵Φ臈l件下,現(xiàn)有的銀行系統(tǒng)往往需要客戶在辦理手續(xù)時等待很長的時間,這不僅會浪費很多寶貴的時間,也會使得銀行的業(yè)務(wù)人員十分的繁忙,需要很大的人力和

3、財力。5.概要設(shè)計5.1功能模塊圖5.2功能模塊描述銀行自動取款機菜單界面設(shè) 置 儲 戶 信 息修 改 密 碼取儲戶名5.3數(shù)據(jù)結(jié)構(gòu)#i nclude<stdio.h>#i nclude <stdlib.h>void mai n()int Num,a,code,ll=0,l=0,p, n,r=0,x,m,Num1,Num2;int num10,fe ng10,mo ney10,s6,t6;int i=0;for(p=0;p<9;p+)nump=000000;mo neyp=5000;fen gp=0;loop:/首先 請陳老師原諒我N多的goto.printf(&

4、quot;n");prin tf("|n");printf("|歡迎使用ATM自動取款機|n");prin tf("|n");printf("|n");prin tf("請輸入卡號:");scan f("%d",&Nu m);fflush(stdi n);if(Num=OO)printf("是否進入管理員模式? 1/2:");/是否進入管理員模式scan f("%d",&a);fflush(stdi n);sw

5、itch(a)case 1:printf("請輸入管理員密碼(6位):");sca nf("%d",&code);fflush(stdi n);if(code!=numO)prin tf("密碼不正確! n");prin tf("按任意鍵返回。n");while(getchar()!=EOF)goto loop;elseguanlimoshi:/密碼輸入正確后,進入管理模式.system("cls");prin tf("|-歡迎進入管理員模式-|n")prin tf(

6、"| 1:查詢用戶帳戶信息|n");prin tf("| 2:返回歡迎界面|n");prin tf("|n");printf("sca nf("%d",&n);fflush(stdi n);switch( n)請選擇:");case 1:system("cls");goto gua nli;break;case 2:system("cls");goto loop;break;case 2:goto loop;break;default:pri nt

7、f("輸入錯誤! n");break;elseif(fengNum=1)如果輸入的不是管理員帳號,則判斷該帳號是否被封printf(" 該帳號已被封存!n");如果被封,則返回開頭prin tf("按任意鍵返回。n");while(getchar()!=EOF)system("cls");goto loop;else/如果沒被封,則開始輸入密碼.printf(" 請輸入密碼:");state:sca nf("%d",&code);fflush(stdi n);if(c

8、ode!=num Num)printf("密碼不正確!請重新輸入:");i+;計算輸入錯誤幾次.if(i<3)goto state;elseprintf(" 連續(xù)三次出錯!n");+r;計算連續(xù)三次出錯共有幾次.if(r<2)小于2則返回歡迎界面.i=0;prin tf("按任意鍵返回。n");while(getchar()!=EOF)system("cls");goto loop;else/ 大于2則封存帳戶,然后返回歡迎界面printf("您的帳號已被封存.n");fen gNu

9、m=1;printf("按任意鍵返回。n");while(getchar()!=EOF)system("cls");goto loop;else/ 如果密碼輸入正確,則進入用戶頁面system("cls");shuru:prin tf("|-歡迎使用ATM自動取款機-|n");prin tf("| 1.取款2.余額查詢|n");prin tf("| 3.密碼修改4.轉(zhuǎn)帳 |n");prin tf("| 5.歷史交易紀(jì)錄查詢|n");prin tf(&quo

10、t;| 6.返回歡迎界面|n");prin tf("|n");sea nf("%d", &x);fflush(stdi n);switch (x)/進行選擇.ease 1:system("cls");goto qukua n;break;ease 2:system("cls");goto yuechax un ;break;case 3:system("cls");goto mimaxiugai;break;case 4:system("cls");goto

11、 zhua nzha ng;break;case 5:system("cls");goto lishijilu;break;case 6:system("cls");goto loop;break;default:printf("輸入錯誤!n");system("cls");goto shuru;qukuan: 進入取款頁面.prin tf("|-取款-|n");prin tf("| 1.取款|n");prin tf("| 2.返回|n");printf(

12、"|n");scan f("%d", &x);fflush(stdi n);switch (x)case 1:if(l>5000)判斷累計取款額.printf("累計取款超過5000元,系統(tǒng)出錯.n");prin tf("按任意鍵返回。n");while(getchar()!=EOF)system("cls");goto shuru;else/ 若低于5000,則開始取款.if(moneyNum<100)判斷此時余額,進行屏幕打印.printf("余額不足.n&qu

13、ot;);以下N個瘋狂的循環(huán)道理同此.prin tf("按任意鍵返回。n");while(getchar()!=EOF)system("cls");原諒我吧蔣老師我實在沒想出啥好方法goto shuru;else if(moneyNum<200)現(xiàn)金在 0200元之間時。printf("請選擇:1.100兀2.返回上一級n");sca nf("%d",&n); fflush(stdi n); switch( n)case 1:printf("正在取款,請稍候n");mo neyNu

14、m-=100;l+=100;printf("取款成功!n");printf("按任意鍵返回。n");while(getchar()!=EOF)system("cls");goto qukua n;break;case 2:goto shuru;break;default:printf("輸入錯誤!n");prin tf("按任意鍵返回。n");while(getchar()!=EOF)system("cls");goto qukua n;break;else if(money

15、Num<500)現(xiàn)金在 0500元之間時。printf(" 請選擇:1.100 元 2.200 元 3.返回上一級.n");sca nf("%d",&n);fflush(stdi n);switch( n)case 1:mo neyNum-=100;l+=100;printf("取款成功!n");prin tf("按任意鍵返回。n");while(getchar()!=EOF)system("cls");goto qukua n;break;case 2:printf("

16、 正在取款,請稍候n");mo neyNum-=200;l+=200;printf("取款成功!n");prin tf("按任意鍵返回。n");while(getchar()!=EOF)system("cls");goto qukua n;break;case 3:goto shuru;break;default:printf("輸入錯誤!n");prin tf("按任意鍵返回。n");while(getchar()!=EOF)system("cls");goto

17、qukua n;break;else if(moneyNum<1000)現(xiàn)金在 0T000元之間時。printf(" 請選擇:1.100 元 2.200 元 3.500 元 4.返回上一級.n");sca nf("%d",&n);fflush(stdi n);switch( n)case 1:printf("正在取款,請稍候n");mo neyNum-=100;l+=100;printf("按任意鍵返回。n");while(getchar()!=EOF) system("cls")

18、;goto qukua n;break;case 2:printf(" 正在取款,請稍候n");mo neyNum-=200;l+=200;printf(”取款成功!n");prin tf("按任意鍵返回。n");while(getchar()!=EOF)system("cls");goto qukua n;break;case 3: l+=500;printf("取款成功!n");n");n");prin tf("按任意鍵返回。while(getchar()!=EOF)sy

19、stem("cls");goto qukua n;break;case 4:goto shuru;break;default:printf("輸入錯誤!n");prin tf("按任意鍵返回。while(getchar()!=EOF)system("cls");goto qukua n;break;printf("請選擇:1.100 元 2.200 元 3.500 元 4.1000 元 5.返回上一級.n");sea nf("%d",&n);fflush(stdi n);swi

20、tch( n)case 1:printf("正在取款,請稍候n")mo neyNum-=100;l+=100;printf("取款成功!n");printf("按任意鍵返回。n");while(getchar()!=EOF)system("cls");goto qukua n;break;case 2: l+=200;printf("取款成功!n");prin tf("按任意鍵返回。n");while(getchar()!=EOF)system("cls"

21、);goto qukua n;break;case 3:printf("正在取款,請稍候n");mo neyNum-=500;l+=500;printf("取款成功!n");prin tf("按任意鍵返回。n");while(getchar()!=EOF)system("cls");goto qukua n;break;case 4:1+=1000;printf("取款成功!n");printf("按任意鍵返回。n");while(getchar()!=EOF)system(

22、"cls");goto qukua n;break;case 5:goto shuru;break;default:printf("輸入錯誤!n");printf("按任意鍵返回。n");while(getchar()!=EOF)system("cls");goto qukua n;break;else/ 現(xiàn)金在2000元以上時printf("請選擇:1.100 元 2.200 元 3.500 元 4.1000 元 5.2000 元 6.返回上一級.n");sea nf("%d&quo

23、t;,&n); fflush(stdi n); switch( n)case 1:printf("正在取款,請稍候n");mo neyNum-=100;l+=100;printf("取款成功!n");printf("按任意鍵返回。n");while(getchar()!=EOF)system("cls");goto qukua n;break;case 2:printf("正在取款,請稍候n");l+=200;實用文檔printf("取款成功!n");printf(&

24、quot;按任意鍵返回。n");while(getchar()!=EOF)system("cls");goto qukua n;break;case 3:printf("正在取款,請稍候n");mo neyNum-=500;l+=500;printf("取款成功!n");printf("按任意鍵返回。n");while(getchar()!=EOF)system("cls");goto qukua n;break;case 4:printf("正在取款,請稍候n")

25、;mo neyNum-=1OOO;l+=1000;printf("取款成功!n");printf("按任意鍵返回。n");while(getchar()!=EOF)system("cls");goto qukua n;break;case 5:printf("正在取款,請稍候n");mo neyNum-=2000;l+=2000;printf("取款成功!n");printf("按任意鍵返回。n");while(getchar()!=EOF)system("cls&

26、quot;);goto qukua n;break;case 6:goto shuru;break;default:printf("輸入錯誤!n");prin tf("按任意鍵返回。n");while(getchar()!=EOF)system("cls");goto qukua n;break;break;case 2:goto shuru;break; default:printf("輸入錯誤!n");printf("按任意鍵返回。n");while(getchar()!=EOF)syste

27、m("cls");goto qukua n;break;mimaxiugai:/進入修改密碼頁面。printf("|修改密碼-|n");prin tf("|請選擇:|n");prin tf("| 1.修改密碼。|n");prin tf("| 2.返回上一級。|n")prin tf("|n");scan f("%d", &x);fflush(stdi n);switch(x)case 1:printf("請輸入新密碼(六位):n"

28、); 第一次輸入。for(m=0;m<=5;m+)sm=getch();這里,輸入時可以顯示*,但是不能用退格健prin tf("*");/退格鍵會被當(dāng)作一個字符輸入。問題有待解決printf("請重新輸入密碼(六位):n");/第二次輸入。for(m=0;m<=5;m+)tm=getch();prin tf("*");for(m=0;m<=5;m+)判斷兩次輸入是否相同。if(sm!=tm)prin tf("輸入與第一遍不符! n");prin tf("按任意鍵返回。n");

29、while(getchar()!=EOF)system("cls");goto mimaxiugai;/ 計算出密碼。=_=|憑我的智商只想出了這種方法numNum=s0*100000+s1*10000+s2*1000+s3*100+s4*10+s5;/此種計算密碼的方法是錯誤的,但是沒有發(fā)現(xiàn)哪里出了錯。希望老師幫忙解決下謝啦prin tf("密碼修改完成! n");prin tf("按任意鍵返回。n");while(getchar()!=EOF)system("cls");goto mimaxiugai;case

30、 2:system("cls");goto shuru;break;default:printf("輸入錯誤! n");printf("按任意鍵返回。n");while(getchar()!=EOF)system("cls");goto mimaxiugai;break;zhuanzhang:進入轉(zhuǎn)賬頁面。prin tf("|-轉(zhuǎn)帳-T'n");prin tf("|請選擇:|n");prin tf("| 1.轉(zhuǎn)帳|n");prin tf("

31、;| 2.返回上級 |n");prin tf("|n");scan f("%d", &x);fflush(stdi n);switch(x)case 1:/ 開始轉(zhuǎn)賬。n");prin tf(" 請輸入轉(zhuǎn)賬給的用戶賬號:sca nf("%d",&Nu m1);fflush(stdi n);printf("請再次輸入賬號:n"); 確認(rèn)。sea nf("%d",&Nu m2);fflush(stdi n);if(Num1=Num2)如果兩次輸入

32、相同,則進行轉(zhuǎn)賬printf("請輸入轉(zhuǎn)賬金額:n");sea nf("%d",&ll);fflush(stdi n);if(mon eyNum>=ll)mon eyNum-=ll;mon eyNum1+=ll;printf("轉(zhuǎn)賬成功! n");printf(”按任意鍵返回。n");while(getchar()!=EOF)system("cls");goto zhua nzha ng;elseprintf("余額不足! n");while(getchar()!=EOF

33、)system("cls");goto zhua nzha ng;break;else/輸入不同,則返回printf("賬號確認(rèn)失??! n");printf("按任意鍵返回。n");while(getchar()!=EOF)system("cls");goto zhua nzha ng;case 2:system("cls");goto shuru;break;default:printf("輸入錯誤! n");printf("按任意鍵返回。n");whi

34、le(getchar()!=EOF)system("cls");goto zhua nzha ng;break;yuechaxun:進入余額查詢頁面。直接打印出余額printf("|余額查詢|n");prin tf("|當(dāng)前余額:%6d-|n",mo neyNum);printf("| 按 0 返回上一級|n");printf("|n");scan f("%d", &x);fflush(stdi n);switch(x)/ 按 0 返回。case 0:system(&

35、quot;cls");goto shuru;break;default:printf(”輸入錯誤!請重新輸入。n");prin tf("按任意鍵返回。n");while(getchar()!=EOF)system("cls");goto yuechax un;break;gua nli:進入管理員頁面。可以查詢用戶信息。prin tf("|1.輸入賬號.|n");printf("|2.返回上一級.|n");printf("|n");prin tf("請輸入選項:&q

36、uot;);scan f("%d", &x);switch(x)case 1:printf("請輸入賬號:");sca nf("%d",&Nu m);fflush(stdi n);printf("|-用戶名稱:06d-|n",Num);printf("|用戶密碼:%06d|n", nu mNum);printf("|用戶余額:%6d|n",mo neyNum)printf("|n");if(fen gNum=1)prin tf("

37、該賬號已被封存! n");printf(" 是否解封? (Y/N)n"); sca nf("%c", &x);if(x='y')|(x='Y')fen gNum=0;prin tf("賬號已解封! n");elsebreak;printf("按0返回上一級。");sca nf("%d", &x);fflush(stdi n);switch(x)case 0:system("cls");goto gua nli;brea

38、k;default:break;case 2:system("cls");goto gua nlimoshi;break;default:printf("輸入錯誤!請重新輸入:");while(getchar()!=EOF)system("cls");goto gua nli;break;lishijilu:printf("| 歷史紀(jì)錄|n");prin tf("|對不起,本功能尚未完善,敬請期待后續(xù)|n");prin tf("|* A_A *|n");printf(&quo

39、t;|n");prin tf("按任意鍵返回。n");while(getchar()!=EOF)system("cls");goto shuru;6.詳細(xì)設(shè)計6.1功能流程圖(1)設(shè)子儲戶信息流程(2)修改密碼流程輸入原密碼與原先存儲 密碼比對N輸入新密碼退出系統(tǒng)(一次機會)取代原密碼(3)查詢余額流程(4)取款流程*(5)轉(zhuǎn)賬流程和6.2重點設(shè)計tran sacco unt,主要函數(shù) main,enter, getmoney, changepassword,yuerchaxun, banksaves.exitcaozuo.7.測試與調(diào)試歡迎界

40、面功能界面2.2007E 35胸元 4.1000 元 5.20007t返回上一級2-M0辛請稍候取款界面微軟拼音二簡捷2010半取款結(jié)束界面余額查詢界面*C:U5&rsAd rn in i st rato rDe s Icto pDebu L exe"修改密碼-請選擡:修改密碼。2 逋向上一級。3 位番 六入完 (i o 碼秒回請輸入新出-簡扌電2010修改密碼界面碾i 上回 35 一請2.請輸入轉(zhuǎn)賬給的用戶賬號備再次輸入賬號;請輸入轉(zhuǎn)賬金額匕轉(zhuǎn)賬界面#in clude<stdio.h>#in elude <stdlib.h>void mai n()

41、int Num,a,code,ll=0,l=0,p ,n ,r=0,x,m,Num1,Num2;int num10,fe ng10,mo ney10,s6,t6;int i=0;for(p=0;p<9;p+)nump=000000;mo neyp=5000;fen gp=O;loop:/首先 請陳老師原諒我N多的goto.printf("n");prin tf("|n");printf("|歡迎使用ATM自動取款機|n");prin tf("|n");printf("|n");prin t

42、f("請輸入卡號:");sea nf("%d",&Nu m);fflush(stdi n);if(Num=00)printf(”是否進入管理員模式? 1/2:");/ 是否進入管理員模式。sea nf("%d",&a);fflush(stdi n);switeh(a)ease 1:printf(" 請輸入管理員密碼(6位):");sea nf("%d", &code);fflush(stdi n);if(eode!二nu m0)printf(”密碼不正確! n&

43、quot;);prin tf("按任意鍵返回。n");while(getchar()!=EOF)system("cls");goto loop;elseguanlimoshi:/ 密碼輸入正確后,進入管理模式.system("cls");printf("|歡迎進入管理員模式|n");prin tf("| 1:查詢用戶帳戶信息|n");prin tf("| 2:返回歡迎界面|n");prin tf("|n");printf("請選擇:")

44、;sca nf("%d",&n);fflush(stdi n);switch( n)case 1:system("cls");goto gua nli;break;case 2:system("cls");goto loop;break;case 2:system("cls");goto loop;break;default:pri ntf("輸入錯誤! n");break;elseif(fengNum=1)如果輸入的不是管理員帳號,則判斷該帳號是否被封printf(”該帳號已被封存!n"); 如果被封,則返回開頭.prin tf("按任意鍵返回。n");while(getchar()!=EOF)system("cls")

溫馨提示

  • 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

提交評論