C語言課程設(shè)計報告(銀行存取款管理設(shè)計).doc_第1頁
C語言課程設(shè)計報告(銀行存取款管理設(shè)計).doc_第2頁
C語言課程設(shè)計報告(銀行存取款管理設(shè)計).doc_第3頁
C語言課程設(shè)計報告(銀行存取款管理設(shè)計).doc_第4頁
C語言課程設(shè)計報告(銀行存取款管理設(shè)計).doc_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

錯誤!未找到目錄項(xiàng)。C程序課程設(shè)計報告 題目車票管理系統(tǒng)院別數(shù)學(xué)與計算機(jī)學(xué)院班級姓名學(xué)號指導(dǎo)教師鄧永江二一五年 六 月預(yù)習(xí)報告一:設(shè)計題目銀行存取款管理設(shè)計二:功能要求能夠添加和修改以及刪除客戶文件。(在客戶文件中,每個客戶是一條記錄,包括編號、客戶姓名、支取密碼、客戶地址、客戶電話、賬戶總金額)。能夠輸入和查詢客戶存款取款記錄。(在存取款文件中,每次存取款是一條記錄,包括編號、日期、類別、存取數(shù)目、經(jīng)辦人。類別分為取款和存款兩種)。能夠給程序提供運(yùn)行提示。三:設(shè)計要求、用C語言實(shí)現(xiàn)系統(tǒng);、函數(shù)功能要劃分好(結(jié)構(gòu)化程序設(shè)計);、界面友好(良好的人機(jī)交互),加必要的注釋;、要提供程序測試方案,程序一定要經(jīng)得起測試,寧可功能少一些,也要能運(yùn)行起來,不能運(yùn)行的程序是沒有價值的。四:設(shè)計目的、通過這次課程設(shè)計,使我們更加深入地理解和掌握C語言基本概念,切身體會用結(jié)構(gòu)化程序設(shè)計的工程思想,感受C語言的魅力。、通過這次課程設(shè)計,培養(yǎng)我們獨(dú)立思考、勇于探索、積極創(chuàng)新、嚴(yán)謹(jǐn)求實(shí)、有過必改的工作態(tài)度以及較熟的上級操作能力,同時加強(qiáng)我們團(tuán)結(jié)友愛,協(xié)作攻關(guān)的團(tuán)隊(duì)合作意識。取款辦理存款辦理存取款辦理客戶資料添加與操作功能選擇五:設(shè)計框架圖關(guān)于存取款查詢添加修改刪除查詢?nèi)】畈樵兇婵畈樵兞汉瘮?shù)與變量說明自定義函數(shù)void main(): 在里面寫了“功能選擇”的SWITCH函數(shù);void kehu(); 客戶資料添加與操作主菜單;void kehu1(struct cou p,char *re,long *h); 客戶資料查詢函數(shù); void kehu2(struct cou *p,char *re,long h); 客戶資料添加函數(shù); void kehu3(struct cou *p,char *re,long h); 客戶資料修改函數(shù); void kehu4(struct cou *p,char *re,long h); 客戶資料清楚函數(shù); void kehup(struct cou *p,char *re,long *h); 客戶資料打印函數(shù);void cunq1(); 存取款辦理選擇主菜單;void cunq11(struct cou *p,char *re,long h); 客戶存款資料的鍵入; void cunq12(struct cou *p,char *re,long h); 客戶取款資料的鍵入; void cunq2(); 存取款選擇查詢主菜單;void cunq211(struct cou p,char *re,long *h); 把顧客存款資料從文件讀到緩沖區(qū);void cunq212(struct cou *p,char *re,long *h); 打印存款資料;void cunq221(struct cou p,char *re,long *h); 把顧客取款資料從文件讀到緩沖區(qū);void cunq222(struct cou *p,char *re,long *h); 打印取款資料;void help(); 使用說明模塊。變量全局的結(jié)構(gòu)體型數(shù)組w(用來存放200多個結(jié)構(gòu)體變量):extern struct coulong b;char x20;long m;char a50;long d;float j;long bc;char jin20;char jin220;char t20;float j1;float j2;float j3;float j4; w200;局部變量int m;用來在主和其他函數(shù)中進(jìn)行SWITCH選擇判斷;全局變量long t;用于記錄客戶卡號,而卡號是在整個程序中都要用到的,因?yàn)槭侨肿兞浚砸粋€客戶的卡號不能變更。char r20,b20,c20;都為記錄客戶姓名的一維數(shù)組,用在生成客戶以及存取款文件和讀取客戶文件以及存取款文件;七:函數(shù)調(diào)用流程圖(客戶資料添加與查詢 部分 )void main()while(1)scanf(%d,&m); m=1? 其他函數(shù) 是kehu();scanf(%d,&m);switch(m);m=? 1 2scanf(%s,b);kehu1(w,b,&t);kehup(w,b,&t);break;scanf(%s,r);scanf(%ld,&h);kehu2(w,r,h);break; 注:上敘具體函數(shù)功能見 六(一)函數(shù)說明八:客戶資料添加與查詢 部分 的設(shè)計思想、由于是銀行存取款管理設(shè)計,考慮到要有較周全的功能要求,所以在設(shè)計之初就對最終成品的功能進(jìn)行了較為詳細(xì)的布局,最終確定了4個主功能(見源代碼)。、采用了結(jié)構(gòu)化程序設(shè)計思想,在主函數(shù)外定義了void kehu();(客戶文件操作)、void cunq1();(存取款辦理)、void cunq2();(存取款查詢)、void help();(使用幫助)以及他們的嵌套函數(shù),使產(chǎn)品功能更加健全。、對于如何使每次次級操作后能方便的返回主界面,我們在主函數(shù)里用到了while(1)這樣函數(shù),再在里面用到幾個break;就實(shí)現(xiàn)了返回主界面的功能。、對于客戶及存取款記錄的保存我們在這里用到了用FILE類型定義文件指針,從而來以文件形式存放數(shù)據(jù),而又用到fopen函數(shù)打開文件,用fclose關(guān)閉文件,釋放文件緩沖區(qū);又用到fwrite函數(shù)使數(shù)據(jù)寫入到磁盤保存,用fread函數(shù)把數(shù)據(jù)拉到緩沖區(qū)。、對于如何使客戶文件和客戶存取款記錄很靈活的結(jié)合到一起,我們在主函數(shù)前面構(gòu)造了一個具有多個成員的結(jié)構(gòu)體,從客戶文件記錄的客戶地址、客戶電話、當(dāng)前金額等到客戶存取款記錄的辦理時間、辦理人、存取金額等全部囊括在同一個名為cou結(jié)構(gòu)體類型中。、程序在主函數(shù)之前定義了全局的結(jié)構(gòu)體型數(shù)組w,為相關(guān)文件提供了較為靈活的存取空間,而程序中在fwrite函數(shù)之前輸入了客戶姓名和卡號,這實(shí)際上就創(chuàng)建了一個名為所輸入客戶姓名的文件, 從而在資料讀取時直接用姓名讀取非常方便。實(shí)驗(yàn)總結(jié)報告九:測試方案方案、可以直接打開所給的名為“銀行存取款及客戶資料管理系統(tǒng).exe”應(yīng)用程序進(jìn)行操作,而操作是純鍵盤式的,建議先添加客戶文件,或者先查看“關(guān)于”中的幫助。方案、如果是對源代碼進(jìn)行操作,可以雙擊名為“銀行存取款及客戶資料管理系統(tǒng).c”的.c文件,進(jìn)入C+運(yùn)行環(huán)境,按“重新組建”,然后點(diǎn)擊運(yùn)行按鈕“!”,運(yùn)行成功,便可進(jìn)入主界面,相關(guān)操作見上。而這同時C+又在后臺生成了.exe文件,這就是我們所需要的應(yīng)用程序。十:調(diào)試中問題及解決方案調(diào)試過程并不是一帆風(fēng)順的,比如、如何對客戶各種詳細(xì)資料進(jìn)行表示,之前我們并沒有想到用結(jié)構(gòu)體,然后再寫程序過程中遇到諸多困難,一段時間之后,組員進(jìn)行仔細(xì)研究,并查閱相關(guān)書籍,最終確定了用結(jié)構(gòu)體這樣便捷的數(shù)據(jù)類型,而這一決定也為后續(xù)工作指明了方向;、對客戶資料的打印,因?yàn)闆]有注意到要把文件資料從文件讀取到緩沖區(qū),因而始終不能正確的打印出所要的數(shù)據(jù),而最終在組員的一致努力下,察覺到問題,然后fread函數(shù)被用到,這問題迎刃而解;、在程序編寫過程中,由于時間關(guān)系,難免還有些問題尚未解決,我們不怕暴露問題,我們只求進(jìn)步。比如說在寫入客戶卡號時,用到fwrite(&h,4,1,fp);這樣的函數(shù)語句,雖然h已經(jīng)被我們定義為long型變量,然為什么上限為245至今尚未得到很好的解決。但這并不影響我們程序的運(yùn)行,只要稍微注意一下卡號,程序還是很理想的。十一:心得與體會這次的C語言課程設(shè)計我們付出不少,一次一次的編寫,一次次的修改,花了不少時間,甚至有時也用上了休息時間。但我們的收獲是那些付出比量不了的。在一次次的調(diào)試與失敗中,我們更加堅(jiān)強(qiáng),更加專注。在團(tuán)隊(duì)合作過程中也發(fā)生過小小的矛盾,但這些終被我們克服,從而轉(zhuǎn)化為難得的友誼,而又使我們對團(tuán)隊(duì)這個概念的認(rèn)識又上升到一個新的高度。其實(shí)一切的一切,都沒有知識來的重要,在這次課程設(shè)計過程中我們查閱了大量的資料,而有些是書本上都較少提到的,而這些給我們的便是知識,無形的寶貴財富。最后,老師提供給我們這次難得的課程實(shí)習(xí)機(jī)會,我們是受益匪淺的,當(dāng)看到一個完整的應(yīng)用程序出現(xiàn)在我們面前,作為一個初涉軟件的學(xué)徒來說,又何嘗不是感慨萬千呢?我們深懷感恩,一路前行,軟件工程,我們來了!十二:附源程序清單#include#includevoid kehu();void kehu1(struct cou p,char *re,long *h); /*(把顧客資料)從文件讀到緩沖區(qū)*/void kehu2(struct cou *p,char *re,long h); /*客戶資料輸入*/void kehu3(struct cou *p,char *re,long h); /*新客戶資料輸入*/void kehu4(struct cou *p,char *re,long h); /* 資料清除*/void kehup(struct cou *p,char *re,long *h); /*打印顧客資料*/ void cunq1();void cunq11(struct cou *p,char *re,long h); /*客戶存款資料的鍵入*/void cunq12(struct cou *p,char *re,long h); /*客戶取款資料的鍵入*/void cunq2();void cunq211(struct cou p,char *re,long *h); /*(把顧客存款資料)從文件讀到緩沖區(qū)*/void cunq212(struct cou *p,char *re,long *h);void cunq221(struct cou p,char *re,long *h); /*(把顧客取款資料)從文件讀到緩沖區(qū)*/void cunq222(struct cou *p,char *re,long *h);void help();long t;extern struct coulong b;char x20;long m;char a50;long d;float j;long bc;char jin20;char jin220;char t20;float j1;float j2;float j3;float j4;struct cou w200;void main() int m;while(1) system(cls);printf(n銀行存取款管理系統(tǒng)n);printf(【功能選擇】n);printf( 一:客戶添加與操作 二:存取款辦理 三:存取款查詢 四:關(guān)于n);printf(nn);printf(-請按相應(yīng)的數(shù)字選擇您的需要-n); scanf(%d,&m); switch(m) case 1:kehu();break; case 2:cunq1();break; case 3:cunq2();break; case 4:help();break; getchar();printf(nnnnn 按回車鍵返回主界面.); getchar(); void kehu() int m;char r20,b20,c20;long h,k;system(cls);printf(n);printf(n 客戶文件:1:客戶資料查詢); printf(n 2:客戶資料添加); printf(n 3:客戶資料修改); printf(n 4:客戶資料刪除); printf(n 5:后退nn); printf(n); printf(-按相應(yīng)的數(shù)字以選擇您的需要-n); scanf(%d,&m); switch(m) case 1: printf( n); printf( 1:客戶資料查詢 n); printf( n); printf( 請輸入您要查詢的客戶的姓名:n); scanf(%s,b); kehu1(w,b,&t); /*從文件讀到緩沖區(qū)*/ kehup(w,b,&t); /*打印*/ break; case 2: printf( n); printf( 2:客戶資料添加 n); printf( n); printf(請輸入新客戶的姓名和卡號(1-245):n); printf(請輸入姓名:n); scanf(%s,r); printf(請輸入卡號:n); scanf(%ld,&h); kehu2(w,r,h); /*把數(shù)據(jù)從緩沖區(qū)輸入到文件*/ break; case 3: printf( n); printf( 3:客戶資料修改 n); printf( n); printf(n請輸入您要修改的 客戶的姓名和卡號:n); printf(請輸入姓名:n); scanf(%s,c); printf(請輸入卡號:n); scanf(%ld,&k); kehu3(w,c,k); /*把 新數(shù)據(jù)從緩沖區(qū)輸入到文件*/ break; case 4: printf( n); printf( 4:客戶資料刪除 n); printf( n); printf(n請輸入您要刪除的 客戶姓名和卡號:n); printf(請輸入姓名:n); scanf(%s,c); printf(請輸入卡號:n); scanf(%ld,&k); kehu4(w,c,k); /*把 0 數(shù)據(jù)從緩沖區(qū)輸入到文件*/ break; case 5:break; default: fprintf(stderr,輸入有誤!); void kehu1(struct cou p,char *re,long *h)FILE *fp;system(cls);fp=fopen(re,rb);fread(h,4,1,fp);fread(&p*h,sizeof(struct cou),1,fp);fclose(fp);void kehup(struct cou *p,char *re,long *h) printf( 客戶 【 %s 】詳細(xì)資料n,re); printf(); printf(客戶卡號 ); printf(%ldn,*h); printf(); printf(客戶密碼 ); printf(%ldn,p*h.m); printf(); printf(客戶電話 ); printf(%ldn,p*h.d); printf(); printf(客戶地址 ); printf(%sn,p*h.a); printf(); printf(賬戶當(dāng)前金額 ); printf(%.2fn,p*h.j); printf();void kehu2(struct cou *p,char *re,long h)FILE *fp;system(cls);fp=fopen(re,wb);fwrite(&h,4,1,fp);printf(請鍵入顧客 【%s】(卡號 【 %ld 】 )的客戶資料:n,re,h);ph.b=h;printf(n 客戶密碼:n);scanf(%ld,&ph.m);printf(n 客戶地址:n);scanf(%s,ph.a);printf(n 客戶電話:(只接受10位以下的號碼)n);scanf(%ld,&ph.d);printf(n 客戶當(dāng)前金額:(建議不要使賬戶滿100萬)n);scanf(%f,&ph.j);fwrite(&ph,sizeof(struct cou),1,fp); fclose(fp);void kehu3(struct cou *p,char *re,long h)FILE *fp;system(cls);fp=fopen(re,wb);fwrite(&h,4,1,fp);printf(n請鍵入顧客 【%s】(卡號 【 %ld 】 )的新的客戶資料:n,re,h);ph.b=h;printf(n 修改后客戶密碼:n);scanf(%ld,&ph.m);printf(n 修改后客戶地址:n);scanf(%s,ph.a);printf(n 修改后客戶電話:n);scanf(%ld,&ph.d);fwrite(&ph,sizeof(struct cou),1,fp); fclose(fp);void kehu4(struct cou *p,char *re,long h)FILE *fp;system(cls);fp=fopen(re,wb);fwrite(&h,4,1,fp);printf(nnnn 請輸入0鍵以清除 :n);scanf(%s,ph.a); ph.m=0;ph.d=0;ph.j=0; ph.bc=0; fwrite(&ph,sizeof(struct cou),1,fp); fclose(fp); /*-*/void cunq1()int m;char g20;long m1;system(cls);printf(n);printf(n 1.存款辦理 2.取款辦理 3:后退n);printf(n);printf(nn-按相應(yīng)的數(shù)字以選擇您的需要-n); scanf(%d,&m); switch(m) case 1: printf( n); printf( 1.存款辦理 n); printf( n); printf( 請輸入辦理存款業(yè)務(wù)的客戶的姓名和卡號(1-245) nn); printf(輸入客戶姓名:n); scanf(%s,g); printf(輸入客戶卡號:n); scanf(%ld,&m1); cunq11(w,g,m1); /*存款數(shù)據(jù)輸入*/ break; case 2: printf( n); printf( 2:取款辦理 n); printf( n); printf( 請輸入辦理取款業(yè)務(wù)的客戶的姓名和卡號(1-245) nn); printf(輸入客戶姓名:n); scanf(%s,g); printf(輸入客戶卡號:n);scanf(%ld,&m1); cunq12(w,g,m1); break; case 3:break; default: fprintf(stderr,輸入有誤!); void cunq11(struct cou *p,char *re,long h) FILE *fp;system(cls);fp=fopen(re,wb);fwrite(&h,4,1,fp);printf(nn);printf( 存款辦理nn);printf(n);printf(請鍵入顧客 【%s】(卡號 %ld ) 的存款明細(xì):n,re,h);printf(請輸入存款流水號:n); scanf(%ld,&ph.bc); printf(請輸入存款數(shù)目(建議不要一次存超過百萬):n); scanf(%f,&ph.j1); ph.j2=ph.j+ph.j1; ph.j=ph.j2; printf(經(jīng)辦人:n); scanf(%s,ph.jin); printf(辦理時間(形如2012年06月2日):n); scanf(%s,ph.t); fwrite(&ph,sizeof(struct cou),1,fp); fclose(fp);void cunq12(struct cou *p,char *re,long h) FILE *fp;system(cls);fp=fopen(re,wb);fwrite(&h,4,1,fp);printf(nn);printf( 取款辦理nn);printf(nn);printf(請鍵入顧客 【%s】(卡號 %ld ) 的取款明細(xì):nn,re,h);printf(請輸入取款流水號:n); scanf(%ld,&ph.bc);printf(請輸入取款數(shù)目(建議不要一次存超過百萬):n);scanf(%f,&ph.j3); ph.j4=ph.j-ph.j3; ph.j=ph.j4;printf(經(jīng)辦人:n);scanf(%s,ph.jin2);printf(辦理時間(形如2012年06月2日):n);canf(%s,ph.t); fwrite(&ph,sizeof(struct cou),1,fp); fclose(fp);/*-*/void cunq2()int m;char v20;system(cls);printf(nn);printf( 1.存款查詢 2.取款查詢 3:后退nn);printf(n);printf(-按相應(yīng)的數(shù)字以選擇您的需要-n);scanf(%d,&m);switch(m)case 1: printf( n); printf( 1:存款查詢 n); printf( n);printf( 請輸入您要查詢的客戶的姓名:n);scanf(%s,v); cunq211(w,v,&t);cunq212(w,v,&t); break; /*注意*/case 2: printf( n); printf( 2:取款查詢 n); printf( n);printf( 請輸入您要查詢的客戶的姓名:n);scanf(%s,v);cunq221(w,v,&t);cunq222(w,v,&t);break;case 3:break; default: fprintf(stderr,輸入有誤!); void cunq211(struct cou p,char *re,long *h)FILE *fp;system(cls);fp=fopen(re,rb);fread(h,4,1,fp);fread(&p*h,sizeof(struct cou),1,fp);fclose(fp);void cunq212(struct cou *p,char *re,long *h) printf( 客戶 【 %s 】存款明細(xì)n,re); printf(); printf( 客戶卡號 ); printf(%ldn,*h); printf(); printf( 存款流水號 ); printf(%ldn,p*h.bc); printf(); printf( 類別 ); printf(存款n); printf(); printf( 存款數(shù)目 ); 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

提交評論