C語(yǔ)言財(cái)務(wù)管理系統(tǒng)(源代碼)_第1頁(yè)
C語(yǔ)言財(cái)務(wù)管理系統(tǒng)(源代碼)_第2頁(yè)
C語(yǔ)言財(cái)務(wù)管理系統(tǒng)(源代碼)_第3頁(yè)
C語(yǔ)言財(cái)務(wù)管理系統(tǒng)(源代碼)_第4頁(yè)
C語(yǔ)言財(cái)務(wù)管理系統(tǒng)(源代碼)_第5頁(yè)
已閱讀5頁(yè),還剩7頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、文檔#includenstdio.hH#includcvstdlib.hn#dcfine MAX.NAME 11#dcfineMAX_DETAIL21#define MENU.COUNT 9#dcfine DATA_FILE Mfa.datH typedef wnum_fijype (income=l,payout=-lIfijype;typedef stnict.fijnfo (int year;int month;fijype type;char nanie|MAX_NAME;float money;char detaill MAX.DETAIL;JfiJnfo;typedef stnic

2、t_fi_data (fijnfo info;struct fi data *next;fi_data;void addJncomeO;void search_income();void dcleteJncomeO;void updateJnconicO;void add_payout();void search_payout();void delete_payout();void update_payout():void countjotal();void quit();void search_data(fi_type type);void delete_data(fi_type type)

3、;void update_data(fi_type type);void initialize();void savejo_file();void clear_data();fi.data *get_last();fi_data *get_previous(fi_data *p);void input_info(fijnfo *info);void show_info(fi_data *p,int count);fLdata *head;char mcnun=”1家庭財(cái)務(wù)管理系統(tǒng)lnM”+nH"I收入管理ln"”11添加收入lnMMl2查詢(xún)收入明細(xì)lnMnl3刪除收入lnM

4、”14修改收入lnMNl支出管理lnMHl5添加支出lnMHl6查詢(xún)支出明細(xì)ln”Nl7刪除支出lnM"I8修改支出ln"nl統(tǒng)計(jì)lnH"I9統(tǒng)計(jì)總收入總支出ln"H+nMNl0退出系統(tǒng)lnH void(*menu_fun)0= quit,addjncome, search_income, deletejncome, update_income, add_payout, search_payout, dclete_payout, updatc_payout, countjotal );int main() (int selected=O;initiali

5、zeO;while(selectcd>=0 && selectcd<=MENU_COUNT) system(MclsM);printf(menu);printf(、請(qǐng)選擇要進(jìn)行的操作(%d - %d):O.MENU_COUNT); if(scanf(,%d'&selectcd)!=lllselected<Ollselected>MENU_COUNT) (printf(、輸入錯(cuò)誤!請(qǐng)選擇%d-%d之間的數(shù)字!按任意鍵重試二O.MENU-COUNT); ftlush(stdin);getchar();)else ( mcnu_funselec

6、ted();)selected=O;) ) void addJncomeO(fi_data *p=(fi_data *)malloc(sizeof(fi_data);memset(p,0,sizeof(fi_data);p->next=NULL;input_info(&(p->info);p->info.type=income;if(head=NULL) ( head=p;)else ( get_last(head )->next=p;) ) void search_income()(search_data(income);)void dcleteJncomeO

7、 (dclete_data(income);)void updateJncomeO (update_data(income);)void add_payout() fi_data *p=(fLdata*)maIloc(sizeof(fLdata);memset(p,0,sizeof(fLdata);input Jnfo(&(p->info);p->info.typc=payout: if(head=NULL) ( head=p;)else(get_last(head )->next=p;) ) void search_payout() ( search_data(pa

8、yout); ) void dclete_payout() ( dclete_data(payout); ) void update_payout() ( update_data(payout); ) void count_total() (float total_income=0.0;float total_payout=0.0;fi_data *p=head;while(p!=NULL) ( if(p->info.type=income) ( total_incomc+=p->info.money; ) else ( total_payout+=p->info.money

9、; ) p=p->next;)printf(H+nM);結(jié)余printf("l合計(jì)收入I合計(jì)支出I printf("+n");count=0;resultcount=p;count+;)else( break:) )p=p->next:)if(count!=0)(show_info(result,count);)else(printf(、沒(méi)有找到數(shù)據(jù)。n");)printf(、繼續(xù)查找其他數(shù)據(jù)?(y or n)M); fflush(stdin);input=getchar();if(input=yilinput=,Y,)( continue;

10、)else break:)void delete_data(fi_type type) (int year=0;int month=0;fLdata *p=NULL:fi_data *pre=NULL;fi_data *result9= NULL);int count=0;char input='int i=0;while(l)(printf(、請(qǐng)輸入要查詢(xún)的年月(例如:2009/1) ”);if(scanf(n%d/%dH.&year,&month)!=2)(printf(、輸入錯(cuò)誤。nn);)else(p=head;count=0:niemset(result,0,

11、sizeof(fi_data*);while(p!=NULL)(if(p->info.year=year && p->info.month && p->info.type)(if(count=9)(resultcount=p;count+;)else(showjnfo(result,count);printf(、請(qǐng)輸入空格并回車(chē)翻頁(yè)。輸入對(duì)應(yīng)的序號(hào)刪除。其他鍵退出,);fflush(stdin)input=getchar();if(input=' ')(memset(result,0,sizeof(fi_data*);count

12、=0;resultcount=p;count+;)else if(input= 1' && input<=48+count)(i=input-49;pre=get_previous(resulti);if(pre=NULL)(hcad=head->next;)elsepre->next=resulti->next;)free(resulti);for(;i<count-l;i+)(resulti=resulti+l;)resulti=p;printf(、刪除成功nH);)else( break:) ) p=p->next;)if(co

13、unt!=0)(showjnfo(result,count);printf(、輸入對(duì)應(yīng)的序號(hào)刪除。其他鍵退出。"); fflush(stdin);input=getchar();if(input>=r && input<=48+count)(i=input-49;pre=get_previous(resulti);if(pre=NULL)(head=head->next;)else(pre->next=resulti->next;)free(resulti);for(;i<count-l;i+)(resulti=resulti+l;

14、)resulti=NULL;count-;printf("刪除成功 An");)else(printf(、沒(méi)有找到數(shù)據(jù)。n");)printf(、繼續(xù)查找數(shù)據(jù)? (y or n)");fflush(stdin);input=getchar();if(input=y II input=,Y,) (continue;)else( break:)void update_data(fi_type type)(int year=0;int month=0;fi_data *p=NULL;fi_data *pre=NULL;fi_data *result9= NUL

15、L);int count=0;char input'; int i=0;while( 1) (printf(、請(qǐng)輸入要查詢(xún)的年月(例如:2009/1) ”); if(scanf(u%d/%dH,&year,&month) !=2)(printf(、輸入錯(cuò)誤。nH);)else(p=hcad;count=0;meniset(result,0,sizeof(fi_data*);while(p!=NULL)if(p->info.year=year && p->info.month=month && p->info.type=t

16、ype) (if(count<9)(resultcount=p;count+;)else(showjnfo(result,count);printf(、輸入空格并回車(chē)翻頁(yè)。輸入對(duì)應(yīng)的序號(hào)修改。其他鍵退出。 fflush(stdin);input=getchar();if(input=*r) (memset(result,0,sizeof(fi-data*);count=0;resultcount=p;count+;)else if(input>= 1' && input<=48+count) (i=input-49;input_info(&(r

17、esulti->info);printf(、修改成功。nH);p=get_previous(p);)else( break:) )p=p->next:)if(count!=0)(show_info(result,count);printf(、輸入對(duì)應(yīng)的序號(hào)修改。其他鍵退出。");fflush(stdin);input=getchar();if(input>=r && input<=48+count)i=input-49;inputjnfo(&(result|i|->info);show_info(result,count);pri

18、ntf(、修改成功 . nH);)else(printf(、沒(méi)有找到數(shù)據(jù)。n");)printf(、繼續(xù)查找數(shù)據(jù)?(yorn)”);fflush(stdin);input=getchar();if(input=y II input=,Y,)(continue;)else break:)void initialize()(HLE *fp=NULL;fLdata *p=NULL;fi_data *last=NULL:int count=0;fp=fopen(DATA_FILEJrb”); if(fp=NULL) (fp=fopen(DATA_FILE/'wH);fclose(fp

19、);return;)p=(fi_data*)malloc(sizeof(fi_data);memset(p,0,sizeof(fi_data);p->next=NULL:while(fread(&(p->infoXsizeof(fi_info)J Jp)=l) (if(head=NULL)hcad=p;)else(last=getjast();last->next=p;)count+;fseek(fpxount *sizeof(fi_info),SEEK_SET); p=(fi_data*)malloc(sizeof(fi_data);memset(p,0,sizeo

20、f(fi_data);p->next=NULL;)free(p);p=NULL;fclose(fp);)void save_to_fileO(HLE *fp=fopen(DATA_FILEJwb");fi_data *p=head;while(p!=NULL) (fwrite(&(p->info),sizeof(fi_info), 1 Jp);fseek(fp,O.SEEK_END);p=p->next:)fclose(fp);)void clear_data()(fLdata *p=NULL;while(head !=NULL) (if(head->

21、next!=NULL)(p=head;head=head->next;free(p);p=NULL:)elsefree(head);hcad=NULL;)fi_data *get_last() (fLdata *p=head;if(p=NULL)( return p;)while(p!=NULL) && (p->nezt!=NULL) ( p=p->next;)return p;)fLdata *get_previous(fi_data *p)(fi_data *previous=head;while(previous!=NULL)(if(previous-&

22、gt;next=p)( break:)previous=previous->next;)return previous;)void input_info(fijnfo *info)(printf(">請(qǐng)輸入年月(YYYY/M) :");scanf(,'%d/%d,*(info->year),&(info->month);printf(、請(qǐng)輸入家庭成員姓名(最大長(zhǎng)度為%d):".MAX_NAME - 1); scanf(n%sHjnfo->name);primf('請(qǐng)輸入金額scanf(H%f&(info->money);printf(、請(qǐng)輸入備注(最大長(zhǎng)度為%d) :",MAX_DETAIL- 1);scanf(H%sH4nfo->detail);)void

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論