c語言銀行賬戶系統(tǒng) 課程設(shè)計(jì).doc_第1頁
c語言銀行賬戶系統(tǒng) 課程設(shè)計(jì).doc_第2頁
c語言銀行賬戶系統(tǒng) 課程設(shè)計(jì).doc_第3頁
c語言銀行賬戶系統(tǒng) 課程設(shè)計(jì).doc_第4頁
c語言銀行賬戶系統(tǒng) 課程設(shè)計(jì).doc_第5頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、課程設(shè)計(jì)任務(wù)書題目:銀行個(gè)人賬戶管理系統(tǒng)(2)一、課程設(shè)計(jì)時(shí)間共計(jì)1周,20學(xué)時(shí)。二、課程設(shè)計(jì)內(nèi)容用C語言編寫軟件完成以下任務(wù):1 儲(chǔ)戶開戶(儲(chǔ)戶數(shù)據(jù)包括帳號(hào),姓名,身份證號(hào),密碼和賬戶余額等),儲(chǔ)戶的信息保存在account.dat文件中,應(yīng)對儲(chǔ)戶的開戶金額做出限制(如金額不低于10元錢)。2 儲(chǔ)戶的密碼修改。3 儲(chǔ)戶的余額查詢。4 儲(chǔ)戶銷戶。5 儲(chǔ)戶的各項(xiàng)信息更改后,應(yīng)同時(shí)更新account.dat文件中的內(nèi)容。三、課程設(shè)計(jì)要求1. 程序質(zhì)量: 貫徹結(jié)構(gòu)化的程序設(shè)計(jì)思想。 用戶界面友好,功能明確,操作方便。 用戶界面中的菜單至少應(yīng)包括“儲(chǔ)戶開戶”、“密碼修改”、“余額查詢”、“銷戶”和“退

2、出”5項(xiàng)。 代碼應(yīng)適當(dāng)縮進(jìn),并給出必要的注釋,以增強(qiáng)程序的可讀性。2. 課程設(shè)計(jì)說明書:課程結(jié)束后,上交課程設(shè)計(jì)說明書和源程序。課程設(shè)計(jì)說明書的格式和內(nèi)容參見提供的模板。四、指導(dǎo)教師和學(xué)生簽字指導(dǎo)教師:_ 學(xué)生簽名:_五、說明書成績六、教師評語目 錄一、需求分析1二、程序流程圖2三、核心技術(shù)的實(shí)現(xiàn)說明及相應(yīng)程序段5四、課設(shè)總結(jié)9五、參考文獻(xiàn)9六、源程序10一、需求分析經(jīng)過對程序設(shè)計(jì)題目的分析可知,整個(gè)程序的設(shè)計(jì)實(shí)現(xiàn)大致分為九個(gè)模塊,每一個(gè)模塊對應(yīng)一個(gè)函數(shù)。在這些函數(shù)當(dāng)中,儲(chǔ)戶開戶函數(shù),余額查詢函數(shù),儲(chǔ)戶銷戶函數(shù),密碼查詢函數(shù)的實(shí)現(xiàn)嚴(yán)格按照題目的要求,而更改數(shù)據(jù)函數(shù)和顯示函數(shù)屬于附加功能。讀取文

3、件函數(shù)和保存信息函數(shù)對其它函數(shù)的實(shí)現(xiàn)起輔助作用,主函數(shù)及菜單函數(shù)控制程序的整體運(yùn)行。1. 儲(chǔ)戶開戶函數(shù) 主要實(shí)現(xiàn)程序最初運(yùn)行時(shí)儲(chǔ)戶信息的錄入以及其后的運(yùn)行中儲(chǔ)戶信息的追加功能;2. 余額查詢函數(shù) 允許按照賬號(hào)和密碼對儲(chǔ)戶的余額進(jìn)行查詢;3. 儲(chǔ)戶銷戶函數(shù) 實(shí)現(xiàn)的功能是按照賬號(hào)和密碼對儲(chǔ)戶的信息進(jìn)行刪除;4. 儲(chǔ)戶密碼修改函數(shù) 可以實(shí)現(xiàn)對儲(chǔ)戶的密碼進(jìn)行修改;5. 顯示函數(shù) 實(shí)現(xiàn)的是顯示目前所有的有效儲(chǔ)戶記錄信息。除上面介紹的功能之外,程序還具有退出功能,可以在程序的一次運(yùn)行當(dāng)中循環(huán)執(zhí)行所有的功能,并根據(jù)需要終止程序的執(zhí)行。每一個(gè)儲(chǔ)戶記錄都包含賬號(hào),姓名,密碼,身份證號(hào)和余額,在程序當(dāng)中,將儲(chǔ)戶記

