銀行的ATM機(jī)存取款系統(tǒng)程序設(shè)計_第1頁
銀行的ATM機(jī)存取款系統(tǒng)程序設(shè)計_第2頁
銀行的ATM機(jī)存取款系統(tǒng)程序設(shè)計_第3頁
銀行的ATM機(jī)存取款系統(tǒng)程序設(shè)計_第4頁
銀行的ATM機(jī)存取款系統(tǒng)程序設(shè)計_第5頁
已閱讀5頁,還剩62頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、實用標(biāo)準(zhǔn)文案精彩文檔實用標(biāo)準(zhǔn)文案精彩文檔銀行 ATM 機(jī)存取款系統(tǒng)程序設(shè)計任課教師: 蔣 安 珩小組成員:何慧冬 14212114 國際經(jīng)濟(jì)與貿(mào)易 貢怡敏 14Y12114 國際經(jīng)濟(jì)與貿(mào)易(全 英)徐唯一 14512125 金融學(xué)2013-09-08銀行 ATM 機(jī)存取款系統(tǒng)程序設(shè)計一 案例描述總體描述銀行 ATM 機(jī)存取款系統(tǒng)業(yè)務(wù)描述如下:銀行 ATM 存取款系統(tǒng)能為用戶提供存款、取款、查詢、轉(zhuǎn)賬和修改密碼的功能。用戶通 過開戶業(yè)務(wù)在本系統(tǒng)開立銀行賬戶,之后可以通過該銀行賬戶登錄 ATM 系統(tǒng),在系統(tǒng)中實 現(xiàn)存款、取款、查詢賬戶信息、修改密碼的操作。本系統(tǒng)各個業(yè)務(wù)有如下注意點:( 1) 登錄

2、系統(tǒng) 用戶登錄之前,必須在登錄界面輸入其銀行賬戶,通過其正確輸入的銀行賬戶登錄系統(tǒng)。( 2) 開戶業(yè)務(wù)要使用本系統(tǒng)必須首先執(zhí)行開戶業(yè)務(wù)開立新的銀行賬戶, 并且將此新開的銀行存儲于文件當(dāng) 中。同時, 系統(tǒng)以身份證號碼作為開戶的充分條件, 即一個身份證號碼只能開立一次銀行賬 戶。( 3) 存款業(yè)務(wù)客戶登陸系統(tǒng)后,選擇存款業(yè)務(wù),即可以將輸入的存款金額存入相應(yīng)的賬戶。( 4) 取款業(yè)務(wù)客戶登陸系統(tǒng)后, 選擇取款業(yè)務(wù), 即可以將輸入的取款金額從相應(yīng)的銀行賬戶取出, 但其取 款金額必須大于目前的賬戶余額。( 5) 查詢業(yè)務(wù)客戶登陸系統(tǒng)后,可以選擇查詢業(yè)務(wù),查詢賬戶余額。( 6) 轉(zhuǎn)賬業(yè)務(wù)客戶登陸系統(tǒng)后,

3、可以選擇轉(zhuǎn)賬業(yè)務(wù)進(jìn)行轉(zhuǎn)賬。 注意的是轉(zhuǎn)賬的目的賬戶必須是本系統(tǒng)已經(jīng) 存在的銀行賬戶。( 7) 修改密碼客戶登陸系統(tǒng)后,可以選擇修改密碼,進(jìn)行密碼修改。界面設(shè)計用戶根據(jù)需要進(jìn)行登錄和開戶的選擇三 模塊化設(shè)計方案1系統(tǒng)主要函數(shù)及功能實用標(biāo)準(zhǔn)文案實用標(biāo)準(zhǔn)文案chaxun 函數(shù):用以查詢客戶個人余額kaihu 函數(shù):用以開戶denglu 函數(shù):客戶登錄caidan 函數(shù):向客戶展示銀行業(yè)務(wù)菜單,辦理存取款、查詢等qukuan 函數(shù):客戶取款xgmm 函數(shù):進(jìn)行密碼修改cunkuan 函數(shù):客戶存款zhuanzhang 函數(shù):客戶轉(zhuǎn)賬tuichu 函數(shù):退出系統(tǒng)2主函數(shù)調(diào)用各功能函數(shù)流程實用標(biāo)準(zhǔn)文案精彩

