帳目管理系統(tǒng)的設(shè)計與實現(xiàn)_第1頁
帳目管理系統(tǒng)的設(shè)計與實現(xiàn)_第2頁
帳目管理系統(tǒng)的設(shè)計與實現(xiàn)_第3頁
帳目管理系統(tǒng)的設(shè)計與實現(xiàn)_第4頁
帳目管理系統(tǒng)的設(shè)計與實現(xiàn)_第5頁
已閱讀5頁,還剩21頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、 PAGE PAGE 26名目 設(shè)計要求2 HYPERLINK l _TOC_250011 二 設(shè)計作用與目的2 HYPERLINK l _TOC_250010 三 運行環(huán)境及工具軟件2 HYPERLINK l _TOC_250009 3。1 硬件環(huán)境3 HYPERLINK l _TOC_250008 3。2 軟件環(huán)境3 HYPERLINK l _TOC_250007 四 系統(tǒng)設(shè)計3 HYPERLINK l _TOC_250006 4.1 系統(tǒng)總體設(shè)計34.2程序設(shè)計組成框圖、流程圖 3 HYPERLINK l _TOC_250005 4.3 各模塊具體設(shè)計54.3。1 主函數(shù)模塊設(shè)計5 HY

2、PERLINK l _TOC_250004 4。3.2 創(chuàng)建函數(shù)模塊6 HYPERLINK l _TOC_250003 4。3。3 查看函數(shù)模塊8 HYPERLINK l _TOC_250002 4。3.4 開戶函數(shù)模塊8 HYPERLINK l _TOC_250001 4.3.5 銷戶函數(shù)模塊10 HYPERLINK l _TOC_250000 4。3.6修改帳目函數(shù)模塊 114.3。7 查詢函數(shù)模塊12五源程序設(shè)計14六試驗調(diào)試結(jié)果26七設(shè)計中的問題及解決方法 29八設(shè)計心得29九參考文獻30帳目管理系統(tǒng)的設(shè)計與實現(xiàn)一、設(shè)計要求時,通過帳目管理系統(tǒng)的設(shè)計,運用計算機軟件軟件基礎(chǔ)所學(xué)的學(xué)問,

3、提高編程愛好與編程思路,合理的運用資料,實現(xiàn)理論與實際相結(jié)合.份證號、建賬日期等信息;另一個是賬戶余額,包括賬戶的賬號和當前余額兩項數(shù)據(jù)。本程序能夠執(zhí)行賬戶的開戶、借款、還款、存款、清戶(刪除)等操作,而且能夠大到小排序功能和按開戶日期從小到大排序功能等。號并通知用戶,并將相關(guān)數(shù)據(jù)同時插入上述兩個鏈表中;余額為負數(shù)表示借款額,為正數(shù)表示存款額??铑~賬戶的基本信息和當前余額??傤~的差額。收集資料,全面分析課題,分解問題,形成總體編程思路;深化分析各個小問題,編寫各部分程序模塊;對于設(shè)計中用到的關(guān)鍵函數(shù),要聯(lián)系問題進行具體介紹;上機調(diào)試,確保程序能正確運行,完成設(shè)計報告,并進行答辯.二、設(shè)計作用與

4、目的通過設(shè)計,強化 C 語言的運用及 C 語句的精確把握; (2)通過設(shè)計,加強我們對計算機軟件軟件基礎(chǔ)學(xué)問的理解和運用; (4)通過設(shè)計,熬煉撰寫報告的水平。三、運行環(huán)境及工具軟件硬件環(huán)境運行時內(nèi)存要求:1MB;2MB;軟件環(huán)境操作系統(tǒng):Windows 2000/XPista工具軟件:MyTC四、系統(tǒng)設(shè)計4.1 系統(tǒng)總體設(shè)計銀行帳目管理系統(tǒng)創(chuàng)建空賬目顯示賬目信銀行帳目管理系統(tǒng)創(chuàng)建空賬目顯示賬目信添加賬目修改賬目查找賬目刪除賬目姓身金 日借存取賬最最4.2息名份圖銀帳目管系統(tǒng)塊款戶大大序設(shè)計組框圖、流程圖個存 借號數(shù)款 款碼戶 戶開頭開頭初始界面功能選擇Y創(chuàng)建新號進行創(chuàng)建新號NY顯示賬目進行顯

