《2022年C语言财务管理系统 .pdf》由会员分享,可在线阅读,更多相关《2022年C语言财务管理系统 .pdf(14页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、#includestdio.h#includestdlib.h#define MAX_NAME 11#define MAX_DETAIL 21#define MENU_COUNT 9#define DATA_FILE fa.dat typedef wnum_fi_type income=1,payout=-1 fi_type;typedef struct_fi_info int year;int month;fi_type type;char nameMAX_NAME;float money;char detailMAX_DETAIL;fi_info;typedef struct_fi_dat
2、a fi_info info;struct_fi_data*next;fi_data;void add_income();void search_income();void delete_income();void update_income();void add_payout();void search_payout();void delete_payout();void update_payout();void count_total();void quit();void search_data(fi_type type);void delete_data(fi_type type);vo
3、id update_data(fi_type type);void initialize();void save_to_file();void clear_data();fi_data*get_last();fi_data*get_previous(fi_data*p);名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 14 页 -void input_info(fi_info*info);void show_info(fi_data*p,int count);fi_data*head;char menu=n|家庭财务管理系统|n+-+n|收入管理|n|1 添加收入|n|2 查询收
4、入明细|n|3 删除收入|n|4 修改收入|n|支出管理|n|5 添加支出|n|6 查询支出明细|n|7 删除支出|n|8 修改支出|n|统计|n|9 统计总收入总支出|n-+n|0 退出系统|n=+n;void(*menu_fun)()=quit,add_income,search_income,delete_income,update_income,add_payout,search_payout,delete_payout,update_payout,count_total;int main()int selected=0;initialize();while(selected=0&se
5、lected 请选择要进行的操作(%d-%d):,0,MENU_COUNT);名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 14 页 -if(scanf(%d,&selected)!=1|selectedMENU_COUNT)printf(输入错误!请选择%d-%d 之间的数字!按任意键重试.,0,MENU_COUNT);fflush(stdin);getchar();else menu_funselected();selected=0;void add_income()fi_data*p=(fi_data*)malloc(sizeof(fi_data);memset(p,0,
6、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 delete_income()delete_data(income);void update_income()update_data(income);void add_payout()fi_data*p=(fi_data*)malloc(sizeof(fi_data);名师资料总
7、结-精品资料欢迎下载-名师精心整理-第 3 页,共 14 页 -memset(p,0,sizeof(fi_data);input_info(&(p-info);p-info.type=payout;if(head=NULL)head=p;else get_last(head)-next=p;void search_payout()search_data(payout);void delete_payout()delete_data(payout);void update_payout()update_data(payout);void count_total()float total_inco
8、me=0.0;float total_payout=0.0;fi_data*p=head;while(p!=NULL)if(p-info.type=income)total_income+=p-info.money;else total_payout+=p-info.money;p=p-next;printf(+-+-+-+n);printf(|合计收入|合计支出|结余|n);printf(+-+-+-+n);名师资料总结-精品资料欢迎下载-名师精心整理-第 4 页,共 14 页 -printf(|%12.2f|%12.2f|%12.2f|n,total_income,total_payout
9、,total_income-total_payout);printf(+-+-+-+n);printf(按任意键继续返回主菜单.);fflush(stdin);getchar();void search_data(fi_type type)int year=0;int month=0;fi_data*p=NULL;fi_data*result9=NULL;int count=0;char input=;while(1)printf(请输入要查询的年月(例如:2009/1));if(scanf(%d/%d,&year,&month)!=2)printf(输入错误。n);else p=head;c
10、ount=0;memset(result,0,sizeof(fi_data*);while(p!=NULL)if(p-info.year=year&p-info.month=month&p-info.type=type)if(count 输入空格并回车翻页。其他键退出。);fflush(stdin);input=getchar();if(input=)memset(result,0,sizeof(fi_data*);名师资料总结-精品资料欢迎下载-名师精心整理-第 5 页,共 14 页 -count=0;resultcount=p;count+;else break;p=p-next;if(c
11、ount!=0)show_info(result,count);else printf(没有找到数据。n);printf(继续查找其他数据?(y or n);fflush(stdin);input=getchar();if(input=y|input=Y)continue;else break;void delete_data(fi_type type)int year=0;int month=0;fi_data*p=NULL;fi_data*pre=NULL;fi_data*result9=NULL;int count=0;char input=;名师资料总结-精品资料欢迎下载-名师精心整理
12、-第 6 页,共 14 页 -int i=0;while(1)printf(请输入要查询的年月(例如:2009/1));if(scanf(%d/%d,&year,&month)!=2)printf(输入错误。n);else p=head;count=0;memset(result,0,sizeof(fi_data*);while(p!=NULL)if(p-info.year=year&p-info.month&p-info.type)if(count=9)resultcount=p;count+;else show_info(result,count);printf(请输入空格并回车翻页。输入
13、对应的序号删除。其他键退出:);fflush(stdin)input=getchar();if(input=)memset(result,0,sizeof(fi_data*);count=0;resultcount=p;count+;else if(input=1&inputnext;else 名师资料总结-精品资料欢迎下载-名师精心整理-第 7 页,共 14 页 -pre-next=resulti-next;free(resulti);for(;i 删除成功。n);else break;p=p-next;if(count!=0)show_info(result,count);printf(输
14、入对应的序号删除。其他键退出。);fflush(stdin);input=getchar();if(input=1&inputnext;else pre-next=resulti-next;free(resulti);for(;i 删除成功.n);else printf(没有找到数据。n);printf(继续查找数据?(y or n);fflush(stdin);input=getchar();if(input=y|input=Y)continue;else break;void update_data(fi_type type)int year=0;int month=0;fi_data*p
15、=NULL;fi_data*pre=NULL;fi_data*result9=NULL;int count=0;char input=;int i=0;while(1)printf(请输入要查询的年月(例如:2009/1));if(scanf(%d/%d,&year,&month)!=2)printf(输入错误。n);else p=head;count=0;memset(result,0,sizeof(fi_data*);while(p!=NULL)名师资料总结-精品资料欢迎下载-名师精心整理-第 9 页,共 14 页 -if(p-info.year=year&p-info.month=mon
16、th&p-info.type=type)if(count 输入空格并回车翻页。输入对应的序号修改。其他键退出。);fflush(stdin);input=getchar();if(input=)memset(result,0,sizeof(fi-data*);count=0;resultcount=p;count+;else if(input=1&inputinfo);printf(修改成功。n);p=get_previous(p);else break;p=p-next;if(count!=0)show_info(result,count);printf(输入对应的序号修改。其他键退出。);
17、fflush(stdin);input=getchar();if(input=1&inputinfo);show_info(result,count);printf(修改成功。n);else printf(没有找到数据。n);printf(继续查找数据?(y or n);fflush(stdin);input=getchar();if(input=y|input=Y)continue;else break;void initialize()FILE*fp=NULL;fi_data*p=NULL;fi_data*last=NULL;int count=0;fp=fopen(DATA_FILE,r
18、b);if(fp=NULL)fp=fopen(DATA_FILE,w);fclose(fp);return;p=(fi_data*)malloc(sizeof(fi_data);memset(p,0,sizeof(fi_data);p-next=NULL;while(fread(&(p-info),sizeof(fi_info),1,fp)=1)if(head=NULL)名师资料总结-精品资料欢迎下载-名师精心整理-第 11 页,共 14 页 -head=p;else last=get_last();last-next=p;count+;fseek(fp,count*sizeof(fi_inf
19、o),SEEK_SET);p=(fi_data*)malloc(sizeof(fi_data);memset(p,0,sizeof(fi_data);p-next=NULL;free(p);p=NULL;fclose(fp);void save_to_file()FILE*fp=fopen(DATA_FILE,wb);fi_data*p=head;while(p!=NULL)fwrite(&(p-info),sizeof(fi_info),1,fp);fseek(fp,0,SEEK_END);p=p-next;fclose(fp);void clear_data()fi_data*p=NULL
20、;while(head!=NULL)if(head-next!=NULL)p=head;head=head-next;free(p);p=NULL;else 名师资料总结-精品资料欢迎下载-名师精心整理-第 12 页,共 14 页 -free(head);head=NULL;fi_data*get_last()fi_data*p=head;if(p=NULL)return p;while(p!=NULL)&(p-nezt!=NULL)p=p-next;return p;fi_data*get_previous(fi_data*p)fi_data*previous=head;while(prev
21、ious!=NULL)if(previous-next=p)break;previous=previous-next;return previous;void input_info(fi_info*info)printf(请输入年月(YYYY/M):);scanf(%d/%d,*(info-year),&(info-month);printf(请输入家庭成员姓名(最大长度为%d):,MAX_NAME-1);scanf(%s,info-name);printf(请输入金额:);scanf(%f,&(info-money);printf(请输入备注(最大长度为%d):,MAX_DETAIL-1);
22、scanf(%s,info-detail);void show_info(fi_data*p,int count)名师资料总结-精品资料欢迎下载-名师精心整理-第 13 页,共 14 页 -int i=0;printf(+-+-+-+-+-+-+n);printf(|No.|年-月|类型|姓名|金额|备注|n);printf(+-+-+-+-+-+-+n);for(i=0;iinfo.year,pi-info.month,pi-info.type=income?收入:支出,pi-info.name,pi-info.money,pi-info.detail);printf(+-+-+-+-+-+-+n);名师资料总结-精品资料欢迎下载-名师精心整理-第 14 页,共 14 页 -