4、文檔實用標(biāo)準(zhǔn)文案精彩文檔四 數(shù)據(jù)結(jié)構(gòu)描述struct perchar name20;char ID20;int money;char code6;struct per *next;/* 定義結(jié)構(gòu)體 */* 姓名 */* 卡號 */* 金額 */* 密碼 */* 定義指針 */;typedef struct personstruct per kehu ;struct person *next;L;該數(shù)據(jù)結(jié)構(gòu)為鏈表, 是一種動態(tài)進(jìn)行存儲分配的結(jié)構(gòu)。 鏈表的每一個一個節(jié)點中包含了一個指針變量,用它存放下一個結(jié)點的地址,環(huán)環(huán)相扣。五 算法設(shè)計1、開戶開始輸入姓名輸入銀行密碼鏈表 加該中添 記錄結(jié)束2.

5、登錄3.取款4.存款開始實用標(biāo)準(zhǔn)文案實用標(biāo)準(zhǔn)文案與原密碼6.轉(zhuǎn)賬開始再次輸入轉(zhuǎn)入卡號成功轉(zhuǎn)入余額不足精彩文檔鏈表中 加該記添 錄實用標(biāo)準(zhǔn)文案精彩文檔實用標(biāo)準(zhǔn)文案精彩文檔是否7.查詢六 程序運行結(jié)果開戶登錄選擇業(yè)務(wù)取款5、查詢6.轉(zhuǎn)賬7、修改密碼8 、存款9、退出退出系統(tǒng)。七 總結(jié)1. 分工情況何慧冬:程序框架的搭建和運行調(diào)試后的修改 貢怡敏:界面處理和函數(shù)內(nèi)容的補(bǔ)充 徐唯一:算法設(shè)計和流程圖的制作心得體會何慧冬:這次對銀行 ATM 機(jī)的程序編寫過程中,遇到了不少困難。首先是經(jīng)過一個暑假, 小組成員對之前學(xué)的 C 程序設(shè)計內(nèi)容掌握程度不像上學(xué)期那么高,加上短學(xué)期接 觸到了 C+ 的相關(guān)內(nèi)容,對新

6、知識點的理解和運用也不是很熟練,所以一開始比 較難上手。 其次是對結(jié)構(gòu)體、 指針等重點難點內(nèi)容的運用不是很擅長。 在弄清楚各 個函數(shù)的使用后, 把各個函數(shù)的功能鑲嵌起來比較花功夫。 在設(shè)計上面, 我們覺得 “密碼最多允許輸錯三次” 這個環(huán)節(jié)比較考驗人。 尤其是不斷地調(diào)試, 要把組員們 各自編譯的函數(shù)搭建起來完美運行并不是件容易的事,需要三個人一起分析和探 討,在調(diào)試的過程中不斷修改,直至完美運行。過程是艱辛的,結(jié)果是可喜的。程 序的完美呈現(xiàn), 離不開三個人的共同努力。 自己需要做好自己的那一部分, 而團(tuán)隊 合作便是成功的核心。貢怡敏:通過這次小組合作程序設(shè)計,真是讓我受益匪淺。銀行 ATM 機(jī)