5、示賬目NY添加賬目進行添加賬目NY刪除賬目進行刪除賬目NY修改賬目進行修改賬目NY查詢賬目進行查詢賬目NN退出系統(tǒng)Y2結(jié)束統(tǒng)的設(shè)計與實現(xiàn)操作流程4。3函數(shù):先由account.txt”,”r+”;由于進行的“r+“Daccount。文件.4.3。1主函數(shù)用到函數(shù)為: fopen(打開文件)相關(guān)函數(shù) open,fclose表頭文件 #includestdio.hFILE fopen(const char path,const char * mode);mode代表著流形態(tài).moder 打開只讀文件,該文件必需存在。r+ 打開可讀寫的文件,該文件必需存在。0,即該文件內(nèi)容會消逝。若文件不存在則建立

6、該文件。w+。若文件不存在則建立該文件。a 以附加的方式打開只寫文件。若文件不存在,則會建立該文件,假如文件存在,寫入的數(shù)據(jù)會被加到文件尾,即文件原先的內(nèi)容會被保留. a+文件存在,寫入的數(shù)據(jù)會被加到文件尾后,即文件原先的內(nèi)容會被保 留。156創(chuàng)建一個空賬目;顯示賬目信息;添加新賬目;推出程序;證號、建賬日期等信息;另一個是賬戶余額,包括賬戶的賬號和當前余額兩項數(shù)據(jù)。本程序只創(chuàng)建了一個單鏈表:struct bankdata義一個結(jié)構(gòu)體/int num;/賬戶的賬號/ charname20;/姓名*/char person_nu19; /*身份證號 float balance;/*金額*/int

7、 establishtime;/*日期/所以在對賬戶的余額的操作功能上有教大的欠缺,日后定將進一步完善此項功能.4。3.2 創(chuàng)建函數(shù)模塊create(FILEptr)/*創(chuàng)建具有結(jié)構(gòu)體的空文檔*/struct bankdata data=1,”NONAME”,”NONUM,0,0創(chuàng)建一個空賬目.for本功能模塊用到的函數(shù)有:置)相關(guān)函數(shù)rewind,ftell,fgetpos,fsetpos,lseek表頭文件include定義函數(shù)int fseek(FILE stream,long offset,int whence);函數(shù)說明fseek()streamoffsetwhence參數(shù)whenc

8、eSEEK_CUR 以目前offsetSEEK_ENDoffsetSEEK_ENDoffset下列是較特殊的使用方式: 返回值當調(diào)用成功時則返回 0,若有錯誤則返回-1,errno 會存放錯誤代碼.附加說明fseek()lseek()ftell()來取得目前讀寫的位置.據(jù)寫至文件流)#includestdio.h stream);fwrite(streamptrsizenmemb打算。Fwrite()nmemb返回值 返回實際寫入的 nmemb 數(shù)目。4.3.3 查看函數(shù)模塊1view(FILE*ptr)/*查看文檔內(nèi)容/本功能模塊用到的函數(shù)有:fseek (FILE * stream,lon

9、g offset,int whence);fread(從文件流讀取數(shù)據(jù))#includestdio.hsize_tfread(void*ptr,size_tsize,size_tnmemb,FILE* stream);stream文件指針,參數(shù) ptr 指向欲存放讀取進來的數(shù)據(jù)空間,讀取sizenmemb.Fread()會返回實際讀nmembnmemb 來得小,則代表feof()或ferror()來打算發(fā)生什么狀況。返回值 返回實際讀取到的 nmemb 數(shù)目。4.3。4 開戶函數(shù)模塊2add(FILE*ptr)/添加一個帳目/添加賬目,輸入用戶操作,自動生成帳號并通知用戶,并將相關(guān)數(shù)據(jù)同時插入

10、上述兩個鏈表中;本程序賬號由人工手動輸入.其余項目也有人工輸入。fseek(ptr,numsizeof(structbankdata),SEEK_SET);fread(&data,sizeof(structbankdata),1,ptr); Scan(;fsee(ptr,data。num*sizeof(struct bankdata,SEEK_SET);fwrite(&data,sizeof(struct bankdata),1,ptr);實現(xiàn)對數(shù)據(jù)的輸入,及存儲。通過函數(shù)嵌套操作實現(xiàn)對用戶身份證號碼的格式化操作。*person_num)18)*/開 戶開 戶新賬號姓 名身份證號是否正確NY金

