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

下載本文檔

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

文檔簡介

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

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

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

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

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

6、戶信息 if(fp=fopen("account.dat","w")=NULL) / 文件不存在時,創(chuàng)建新文件,輸入儲戶信息 printf("用戶不存在!n"); return ; printf("n請輸入儲戶帳號,并按回車鍵確認:n"); scanf("%s",dep.num); fprintf(fp,"n%sn",dep.num); printf("n請輸入儲戶姓名,并用回車鍵確認: n"); scanf("%s",

7、); fprintf(fp,"n%sn",); printf("n請輸入儲戶身份證號,并用回車鍵確認: n"); scanf("%s",dep.per); fprintf(fp,"n%sn",dep.per); printf("n請輸入儲戶密碼,并用回車鍵確認: n"); scanf("%f",&dep.sec); fprintf(fp,"n%fn",dep.sec); printf("n請輸入儲戶金額,并按回車鍵確認:

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

9、鍵確認:n");scanf("%s %f",s,&t); for(i=0;i<n;i+) if (strcmp(s,depi.num)=0 && t=depi.sec) break; if (i>=n | t!=depi.sec) printf("n 輸入錯誤 n"); return ; else printf("*儲戶的余額如下*n"); printf(" 余額 n"); printf("n %11.2f n", depi.mon); printf

10、("*n"); 3. 儲戶銷戶函數(shù)該函數(shù)的核心內(nèi)容是刪除算法以及最終對源文件的更新。該函數(shù)執(zhí)行時,首先調(diào)用reads函數(shù)將文件中的儲戶信息讀入數(shù)組當中,并由用戶輸入待刪除儲戶的賬號和密碼,而后按照該賬號和密碼進行查找,如果文件中存在該儲戶的信息,則采用刪除算法刪除,否則輸出儲戶信息不存在的提示信息。對儲戶信息的具體刪除算法是在結(jié)構(gòu)體數(shù)組中實現(xiàn)的,當儲戶的信息被找到后,位于數(shù)組中該儲戶后面的儲戶記錄依次向前移動一個元素的位置,這些操作完成后,要刪除的儲戶信息就被后面的數(shù)組元素覆蓋掉了,也就實現(xiàn)了刪除。在數(shù)組中刪除儲戶信息后,還要將更改后的信息重新寫回文件當中,以保證數(shù)據(jù)的一致

11、性。具體程序段如下:n=reads(dep); printf("n請輸入要刪除儲戶賬號,密碼,用空格隔開,按回車鍵確認:"); scanf("%s %f",number,&t); for(i=0;i<n;i+) if(strcmp(number,depi.num)=0&&t=depi.sec) break; if(i>=n|t!=depi.sec)printf("沒有找到該儲戶信息!n"); return; elsefor(j=i+1;j<n;j+) depj-1=depj; save(dep

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

13、法,在程序界面,以菜單的形式調(diào)用各功能函數(shù);程序可讀性強,界面友好;輸出形式美觀。五、參考文獻1 譚浩強C程序設(shè)計北京:清華大學(xué)出版社,20052 劉成等C語言程序設(shè)計實驗指導(dǎo)與習(xí)題集北京:中國鐵道出版社,2006六、源程序#include<stdio.h>#include<string.h>#include<stdlib.h>#include"conio.h"#define N 20struct depositorchar num20; char name20; char per20; float sec; float mon;void

14、 menu();int reads(struct depositor depN);void save(struct depositor depN,int n);void add();void del();void change();void show();void main()int n; while(1) menu(); printf("n 請輸入您要選擇的操作序號,按回車鍵確認:"); scanf("%d",&n); switch(n) case 1: add();break; case 2: show();break; case 3: de

15、l();break; case 4: change();break; case 5: exit(0); default: printf("輸入錯誤,請輸入列表中存在的序號!n ");void menu() printf(" % "); printf("n * 銀行個人賬戶管理系統(tǒng)* "); printf("n 1 儲戶開戶"); printf("n 2 余額查詢"); printf("n 3 儲戶銷戶"); printf("n 4 密碼修改"); prin

16、tf("n 5 退出"); printf("n * "); printf("n % ");int reads(struct depositor depN) / 讀取儲戶內(nèi)容FILE *fp; int i=0; if(fp=fopen("account.dat","r")=NULL) printf("文件打開失敗!n"); return 0; else for(i=0;!feof(fp);i+) fscanf(fp,"n%s %s %s %f %fn",de

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

18、uot;,depi.num,,depi.per,depi.sec,depi.mon ); fclose(fp);void add()/*儲戶開戶*/FILE *fp; struct depositor dep; if(fp=fopen("account.dat","a")=NULL) /如果文件已經(jīng)存在,可以追加儲戶信息 if(fp=fopen("account.dat","w")=NULL) / 文件不存在時,創(chuàng)建新文件,輸入儲戶信息 printf("用戶不存在!n"); r

19、eturn ; printf("n請輸入儲戶帳號,并按回車鍵確認:n"); scanf("%s",dep.num); fprintf(fp,"n%sn",dep.num); printf("n請輸入儲戶姓名,并用回車鍵確認: n"); scanf("%s",); fprintf(fp,"n%sn",); printf("n請輸入儲戶身份證號,并用回車鍵確認: n"); scanf("%s",dep.per

20、); fprintf(fp,"n%sn",dep.per); printf("n請輸入儲戶密碼,并用回車鍵確認: n"); scanf("%f",&dep.sec); fprintf(fp,"n%fn",dep.sec); printf("n請輸入儲戶金額,并按回車鍵確認: n"); scanf("%f",&dep.mon); fprintf(fp,"n%fn",dep.mon); printf("n *開戶成功*n")

21、; fclose(fp);void show() /余額查詢struct depositor depN; int i,n ;char s20;float t ; n=reads(dep); printf("n請用戶輸入賬號,密碼,用空格隔開,按回車鍵確認:n");scanf("%s %f",s,&t); for(i=0;i<n;i+) if (strcmp(s,depi.num)=0 && t=depi.sec) break; if (i>=n | t!=depi.sec) printf("n 輸入錯誤 n"); return ; else printf("*儲戶的余額如下*n"); printf(" 余額 n"); printf("n %11.2f n", depi.mon); printf("*n"); void del() /*儲戶信息刪除函數(shù)*/struct depositor depN; char number20;float t; int n,i,j; n=reads(dep); printf("n請輸

溫馨提示

  • 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)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論