7、的程序編寫,不僅很好地讓我們運用起所學(xué)的 C 語言的相關(guān)知識,也與我們的經(jīng)濟(jì)學(xué)專業(yè)相銜接,這與平時的做題有很大的不同。 雖然對于界面的設(shè)計看似較容易上手, 但我們的程 序構(gòu)思卻是和這界面設(shè)計有著莫大的聯(lián)系, 絲毫不能馬虎的。 在調(diào)試運行我們的程 序時,每一個步驟都不能省略,才能保證我們的程序是否真的完美運行沒有差錯。 在操作過程中的輕松, 背后是我們小組齊心協(xié)力的智慧的結(jié)晶。 當(dāng)然我們的程序在 細(xì)節(jié)和人性化角度還存在著一些問題, 比如說想要轉(zhuǎn)賬的, 但是如果不小心摁到了 取款,沒有直接退出的環(huán)節(jié),只能先“將錯就錯”后再退出,然后轉(zhuǎn)到原本想操作 的“轉(zhuǎn)賬”上面。徐唯一:這次銀行 ATM 機(jī)程序編

8、寫對我來說真是一次巨大的考驗。整個程序的算法設(shè)計, 邏輯思維能力是關(guān)鍵性因素。為了能夠使我們的程序精益求精,少不了反復(fù)構(gòu)思, 返工的情況也是很常見的。 好不容易把整個思路構(gòu)想出來, 卻因為某些瑕疵而全部 推翻, 很是郁悶。 不過功夫不負(fù)有心人, 三人的智慧加在一起, 沒有什么做不到的。 共同思考, 達(dá)成共識, 沒有合理的設(shè)計, 也就不能編寫出合適的程序。 不過因為我 們的能力有限, 還是存在一些遺憾, 就比如我最在意的點錯不能及時退出這一細(xì)節(jié)。 當(dāng)然我們相信,在今后的學(xué)習(xí)過程中,我們能更加掌握好 C 語言的相關(guān)知識,將 我們的程序完善,使其更具人性化。自評得分何慧冬: 97貢怡敏: 96徐唯一

9、: 98附頁(源代碼附加注釋)#include#include#includestruct perchar name20;char ID20;int money;char code6;struct per *next;typedef struct personstruct per kehu ;struct person *next;L;/* 定義結(jié)構(gòu)體 */* 各個函數(shù)的聲明 */void chaxun(struct per *head);void kaihu(struct per *head);void denglu(struct per *head);void caidan(struct

10、per *head);void qukuan(struct per *head);void xgmm(struct per *head);void cunkuan(struct per *head);void zhuanzhang(struct per *head);void tuichu();/* 主函數(shù) */void main()char x;char choose;/*choose 為定義輸入選擇的變量 */int flag=1;struct person *Phead=NULL;/*r 為定義二層頭指針 */struct per *head=NULL;/*head 為定義一層頭指針 *

11、/printf(*n);printf(* 歡迎使用 ATM 自動取款機(jī)系統(tǒng) *n);printf(*nnnn);printf(n);printf(| 請選擇您的需求printf(n);printf(|1 開戶printf(n);printf(|2 登錄printf(n);|n);|n);|n);/* 調(diào)用開戶函數(shù) */* 調(diào)用登陸函數(shù) */scanf(%s,&x);system(cls);switch(x)case 1:system(cls);kaihu(head); break;case 2:system(cls); denglu(head); break;/* 開戶函數(shù) */ void k

