版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五版金融理財(cái)產(chǎn)品銷(xiāo)售合同細(xì)則4篇
- 二零二五年度農(nóng)業(yè)科技創(chuàng)新合作合同4篇
- 二零二五年度醫(yī)院院長(zhǎng)任期公共衛(wèi)生服務(wù)合同4篇
- 二零二五年度時(shí)尚服飾連鎖加盟合同協(xié)議3篇
- 二零二五年度公積金提取與個(gè)人住房貸款一體化合同
- 二零二五年度新能源發(fā)電項(xiàng)目并網(wǎng)接入合同4篇
- 2025年環(huán)境監(jiān)測(cè)技術(shù)的創(chuàng)新與應(yīng)用
- 二零二五年度寧德監(jiān)獄行政區(qū)生態(tài)園林景觀養(yǎng)護(hù)協(xié)議4篇
- 2025年度個(gè)人租車(chē)車(chē)輛故障應(yīng)急處理合同4篇
- 二零二五年度高端論壇組織策劃合同協(xié)議書(shū)4篇
- 河南省濮陽(yáng)市2024-2025學(xué)年高一上學(xué)期1月期末考試語(yǔ)文試題(含答案)
- 割接方案的要點(diǎn)、難點(diǎn)及采取的相應(yīng)措施
- 2025年副護(hù)士長(zhǎng)競(jìng)聘演講稿(3篇)
- 2024年08月北京中信銀行北京分行社會(huì)招考(826)筆試歷年參考題庫(kù)附帶答案詳解
- 原發(fā)性腎病綜合征護(hù)理
- (一模)株洲市2025屆高三教學(xué)質(zhì)量統(tǒng)一檢測(cè) 英語(yǔ)試卷
- 蘇教版二年級(jí)數(shù)學(xué)下冊(cè)全冊(cè)教學(xué)設(shè)計(jì)
- 職業(yè)技術(shù)學(xué)院教學(xué)質(zhì)量監(jiān)控與評(píng)估處2025年教學(xué)質(zhì)量監(jiān)控督導(dǎo)工作計(jì)劃
- 金字塔原理與結(jié)構(gòu)化思維考核試題及答案
- 基礎(chǔ)護(hù)理學(xué)導(dǎo)尿操作
- DB11∕T 1028-2021 民用建筑節(jié)能門(mén)窗工程技術(shù)標(biāo)準(zhǔn)
評(píng)論
0/150
提交評(píng)論