4、錄類型定義為結(jié)構(gòu)體類型,添加以及追加的儲(chǔ)戶信息直接寫入E盤的account.dat文件中,其它函數(shù)每次對儲(chǔ)戶記錄的訪問,其數(shù)據(jù)來源都是account.dat文件,這樣做不但可以保證儲(chǔ)戶信息的一致性,而且可以對儲(chǔ)戶信息進(jìn)行永久保存,保證每次運(yùn)行程序都可以采用原來的數(shù)據(jù)。二、程序流程圖1. 程序總體結(jié)構(gòu)圖圖1程序總體結(jié)構(gòu)圖2. 具體功能框圖(1)儲(chǔ)戶開戶函數(shù)add圖2 添加儲(chǔ)戶信息函數(shù)(2)讀取儲(chǔ)戶信息函數(shù)reads圖3讀取儲(chǔ)戶信息(3)儲(chǔ)戶銷戶函數(shù)del圖4 刪除儲(chǔ)戶記錄三、核心技術(shù)的實(shí)現(xiàn)說明及相應(yīng)程序段本程序主要由九個(gè)自定義函數(shù)和一個(gè)主函數(shù)組成,其中主函數(shù)以菜單的形式調(diào)用其它函數(shù)來實(shí)現(xiàn)要求的所

5、有功能。在這些函數(shù)當(dāng)中,添加儲(chǔ)戶開戶函數(shù)、余額查詢函數(shù)和儲(chǔ)戶銷戶函數(shù)是程序中較為核心的部分,下面分別進(jìn)行說明。1. 儲(chǔ)戶開戶函數(shù)開戶分為兩種情況,其一是在儲(chǔ)戶文件(account.dat)不存在的情況下,首先由程序創(chuàng)建一個(gè)新文件,并將錄入的儲(chǔ)戶信息寫入該文件當(dāng)中;其二是在儲(chǔ)戶文件(account.dat)已經(jīng)存在的情況下,此時(shí)文件以追加的方式打開,這樣才可以保證以前已經(jīng)存在的信息不丟失。具體的程序段如下:if(fp=fopen(account.dat,a)=NULL) /如果文件已經(jīng)存在,可以追加儲(chǔ)戶信息 if(fp=fopen(account.dat,w)=NULL) / 文件不存在時(shí),創(chuàng)建