11、 額日 期完 成3 開戶功能模塊流程圖4.3.5 銷戶函數(shù)模塊delete(FILE*ptr)/刪除一個帳目/for(num=0;num=15;num+)fsee(ptr,num(sizeof(struct , fread(name2,20,1,ptr);if(strcmp(name1,name2)=0)num1num=num;對輸入用戶進行查找,并與賬目內(nèi)容進行比較。提示.4。3.6modify(FILE*ptr)/*修改帳目/程序設(shè)計要求:本程序能夠執(zhí)行賬戶的借款、還款、存款操作。輸入余額為負數(shù)表示借款額,為正數(shù)表示存款額。本功能對程序的綜合力量要求較高,時間有限,待以后進一步完善。修改賬

12、目修改賬目姓名功能選擇Y查戶數(shù)進行借款NY還款進行還款NY存款進行存款N結(jié)束4 修改賬目功能模塊流程圖4。3.7 查詢函數(shù)模塊5research(FILE*ptr)/對所需賬目內(nèi)容進行查詢/模塊功能流圖如下查詢賬目查詢賬目功能選擇Y賬戶個數(shù)顯示賬戶數(shù)NY最大存款顯示最大存款NY最大借款顯示最大借款NN退出Y結(jié)束圖 5 查詢模功能模塊流程圖打開界面,進入查詢操作:6 查詢系統(tǒng)界面查詢功能包含三項子功能:0countn/查詢所存有的賬戶個數(shù)/1-Themax。depositor accountn/查詢最大存款戶/”2-The max.borrowing accountn/查詢最大借款戶/3-qui

13、ten/*退出查詢*/的余額從大到小排序功能和按開戶日期從小到大排序功能等。能夠按賬號查詢賬戶的基本信息和當前余額,能夠列出最大借款額賬戶和最大存款額賬戶的基本信息和當前余額。當前借款總額、當前還款總額以及借款總額與存款總額的差額。推斷語句進行選項操作2-操作都是用選擇排序法,分別找出最大存款戶和最大借款戶???所以用選擇排序法進行查找操做。五、源程序設(shè)計includestructbankdata/intnum;/賬戶的賬號*/charname20;/姓名/charperson_num19;/*身份證號*/floatbalance;/*金額*/intestablishtime;/日期*/cre

14、ate(FILE*ptr)/*創(chuàng)建具有結(jié)構(gòu)體的空文檔*/intnum;struct bankdata data=1,NONAME,”NONUM,0,0;for(num=0;num=15;num+)fseek(ptr,numsizeof(struct bankdata),SEEK_SET);fwrite(&data,sizeof(structbankdata),1,ptr);printf(Blank accounts have been created completen”;view(FILE*ptr)/查看文檔內(nèi)容/int num;struct bankdata data;clrscr(;/掉

15、/printf(the accountnum,the account person_name,theperson_num,blankdata,the estableshtimen”);fornum=0;num15;num+fseek(ptr,numsizeof(struct bankdata),SEEK_SET);frea(&data,sizeof(struct bankdata),1,ptr;printf(%-10d16s20s%-10f% 15dn,data。num,data。name,data。person_num,data.balance,data。establishtime);add

16、(FILE*ptr)/添加一個帳目*/int num;struct bankdata data;printf(”Enter new account number(015):n”);scanf(%d”,&num);fseek(ptr,num*sizeof(struct bankdata),SEEK_SET);fread(&data,sizeof(struct bankdata),1,ptr); if(data.num!=-1)printf(”Account %d already contains informaton。n”,num);elseprintf(”Enter name。 scanf(%

17、s”,data。name);printf(please put into the person_num:getperson_num(data。person_num); printf(”Enter balance.n); scan(”%f”,data。balance; printf(”Enter establishtime。n”; scanf(%d”,data。establishtime); data.num=num;fseek(ptr,data.num*sizeof(struct bankdata),SEEK_SET);fwrite(&data,sizeof(structbankdata),1

18、,ptr);getperson_num(charperson_num)/*函數(shù)功能:讀取用戶身份證號碼(15者 18)*/doint i,mark; char ch; for(i=0;i+)(只能是數(shù)字)/if(ch=getchar())!=n)break;if(ch=9ch=0)person_numi=ch;elseelse break;person_numi=0; i(strlen(person_num)!=15&strlen(person_num!=18)printf(”ID number can only be 15,or 18-bit,the person_num shouldbe

19、a num!n;elsebreak;while(1);/循環(huán)以保證讀入數(shù)據(jù)有效*/delete(FILEptr)/*刪除一個帳目/intnum,num2;-1,1;char charname220;struct bankdata blankdata=1,NONAME”,”NONUM,0,0;struct bankdata data;printf(”Enter delete name.n);scanf(”%s”,name1; for(num=0;num=15;num+)fsee(ptr,num(sizeof(struct t fread(name2,20,1,ptr);if(strcmp(nam

20、e1,name2)=0)num1num=num;for(num=0,num2=0;num=15;num+)i(num1num!=1)fseek(ptr,numsizeof(struct bankdata),SEEK_SET);fread(data,sizeof(structbankdata),1,ptr);printf(%10d-16s%20s%15f-15dn,data.num,dataname,data.person_num,data.balance,data.establishtime);num2+;if(num1printf(”Which account do you want to

21、delete?n);scanf(”%d”,num;fseek(ptr,numsizeof(struct bankdata),SEEK_SET); fwrite(blankdata,sizeof(structbankdata),1,ptr); if(num2=1)fsee(ptr,data.numsizeof(struct fwrite(blankdata,sizeof(structbankdata),1,ptr);if(num2=0) printf(There is no your name。n”);modify(FILEptr)/修改帳目*/int num,num2;-1;float num

22、1;char name120;charname220;struct bankdata data;printf(Entermodifyname。n);scanf(%s,name1; for(num=0;num=15;num+)fsee(ptr,num*(sizeof(struct aT fread(name2,20,1,ptr);if(strcmp(name1,name2)=0) num3num=num;for(num=0,num2=0;numprintf(Which account do you want to modify?n);scanf(%d,num);fseek(ptr,num*siz

23、eof(struct bankdata),SEEK_SET);fread(data,sizeof(struct bankdata),1,ptr); printf(Enter charge(+) or payment(-)n); scanf(”f”,num1;data。balance+=num1;fseek(ptr,numsizeof(struct bankdata),SEEK_SET);fwrite(data,sizeof(structbankdata),1,ptr);if(num2=1)printf(Enter charge(+) or payment(-)n”);scanf(”%f,num

24、1);data。balance+=num1;fseek(ptr,data。num*sizeof(struct bankdata),SEEK_SET);fwrite(&data,sizeof(struct bankdata),1,ptr;if(num2=0) printf(”There is no your name.n);/*/ research(FILE*ptr)/*查詢*/FILE refptr;int num,num2;int count=0;int res_choice=0;int arraydata15;int pData15; inti,j,x=0;int n=0; int iTe

25、mp;int iPos;struct bankdata data;clrscr();while(res_choice!=3)printf(nEnteryourres_choicen/菜單/”0-countn”/賬戶個數(shù)*/”1The max. depositor accountn /最大存款戶*/2Themax。 borrowing accountn”/最大借款戶/3-quiten);/*退出查詢*/scanf(”d”,&res_choice; if(res_choice=0)for(num=0;num); printf(”Theaccountnumberisdn,count);elseif(

26、res_choice=1)for(num=0;num15;num+)fseek(ptr,num*sizeof(struct fread(&data,sizeof(structbankdata),1,ptr);if(data。balance0) arraydatan=data。balance; n+/*編程過程測試用printf(arraydata0=); printf(10dn,arraydata0); printf(arraydata1=”); printf(10dn,arraydatan1);*/for(i=0;in;i+)printf(10dn”,arraydatai);for(x=0;

27、xiTemp)iTemp=arraydataj;iPos=j;arraydataiPos=arraydata0;arraydata0=iTemp;if(arraydata00)printf(”The max. depositor account is);printf(%10dn,arraydata0);elseprintf(”There is no the max。 depositor account);else if(res_choice=2)for(num=0;num15;num+)fseek(ptr,numsizeof(struct bankdata),SEEK_SET);freadda

28、ta,sizeof(struct bankdata,1,ptr;if(data.balance0) arraydatan=data.balance; n+;elsebreak;for(x=0;xn;x+)iTemp=arraydata0; iPos=x;for(j=x+1;jn;j+)if(arraydatajiTemp)iTemp=arraydataj;iPos=j;arraydataiPos=arraydata0;arraydata0=iTemp;if(arraydatax1”); printf(Themax。 borrowing account is”);printf(”%10dn”,arraydatax1;elseprintf(”There is no the m

溫馨提示

  • 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

提交評論