C語(yǔ)言課程設(shè)計(jì)—家庭財(cái)務(wù)管理系統(tǒng)_第1頁(yè)
C語(yǔ)言課程設(shè)計(jì)—家庭財(cái)務(wù)管理系統(tǒng)_第2頁(yè)
C語(yǔ)言課程設(shè)計(jì)—家庭財(cái)務(wù)管理系統(tǒng)_第3頁(yè)
C語(yǔ)言課程設(shè)計(jì)—家庭財(cái)務(wù)管理系統(tǒng)_第4頁(yè)
C語(yǔ)言課程設(shè)計(jì)—家庭財(cái)務(wù)管理系統(tǒng)_第5頁(yè)
已閱讀5頁(yè),還剩29頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、精品文檔課程設(shè)計(jì)報(bào)告課程設(shè)計(jì)題目:家庭財(cái)務(wù)管理系統(tǒng)學(xué)生姓名 :專業(yè): 信息工程班 級(jí):指導(dǎo)教師 :2018 年 1月精品文檔收入及1? 需求分析 根據(jù)家庭賬務(wù)管理的需要,建立一個(gè)“家庭賬務(wù)管理系統(tǒng)”,以方便對(duì)家庭日常 支出進(jìn)行記錄和管理。該系統(tǒng)要求:家庭月收入管理家庭月支出管理 統(tǒng)計(jì)家庭總收入 / 總支出系統(tǒng)提供收入 /支出的添加、刪除和修改功能。2. 總體設(shè)計(jì) 根據(jù)以上分析,本家庭賬務(wù)管理系統(tǒng)主要包括: 從鍵盤鍵入家庭月收入、月支出數(shù)據(jù); 查詢?cè)率杖?、月支出明?xì); 刪除收入、支出數(shù)據(jù); 修改收入、支出數(shù)據(jù); 統(tǒng)計(jì)總收入 / 總支出; 退出系統(tǒng)。除 main () 函數(shù)之外,系統(tǒng)還定義了以下函

2、數(shù)來(lái)實(shí)現(xiàn)各部分內(nèi)容: add_income () : 添加收入數(shù)據(jù)函數(shù)。 add_payout () : 添加支出數(shù)據(jù)函數(shù)。 search_data () : 查找數(shù)據(jù)函數(shù)。 ini tialize () : 初始化函數(shù),讀取文本數(shù)據(jù)。 show_info () : 顯示數(shù)據(jù)函數(shù)。 count_total () : 統(tǒng)計(jì)函數(shù),統(tǒng)計(jì)總收入、總支出。 update_data () : 修改信息函數(shù)。 delete_data () : 刪除數(shù)據(jù)函數(shù)。 quit () :退出函數(shù)。 程序結(jié)構(gòu)功能圖如下:家庭財(cái)務(wù)管理系統(tǒng)精品文檔收 入 管 理 支111管理精品文檔3. 詳細(xì)設(shè)計(jì)3.1 收入管理3.2 支

3、出管理精品文檔4.測(cè)試結(jié)果4.1 程序運(yùn)行主菜單精品文檔4.2 添加收入測(cè)試C 牝 IN i nd OWE 11 system z 2D ebugFyyl. e e回4.3 查詢收入明細(xì)測(cè)試精品文檔4.4 刪除收入測(cè)試精品文檔4.5 修改收入測(cè)試4.6 添加支出測(cè)試精品文檔4.7 查詢支出明細(xì)測(cè)試4.8 刪除支出測(cè)試精品文檔精品文檔4.9 修改支出測(cè)試精品文檔¥/年帛 姓名12013/09農(nóng)服年/ 月裘型姓名2013/09支出4.10 統(tǒng)計(jì)總收入 /支出測(cè)試4.11 退出系統(tǒng)測(cè)試精品文檔精品文檔然后按照5.軟件操作使用說(shuō)明書 本系統(tǒng)采用命令行對(duì)話方式進(jìn)行操作,運(yùn)行后出現(xiàn)主界面(如下圖所示) 主

4、界面菜單指引操作即可。6. 總結(jié)編寫程序之前要有一個(gè)整體的思路, 不能寫到哪里算哪里。這樣很容易遺漏,連 續(xù)性也 不好。通過(guò)本次的課程設(shè)計(jì)讓我對(duì)于數(shù)組、文件的存放、循環(huán)結(jié)構(gòu)等知識(shí) 有了更加透徹的 理解。希望在以后的課程設(shè)計(jì)中對(duì)于知識(shí)的運(yùn)用能夠更加的熟 練。代碼:#in elude #inelude #in elude #in elude vconi o.h#defi ne MAXNAME 11 / 家庭成員姓名的最大長(zhǎng)度#defi ne MAXDETAIL 21/ 注最大長(zhǎng)度/自定義枚舉類型 fi_type ,用來(lái)表示收入與支出typedef enum _fi_typein come=1, 收

