家庭支出管理系統(tǒng)的程序設(shè)計.doc_第1頁
家庭支出管理系統(tǒng)的程序設(shè)計.doc_第2頁
家庭支出管理系統(tǒng)的程序設(shè)計.doc_第3頁
家庭支出管理系統(tǒng)的程序設(shè)計.doc_第4頁
家庭支出管理系統(tǒng)的程序設(shè)計.doc_第5頁
已閱讀5頁,還剩13頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

-家庭支出管理系統(tǒng)一、課程內(nèi)容和要求內(nèi)容:該系統(tǒng)要求對一個家庭某月的支出情況進(jìn)行統(tǒng)計和分析。通過此課題,熟練掌握數(shù)組、指針的各種操作,以及一些算法思想的應(yīng)用。要求:(1)支出信息包括:支出類型(主要可以分為飲食,服飾裝扮,禮金,教育培訓(xùn),電器,健身,通訊,子女培養(yǎng),旅游,文化娛樂,醫(yī)療,交通,聚會,居住等小項),金額,消費地點,消費時間等。(2)需要實現(xiàn)的功能1)用戶根據(jù)口令進(jìn)入系統(tǒng)2)輸入某一月份,完成該月份的支出管理3)輸入并統(tǒng)計該月的支出情況4)顯示該月支出信息表,內(nèi)容應(yīng)包括日期,金額等5)按支出類型進(jìn)行分類統(tǒng)計和排序6)進(jìn)行本月消費分析,即分析每項支出所占總支出的百分比,并顯示分析結(jié)果7)顯示按支出類型排序后的支出信息8)將排序后的內(nèi)容存為文件。(3)界面友好,輸入信息符合邏輯如存款金額不為負(fù)數(shù)、不可能有非數(shù)字的字符等。(4)數(shù)據(jù)結(jié)構(gòu)和函數(shù)自行定義,要求清晰明確。二、需求分析結(jié)構(gòu)體定義:用結(jié)構(gòu)體來定義所要的消費信息的種類(消費類型,消費金額,消費地點,消費時間)。菜單函數(shù)intmenu_select():顯示該系統(tǒng)所擁有的功能,并利于用戶選擇自己所需要實現(xiàn)的功能。密碼函數(shù)voidpassword():驗證用戶所輸入的密碼是否正確,并且根據(jù)用戶意愿修改密碼,從而進(jìn)入系統(tǒng)。輸入密碼時密碼要用*表示。輸入函數(shù)intInputitems(familysum,intn):輸入用戶所要的消費情況。求總金額函數(shù)voidGetsum(familysum,intn):實現(xiàn)簡單的求和功能,計算出用戶所輸入的消費的總金額。輸出函數(shù)voidShowitems(familysum,intn):輸出用戶所輸入的信息。-排序函數(shù)voidpaixu(familysum,intn):對用戶所輸入的消費情況進(jìn)行歸類,并對同種類型的金額進(jìn)行從小到大排序。分析函數(shù)voidAnalyseitems(familysum,intn):對用戶所輸入的消費情況中的同種類型進(jìn)行疊加,計算各類型金額占總金額的百分比,通過它們各類型金額所占的百分比來直觀顯示哪種類型比較重要。保存函數(shù)voidsave(familysum,intn):保存用戶所要保存的消費信息進(jìn)入文件。主函數(shù)voidmain():通過該函數(shù)調(diào)用上述各函數(shù),從而實現(xiàn)該系統(tǒng)的管理功能。三、概要設(shè)計程序框架:開始先編寫一菜單函數(shù)來顯示該系統(tǒng)所能實現(xiàn)的功能,讓用戶了解并使用該系統(tǒng)所擁有的管理功能,并且編輯密碼函數(shù)來實現(xiàn)根據(jù)用戶指令進(jìn)入管理系統(tǒng);之后通過主函數(shù)來調(diào)用菜單函數(shù)menu_select,密碼函數(shù)password,求總金額函數(shù)Getsum,輸入函數(shù)Inputitems,輸出函數(shù)Showitems,排序函數(shù)paixu,分析函數(shù)Analyseitems,保存函數(shù)save,從而來實現(xiàn)該系統(tǒng)的管理功能。而添加數(shù)據(jù)的功能是采用調(diào)用輸入函數(shù)Inputitems來實現(xiàn)的。定義結(jié)構(gòu)體:定義消費的類型,聲明各結(jié)構(gòu)成員的變量含義typedefstruct/定義結(jié)構(gòu)體chartype20;/消費類型floatGetsum;/消費金額charplace20;/消費地點inttime;/消費時間主菜單月份菜單密碼驗證及修改退出系統(tǒng)輸入總和輸出排序分析保存退出-family;菜單函數(shù):通過getchar語句來讀入所要實現(xiàn)的功能序號,從而進(jìn)入相應(yīng)的函數(shù)模塊。密碼函數(shù):通過文件指針應(yīng)用,用scanf語句來讀取用戶所輸入的密碼,并與文件中所保存的密碼相比較,看是否能夠進(jìn)入管理系統(tǒng),并通過指針的應(yīng)用來修改密碼。輸入函數(shù):通過scanf語句逐項輸入消費的信息(類型,金額,地點,時間),輸入完畢后,跳回管理菜單重新選擇。求總函數(shù):通過for循環(huán)來實現(xiàn)消費金額Getsum的疊加,從而求出所輸入的消費情況的總金額getsum。輸出函數(shù):應(yīng)用for循環(huán)來逐項輸出消費情況。排序函數(shù):用for雙循環(huán)來對消費情況進(jìn)行歸類以及對同種類型的金額運用選擇排序法從小到大排序,并對文件指針*fp的應(yīng)用來使排序之后的消費信息存入文件。分析函數(shù):通過對排序函數(shù)的調(diào)用,來使消費信息進(jìn)行歸類,通過for雙循環(huán)來計算出各類型的金額sum1,并求出各類型的花費占總金額的百分比a。保存函數(shù):應(yīng)用文件指針*fp來將消費信息存入文件。主函數(shù):通過switch語句和case語句來調(diào)用各函數(shù),從而實現(xiàn)各函數(shù)的功能。四、源程序代碼#include#include#include#include#include#include#includetypedefstruct/定義結(jié)構(gòu)體chartype20;/消費類型floatGetsum;/消費金額charplace20;/消費地點inttime;/消費時間family;familyfam80;intmenu_select()/顯示該系統(tǒng)所具備的功能charc;dosystem(cls);/清屏printf(tt*n);-printf(tt*菜單系統(tǒng)*n);printf(tt|1.輸入消費信息|n);printf(tt|2.計算消費總和|n);printf(tt|3.顯示消費情況|n);printf(tt|4.對同種類型消費進(jìn)行排序并顯示|n);printf(tt|5.消費情況分析|n);printf(tt|6.添加消費信息|n);printf(tt|7.保存數(shù)據(jù)|n);printf(tt|0.退出系統(tǒng)|n);printf(tt*n);printf(tt*n);printf(ttt請對應(yīng)選擇所需選項(0-7):);c=getchar();while(c7);return(c-0);voidpassword()/密碼驗證或密碼修改intm;printf(tt*n);printf(tt*n);printf(tt*tt1.密碼修改*n);printf(tt*tt2.登陸*n);printf(tt*n);printf(tt*n);printf(ttt請輸入您所要的選項(1,2):);scanf(%d,&m);getchar();switch(m)case1:/密碼修改inti,j;chara7,b7,c7,d7;FILE*fp1;FILE*fp2;fp1=fopen(D:密碼.txt,r);if(!fp1)printf(filecannotbeopened);exit(1);for(i=0;!feof(fp1);i+)ai=fgetc(fp1);-fclose(fp1);printf(ttt請輸入原密碼:);for(j=0;j=0&bj=a&bj=A&bj=Z)putchar(*);if(a0=b0&a1=b1&a2=b2&a3=b3&a4=b4&a5=b5)doprintf(ttt請設(shè)置您的新密碼:);for(j=0;j=0&cj=a&cj=A&cj=Z)putchar(*);printf(ttt請確認(rèn)您的新密碼:);for(j=0;j=0&dj=a&dj=A&dj=Z)putchar(*);while(!(c0=d0&c1=d1&c2=d2&c3=d3&c4=d4&c5=d5);fp2=fopen(D:密碼.txt,w+);if(!fp2)printf(thefilecannotbeopened!);exit(1);i=0;while(i6)fprintf(fp2,%c,ci);i+;fclose(fp2);printf(ttt密碼修改成功!n);elseprintf(ttt密碼錯誤n);exit(0);-case2:/密碼驗證chare7,f7;intn=0;inti,j;FILE*fp1;fp1=fopen(D:密碼.txt,r);if(!fp1)printf(thefilecannotbeopened!);exit(1);for(i=0;!feof(fp1);i+)ei=fgetc(fp1);fclose(fp1);doprintf(ttt請輸入六位數(shù)密碼:);for(j=0;j=0&fj=a&fj=A&fj3)printf(errorn);exit(0);while(!(e0=f0&e1=f1&e2=f2&e3=f3&e4=f4&e5=f5);printf(nttt歡迎使用!n);intInputitems(familysum,intn)/輸入消費信息inti=0;charsign=y,x10;-while(sign!=n&sign!=N)printf(ttt種類:);scanf(ttt%s,sumn+i.type);printf(ttt支出(大于0):);scanf(ttt%f,&sumn+i.Getsum);printf(ttt地點:);scanf(ttt%s,sumn+i.place);printf(ttt時間(0-31):);scanf(ttt%d,&sumn+i.time);if(sumn+i.time31)returnfalse;gets(x);printf(ttt需要再次輸入嗎?(y/n);scanf(ttt%c,&sign);i+;return(n+i);voidGetsum(familysum,intn)/計算消費總金額floatgetsum=0;inti=0;for(i=0;in;i+)getsum+

溫馨提示

  • 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

提交評論