6、新文件,輸入儲(chǔ)戶信息 printf(用戶不存在!n); return ; printf(n請輸入儲(chǔ)戶帳號(hào),并按回車鍵確認(rèn):n); scanf(%s,dep.num); fprintf(fp,n%sn,dep.num); printf(n請輸入儲(chǔ)戶姓名,并用回車鍵確認(rèn): n); scanf(%s,); fprintf(fp,n%sn,); printf(n請輸入儲(chǔ)戶身份證號(hào),并用回車鍵確認(rèn): n); scanf(%s,dep.per); fprintf(fp,n%sn,dep.per); printf(n請輸入儲(chǔ)戶密碼,并用回車鍵確認(rèn): n); scanf(%f,

7、&dep.sec); fprintf(fp,n%fn,dep.sec); printf(n請輸入儲(chǔ)戶金額,并按回車鍵確認(rèn): n); scanf(%f,&dep.mon); fprintf(fp,n%fn,dep.mon); printf(n *開戶成功*n); fclose(fp);2. 余額查詢函數(shù) 對儲(chǔ)戶的余額查詢首先調(diào)用reads函數(shù)將文件中的儲(chǔ)戶信息讀入數(shù)組當(dāng)中,并由用戶輸入待查詢儲(chǔ)戶的賬號(hào)和密碼,而后按照該賬號(hào)和密碼進(jìn)行查找,如果文件中存在該儲(chǔ)戶的信息,則采用查詢函數(shù)進(jìn)行查詢,否則輸出輸入錯(cuò)誤的提示信息。具體程序段如下:n=reads(dep); printf(n請用戶輸入賬號(hào),密碼

8、,用空格隔開,按回車鍵確認(rèn):n);scanf(%s %f,s,&t); for(i=0;i=n | t!=depi.sec) printf(n 輸入錯(cuò)誤 n); return ; else printf(*儲(chǔ)戶的余額如下*n); printf( 余額 n); printf(n %11.2f n, depi.mon); printf(*n); 3. 儲(chǔ)戶銷戶函數(shù)該函數(shù)的核心內(nèi)容是刪除算法以及最終對源文件的更新。該函數(shù)執(zhí)行時(shí),首先調(diào)用reads函數(shù)將文件中的儲(chǔ)戶信息讀入數(shù)組當(dāng)中,并由用戶輸入待刪除儲(chǔ)戶的賬號(hào)和密碼,而后按照該賬號(hào)和密碼進(jìn)行查找,如果文件中存在該儲(chǔ)戶的信息,則采用刪除算法刪除,否則輸

9、出儲(chǔ)戶信息不存在的提示信息。對儲(chǔ)戶信息的具體刪除算法是在結(jié)構(gòu)體數(shù)組中實(shí)現(xiàn)的,當(dāng)儲(chǔ)戶的信息被找到后,位于數(shù)組中該儲(chǔ)戶后面的儲(chǔ)戶記錄依次向前移動(dòng)一個(gè)元素的位置,這些操作完成后,要?jiǎng)h除的儲(chǔ)戶信息就被后面的數(shù)組元素覆蓋掉了,也就實(shí)現(xiàn)了刪除。在數(shù)組中刪除儲(chǔ)戶信息后,還要將更改后的信息重新寫回文件當(dāng)中,以保證數(shù)據(jù)的一致性。具體程序段如下:n=reads(dep); printf(n請輸入要?jiǎng)h除儲(chǔ)戶賬號(hào),密碼,用空格隔開,按回車鍵確認(rèn):); scanf(%s %f,number,&t); for(i=0;i=n|t!=depi.sec)printf(沒有找到該儲(chǔ)戶信息!n); return; elsefor

10、(j=i+1;jn;j+) depj-1=depj; save(dep,n-1); printf(銷戶成功!n);四、課設(shè)總結(jié) 本次課設(shè),我感受很多。深刻地懂得了理論聯(lián)系實(shí)際的重要性。在課設(shè)過程中,我發(fā)現(xiàn)了自己有很多欠缺的地方,比如:涉及的相關(guān)知識(shí)不全面,知識(shí)學(xué)得不夠透徹,在課設(shè)時(shí)就會(huì)遇到重重困難,它啟示著我在以后的學(xué)習(xí)中要精益求精,對有用的知識(shí)要做到深入研究。 我很感謝指導(dǎo)老師,和在課設(shè)過程中幫助過我的同學(xué),他們能在我困難的時(shí)候,幫我從困境中解脫出來,讓我能順利地在有限的時(shí)間里,完成任務(wù)。本次課設(shè),不僅深化了我對課本內(nèi)容的理解,而且拓寬了我的知識(shí)面。我的程序按照指導(dǎo)任務(wù)書的要求順利地完成了任

11、務(wù),實(shí)現(xiàn)了所有的功能,整個(gè)程序采用模塊化設(shè)計(jì)方法,在程序界面,以菜單的形式調(diào)用各功能函數(shù);程序可讀性強(qiáng),界面友好;輸出形式美觀。五、參考文獻(xiàn)1 譚浩強(qiáng)C程序設(shè)計(jì)北京:清華大學(xué)出版社,20052 劉成等C語言程序設(shè)計(jì)實(shí)驗(yàn)指導(dǎo)與習(xí)題集北京:中國鐵道出版社,2006六、源程序#include#include#include#includeconio.h#define N 20struct depositorchar num20; char name20; char per20; float sec; float mon;void menu();int reads(struct depositor d