5、入payout =-1 / 支出 fi_type;精品文檔/ 家庭財(cái)務(wù)信息結(jié)構(gòu)體typedef struct _fi_infoint year;int mon th;fi_type type;char n ame9;float mon ey;char detail11;fi nfo;/ 存儲(chǔ)財(cái)務(wù)數(shù)據(jù)結(jié)構(gòu)的結(jié)構(gòu)體typedef struct _fi_datafi_info info;struct _fi_data* n ext; fi_data;fi_data *head;/ 財(cái)務(wù)數(shù)據(jù)的頭結(jié)點(diǎn) void menu ();/菜單函數(shù)void add_ in come();void search_

6、in come();void delete_ in come();void update_ in come();void add_payout();void search_payout();void delete_payout();void update_payout();void coun t_total();void quit();/void search_data(fi_type type);void delete_data(fi_type type);void update_data(fi_type type);/void in itialize();void save_to_file

7、();void clear_data();fi_data *get_last();fi_data *get_previous(fi_data *p);void in put_ in fo(fi_ info *in fo);void show_i nfo(fi_data *p);void menu()精品文檔家庭財(cái)務(wù)管理系統(tǒng) n);prin tf(n); prin tf(tt prin tf(tt prin tf(ttt prin tf(tt prin tf(ttprin * *n);tf(tt* prin tf(tt prin tf(1. printf( 2. prin tf(ttt 3. p

8、rintf( 4. prin tpfr(int ttf*( tt prin tf(5. prin tf( 6.收入管理 : ”;)添加收入 );查詢收入明細(xì) n); 刪除收入 修改收入 n);printf(ttt 7. printf( 8. prin tpf(rint tf*( tt printf(9. prin tf(tt*支出管理 :); 添加支出 );查詢支出明細(xì) n); 刪除支出 );修改支出 n);統(tǒng) 計(jì) :);統(tǒng)計(jì)總收入 /總支出 n););*n);*n);*n);*nnn);printf(tt 退 出:0. 退出系統(tǒng) n); prin tf(tt* *void mai n()in

9、t selected=O;in itialize();while(selected=0&selected 請(qǐng)選擇要進(jìn)行的操作 (0-9):); if(sca nf(%d, &selected)!=1|selected9)printf(tt 輸入有誤!請(qǐng)選擇 (0-9) 之間的數(shù)字!按任意鍵重試 ); getchar();elseswitch(selected)case O:exit(O);clear_data();break;精品文檔case 1:add_ in come();save_to_file();break;case 2:search_ in come();break;case 3:

10、delete_ in come();save_to_file();break;case 4:update_ in come();save_to_file();break;case 5:add_payout();save_to_file();break;case 6:search_payout();break;case 7:delete_payout();save_to_file();break;case 8:update_payout();save_to_file();break;case 9:co un t_total();break;void add_ in come() 添加收入fi_d

11、ata *p=(fi_data *)malloc(sizeof(fi_data);p- next=NULL; in put_i nfo(&(p-i nfo);p-in fo.type=in come;if(head=NULL) head=p;elseget_last()-n ext=p;void add_payout() 添加支出fi_data *p=(fi_data *)malloc(sizeof(fi_data); p- next=NULL; in put_i nfo(&(p-i nfo);p-in fo.type=payout;if(head=NULL) head=p;elseget_l

12、ast()-n ext=p;/輸入函數(shù)void in put_i nfo(fi_i nfo *info)printf(tt 請(qǐng)輸入年月 ( YYYY/M);sca nf(%d/%d,&(in fo-year),&(in fo-mo nth);prin tf(tt請(qǐng)輸入家庭成員姓名 (最大長(zhǎng)度為 d):,MAXNAME-1);sea nf(%s,i nfo- name);printf(tt輸入金額 :);sca nf(%f,&(i nfo-mo ney);精品文檔printf(tt 請(qǐng)輸入備注 ( 最大長(zhǎng)度為 %d):,20); sca nf(%s,i nfo-detail);/查找數(shù)據(jù)函數(shù)vo

13、id search_data(fi_type type)int year=0;int mon th=0;fi_data *p=NULL;int coun t=0;char in put=:while prin tf(tt請(qǐng)輸入要查詢的年月 ( YYYY/M);if(sca nf(%d/%d, &year,&mon th)!=2)printf(tt 輸入有誤 n);elsep=head;coun t=0;while(p!=NULL)if(p-in fo.year=year)&(p-info.mon th=month)&(p-in fo.type=type)show_ in fo(p); syst

14、em(PAUSE);coun t+;p=p-n ext;if(co un t=0)printf(tt沒(méi)有找到數(shù)據(jù) n);prin tf(tt繼續(xù)查找其他數(shù)據(jù)?(y or n);in put=getchar();if(i nput=y|i nput=Y)con ti nue;elsebreak;精品文檔/初始化函數(shù),讀取文本數(shù)據(jù)void in itialize()FILE * fp=NULL;fi_data *p=NULL;fi_data *last=NULL;int coun t=0;fp=fope n( data.txt,rb);if(fp=NULL)fp=fope n( data.txt,

15、w);fclose(fp);retur n;p=(fi_data*)malloc(sizeof(fi_data); memset(p,0,sizeof(fi_data); p- next=NULL;while(fread(&(p-in fo),sizeof(fi_ in fo),1,fp)=1) if(head=NULL)head=p;else last=get_last(); last- n ext=p;coun t+;fseek(fp,cou nt*sizeof(fi_i nfo),SEEK_SET); p=(fi_data *)malloc(sizeof(fi_data); memset

16、(p,0,sizeof(fi_data);p- next=NULL;free(p);p=NULL;fclose(fp);/顯示信息函數(shù)void show nfo(fi_data *p)int i=0;prin tf(|tt|tt|tt|tt|tt|tt|n);printf(|NO.t |年 / 月 tt| 類型 tt| 姓名 tt| 金額 tt| 備注 tt|n);prin tf(|%5dt|%4d/%02dt|%4st|%10st|%10.2f|%20s|n,i+1,精品文檔p-info.year,p-info.month,p-info.type=income?收入 :支出 p-info.n

17、 ame,p-info.mon ey,p-in fo.detail);prin tf(|tt|tt|tt|tt|tt|tt|n);/統(tǒng)計(jì)總收入、總支出void coun t_total()float total_ in come=0.0;float total_payout=0.0;fi_data *p=head;while(p!=NULL)if(p-in fo.type=in come)total_ in come+=p-info.mon ey;elsetotal_payout+=p-info.mon ey;p=p-n ext;prin tf(tt+tt+tt+n);printf(tt|合計(jì)

18、收入 t|合計(jì)支出 t| 結(jié)余 t|n);prin tf(tt%12.2f|%12.2f|%12.2f|n,total_i ncome,total_payout,total_i ncome - total_payout);prin tf(tt+tt+tt+n);printf(tt 按任意鍵返回主菜單 );getchar();getchar();/保存到文件void save_to_file()FILE *fp=fopen(data.txt,wb);fi_data *p=head;while(p!=NULL)fwrite(&(p-i nfo),sizeof(fi_i nfo),1,fp);fse

19、ek(fp,O,SEEK_END);p=p-n ext;fclose(fp);精品文檔/修改信息函數(shù)void update_data(fi_type type) int year=0;int mon th=0;fi_data *p=NULL;fi_data *pre=NULL; char in put;int coun t=0;int i=0;while(1) prin tf(tt 請(qǐng)輸入要查詢的年月 ( YYYY/M); if(sca nf(%d/%d, &year,&mon th)!=2)printf(tt 輸入有誤 n); elsep=head;coun t=0;while(p!=NUL

20、L)if(p-in fo.year=year)&(p-info.mon th=month)&(p-in fo.type=type) coun t+; show_ in fo(p); in put_i nfo(&(p-i nfo); printf(tt 修改成功 n);P=get_previous(p);p=p-n ext; if(co un t=0) printf(tt prin tf(tt沒(méi)有找到數(shù)據(jù) n);繼續(xù)查找其他數(shù)據(jù)?(y or n);in put=getchar();if(i nput=y|i nput=Y) con ti nue;elsebreak;精品文檔void delete

21、_data(fi_type type)/刪除數(shù)據(jù)函數(shù)int year=0;int mon th=0;fi_data *p=NULL;fi_data *pre=NULL;int coun t=0;char in put=:int i=0;while(1) prin tf(tt 請(qǐng)輸入要查詢的年月 ( YYYY/M); if(sca nf(%d/%d , &year,&mo nth)!=2)printf(tt 輸入有誤 n); else p=head; coun t=0; while(p!=NULL)if(p-in fo.year=year)&(p-info.mon th=month)&(p-in fo.type=type) coun t+; show_ in fo(p); pre=get_previous(p); if(pre=NULL) head=head-n ext; else pre-n ext=p-n ext; free(p);printf(tt 刪除成功 n);精品文檔p=p-n ext;if(co un t=0) printf(tt 沒(méi)有找到數(shù)據(jù) n);prin tf(tt繼續(xù)查找其他數(shù)據(jù)?(y

溫馨提示

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

評(píng)論

0/150

提交評(píng)論