




已閱讀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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 試訓(xùn)隊員合同協(xié)議書
- 2025年藥物檢測設(shè)備項目發(fā)展計劃
- 網(wǎng)紅美食區(qū)域代理加盟合同及特色配料研發(fā)供應(yīng)協(xié)議
- 網(wǎng)上商店經(jīng)營風(fēng)險管理與責(zé)任協(xié)議
- 土地承包經(jīng)營權(quán)流轉(zhuǎn)與農(nóng)業(yè)循環(huán)經(jīng)濟(jì)項目合作協(xié)議
- 醫(yī)用麻醉設(shè)備全面檢修與保養(yǎng)合同
- 快遞末端網(wǎng)點承包經(jīng)營與快遞成本控制協(xié)議
- 跨境網(wǎng)絡(luò)游戲版號申請代理服務(wù)合同
- 農(nóng)村留守兒童勞動教育扶持協(xié)議
- 抖音平臺短視頻內(nèi)容創(chuàng)作者收益分配與權(quán)益保障協(xié)議
- 微生物實驗室病原微生物評估報告
- 陜旅版五年級英語上冊句型詞匯知識點總結(jié)
- 漢字構(gòu)字的基本原理和識字教學(xué)模式分析
- RouterOS介紹
- 綜采工作面液壓支架壓死救活技術(shù)研究
- 十字軸鍛造成型工藝及模具設(shè)計畢業(yè)論文
- 主體結(jié)構(gòu)監(jiān)理實施細(xì)則范本
- 控制性詳細(xì)規(guī)劃 - 寧波市規(guī)劃局
- 保潔員工考勤表
- JGJ8-2016建筑變形測量規(guī)范
- 《MSDS培訓(xùn)資料》PPT課件.ppt
評論
0/150
提交評論