12、aihu(struct per *head)head=NULL;FILE *fp; /* 定義文件指針 */*p1,p1 為定義鏈表指針 */* 開辟內(nèi)存單元 */* 將數(shù)據(jù)輸入鏈表中 */per *p1=NULL,*p2=NULL;p1=(per*)malloc(sizeof(per);printf( 請輸入您的姓名 :n);scanf(%s,p1-name );printf( 請設(shè)置您的卡號 :n);scanf(%s,p1-ID);printf( 請設(shè)置您銀行卡密碼 :n);scanf(%s,p1-code);p1-money=0;p1-next =NULL;卡 號 : %s nprint

13、f( 您的個人信息為 n);printf( 姓 名 : %s n額: %4dn,p1-name ,p1-ID,p1-money );if(NULL=head)/* 為新增客戶開辟內(nèi)存單元*/head=(per *)malloc(sizeof(per);head-next =p1;else/* 為新增客戶開辟內(nèi)存單元 */for(p2=head;p2-next!=NULL;p2=p2-next); p2-next=p1;if(fp=fopen(save.txt,ab+)=NULL)printf(cannot open filen);return;if(fwrite(p1,sizeof(per),

14、1,fp)!=1)/* 打開文件 */* 將鏈表信息寫入文件中 */printf(file write errorn);fclose(fp);printf(n);printf( 恭喜您開戶成功,請登錄 n);system(pause);system(cls);denglu(head);/* 登陸函數(shù) */void denglu(struct per *head)char d20;char code20;int i,j;FILE *fp;per *p,*q=NULL;if(fp=fopen(save.txt,rb+)=NULL) */printf( 不能打開文件 n);p=(per*)mallo

15、c(sizeof(per);/* 定義文件指針 */* 打開一個二進(jìn)制文件,為讀方式/* 如不能打開,則結(jié)束程序 */* 申請空間 */head=p;while(!feof(fp) /* 循環(huán)讀數(shù)據(jù)直到文件尾結(jié)束 */if(1!=fread(p,sizeof(per),1,fp)break;/* 如果沒讀到數(shù)據(jù),跳出循環(huán) */p-next=(per *)malloc(sizeof(per);/*為下一個結(jié)點申請空間 */q=p;*/p=p-next;*/q-next=NULL;fclose(fp);printf(printf(printf(for( j=1;jnext)/* 保存當(dāng)前結(jié)點的指針

16、,作為下一結(jié)點的前驅(qū)/* 指針后移,新讀入數(shù)據(jù)鏈到當(dāng)前表尾/* 最后一個結(jié)點的后繼指針為空 */*n);* 歡迎來到建設(shè)銀行 *n);*n);/* 限制卡號輸入的次數(shù)的循環(huán) */* 便利鏈表 */if(strcmp(q-ID,d)!=0) /* 核對賬號 */continue;elsefor(i=1;icode,code)!=0) /* 核對密碼 */printf( 密碼不正確,請重新輸入密碼 n);system(pause);system(cls);continue; /* 若密碼不對,跳出循環(huán) */elsesystem(cls);caidan(head); /* 調(diào)用菜單函數(shù) */n);p

17、rintf(nnn 您輸入密碼三次錯誤,謝謝光臨system(pause);system(cls);exit(0);printf(nnn 您輸入的卡號有誤,請重試 n);system(pause);system(cls);printf( 您的卡號三次輸入錯誤,謝謝使用 );exit(0);/* 銀行菜單函數(shù) */void caidan(struct per *head)head=NULL;int i;/*i為客戶選擇輸入的變量*/while(1)printf( 請選擇您需要的業(yè)務(wù) n);*/* 銀行業(yè)務(wù)菜單printf( *printf(*1 取款2 查詢*n);printf( *printf

18、(*3 轉(zhuǎn)賬4 修改密碼*n);printf( *printf(*5 存款6 退出*n);printf(*nnn);scanf(%d,&i);if(i0)switch(i)/* 調(diào)用銀行取款函數(shù)case 1:qukuan(head);*/system(pause);system(cls);break;case 2: system(cls);chaxun(head);/* 調(diào)用銀行查詢函數(shù)*/break;case 3:system(cls);zhuanzhang(head);/* 調(diào)用銀行轉(zhuǎn)賬函數(shù)*/break;case 4:system(cls);xgmm(head);/* 調(diào)用銀行修改密碼函

19、數(shù)*/break;case 5:system(cls);cunkuan(head);/* 調(diào)用銀行存款函數(shù) */break;case 6:system(cls);tuichu();/* 調(diào)用銀行退出函數(shù) */break;實用標(biāo)準(zhǔn)文案精彩文檔實用標(biāo)準(zhǔn)文案精彩文檔elseprintf( 您的輸入有誤 n); system(pause); system(cls);/* 銀行取款函數(shù)函數(shù) */ void qukuan(struct per *head)head=NULL;per *p;*/int i;FILE *fp;*/fp=fopen(save.txt,rb+);/* 鏈表頭指針/* 文件頭指針/

20、* 開辟空間 */p=(per*)malloc(sizeof(per);fread(p,sizeof(per),1,fp);fclose(fp);system(cls);printf( 請按要求選擇您要取款的金額n);printf(*n);printf(* 1: 1002: 200*n);printf(*n);printf(* 3: 3004: 400*n);printf(*n);printf(* 5: 5006: 600*n);printf(*n);scanf(%d,&i);if(i6|ip-money )printf( 對不起,您的余額不足 n);system(pause);system(

21、cls);caidan(head);elsep-money-=i;if(fp=fopen(save.txt,wb+)=NULL)printf(cannot open filen);return;if(fwrite(p,sizeof(per),1,fp)!=1)件*/printf(file write errorn);printf( 您已成功走取 %d 元 n,i);p-next=NULL;fclose(fp);/* 打開文件 */* 將修改的信息重新寫入文/* 關(guān)閉文件 */實用標(biāo)準(zhǔn)文案精彩文檔實用標(biāo)準(zhǔn)文案精彩文檔實用標(biāo)準(zhǔn)文案精彩文檔/* 銀行轉(zhuǎn)賬函數(shù) */void zhuanzhang(st

22、ruct per *head)head=NULL;per *p;FILE *fp;fp=fopen(save.txt,rb+);p=(per*)malloc(sizeof(per);fread(p,sizeof(per),1,fp);fclose(fp);int i,j,k;printf( 請輸入轉(zhuǎn)賬號碼 n);scanf(%d,&i);printf( 請再次輸入轉(zhuǎn)賬號碼 n);scanf(%d,&j);if(i!=j)printf( 兩次賬號不相同,請重新輸入 n zhuanzhang(head);elsesystem(cls);printf( 請輸入轉(zhuǎn)賬金額 n);printf(*n);p

23、rintf(* 1: 1002: 200*n);printf(*n);printf(* 3: 3004: 400*n);printf(*n);printf(* 5: 5006: 600*n);*n);printf( scanf(%d,&k);if(k6|kp-money )printf( 對不起,您的余額不足 n);system(pause);system(cls);caidan(head);elseprintf( 您已成功轉(zhuǎn)賬 %d 元 n,k); p-money-=k;if(fp=fopen(save.txt,wb+)=NULL)printf(cannot open filen);retu

24、rn;if(fwrite(p,sizeof(per),1,fp)!=1)printf(file write errorn);p-next=NULL;fclose(fp);p-next=NULL;system(pause);system(cls);/* 銀行查詢函數(shù) */void chaxun(struct per *head)head=NULL;*/per *p;FILE *fp;fp=fopen(save.txt,rb+);p=(per*)malloc(sizeof(per);fread(p,sizeof(per),1,fp);*/fclose(fp);/* 鏈表頭指針/* 文件頭指針 */

25、* 打開文件 */* 將信息從文件中讀出來printf( 您卡上原有余額為 %d 元 nn,p-money);system(pause);system(cls);/* 銀行修改密碼函數(shù) */void xgmm(struct per *head)head=NULL;*/per *p;char code20;FILE *fp;fp=fopen(save.txt,rb+); p=(per*)malloc(sizeof(per); fread(p,sizeof(per),1,fp);fclose(fp);printf( 請輸入您的原密碼 n);scanf(%s,code); if(strcmp(p-code,code)=0) /* 鏈表頭指針/* 文件頭指針 */* 開辟內(nèi)存 */* 打開文件 */* 將信息從文件中讀出來 */* 核對密碼 */實用標(biāo)準(zhǔn)文案精彩文檔實用標(biāo)準(zhǔn)文案精彩文檔printf( 密碼正確 n);printf( 請輸入您的新密碼 :n);/* 文件頭指針 */scanf(%s,p-code);if(fp=fopen(save.txt,wb+)=NULL)printf(cann

溫馨提示

  • 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

提交評論