12、epN);void save(struct depositor depN,int n);void add();void del();void change();void show();void main()int n; while(1) menu(); printf(n 請輸入您要選擇的操作序號(hào),按回車鍵確認(rèn):); scanf(%d,&n); switch(n) case 1: add();break; case 2: show();break; case 3: del();break; case 4: change();break; case 5: exit(0); default: pri

13、ntf(輸入錯(cuò)誤,請輸入列表中存在的序號(hào)!n );void menu() printf( % ); printf(n * 銀行個(gè)人賬戶管理系統(tǒng)* ); printf(n 1 儲(chǔ)戶開戶); printf(n 2 余額查詢); printf(n 3 儲(chǔ)戶銷戶); printf(n 4 密碼修改); printf(n 5 退出); printf(n * ); printf(n % );int reads(struct depositor depN) / 讀取儲(chǔ)戶內(nèi)容FILE *fp; int i=0; if(fp=fopen(account.dat,r)=NULL) printf(文件打開失敗!n)

14、; return 0; else for(i=0;!feof(fp);i+) fscanf(fp,n%s %s %s %f %fn,depi.num,,depi.per,&depi.sec,&depi.mon); fclose(fp); return i; void save(struct depositor depN,int n) / 儲(chǔ)戶保存后信息FILE *fp; int i=0; if(fp=fopen(account.dat,w)=NULL) printf(文件打開失敗!n); return ; else for(i=0;in;i+) fprintf(fp,n%s

15、%s %s %f %fn,depi.num,,depi.per,depi.sec,depi.mon ); fclose(fp);void add()/*儲(chǔ)戶開戶*/FILE *fp; struct depositor dep; if(fp=fopen(account.dat,a)=NULL) /如果文件已經(jīng)存在,可以追加儲(chǔ)戶信息 if(fp=fopen(account.dat,w)=NULL) / 文件不存在時(shí),創(chuàng)建新文件,輸入儲(chǔ)戶信息 printf(用戶不存在!n); return ; printf(n請輸入儲(chǔ)戶帳號(hào),并按回車鍵確認(rèn):n); scanf(%s,dep.num

16、); fprintf(fp,n%sn,dep.num); printf(n請輸入儲(chǔ)戶姓名,并用回車鍵確認(rèn): n); scanf(%s,); fprintf(fp,n%sn,); printf(n請輸入儲(chǔ)戶身份證號(hào),并用回車鍵確認(rèn): n); scanf(%s,dep.per); fprintf(fp,n%sn,dep.per); printf(n請輸入儲(chǔ)戶密碼,并用回車鍵確認(rèn): n); scanf(%f,&dep.sec); fprintf(fp,n%fn,dep.sec); printf(n請輸入儲(chǔ)戶金額,并按回車鍵確認(rèn): n); scanf(%f,&dep.m

17、on); fprintf(fp,n%fn,dep.mon); printf(n *開戶成功*n); fclose(fp);void show() /余額查詢struct depositor depN; int i,n ;char s20;float t ; n=reads(dep); printf(n請用戶輸入賬號(hào),密碼,用空格隔開,按回車鍵確認(rèn):n);scanf(%s %f,s,&t); for(i=0;i=n | t!=depi.sec) printf(n 輸入錯(cuò)誤 n); return ; else printf(*儲(chǔ)戶的余額如下*n); printf( 余額 n); printf(n

18、%11.2f n, depi.mon); printf(*n); void del() /*儲(chǔ)戶信息刪除函數(shù)*/struct depositor depN; char number20;float t; int n,i,j; n=reads(dep); printf(n請輸入要?jiǎng)h除儲(chǔ)戶賬號(hào),密碼,用空格隔開,按回車鍵確認(rèn):); scanf(%s %f,number,&t); for(i=0;i=n|t!=depi.sec)printf(沒有找到該儲(chǔ)戶信息!n); return; elsefor(j=i+1;jn;j+) depj-1=depj; save(dep,n-1); printf(銷戶成功

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論