家庭财务信息管理系统单文件版.docx

上传人:b****7 文档编号:25080318 上传时间:2023-06-04 格式:DOCX 页数:20 大小:18.26KB
下载 相关 举报
家庭财务信息管理系统单文件版.docx_第1页
第1页 / 共20页
家庭财务信息管理系统单文件版.docx_第2页
第2页 / 共20页
家庭财务信息管理系统单文件版.docx_第3页
第3页 / 共20页
家庭财务信息管理系统单文件版.docx_第4页
第4页 / 共20页
家庭财务信息管理系统单文件版.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

家庭财务信息管理系统单文件版.docx

《家庭财务信息管理系统单文件版.docx》由会员分享,可在线阅读,更多相关《家庭财务信息管理系统单文件版.docx(20页珍藏版)》请在冰豆网上搜索。

家庭财务信息管理系统单文件版.docx

家庭财务信息管理系统单文件版

//家庭信息管理系统

#include

#include

#include

#include

#defineMAX_PEO2000//定义家庭成员最大人数

#defineMAX_INF20000//定义收支信息的最大容量

#defineOUT_INFIORinf[i].name,inf[i].year,inf[i].month,inf[i].income,inf[i].output

#defineIN_INFIORinf[i].name,&inf[i].year,&inf[i].month,&inf[i].income,&inf[i].output

structmember//家庭成员登记信息结构

{

charusername[200];//用户名(也是姓名)

}peo[MAX_PEO];

structinfior//成员收支信息结构

{

charname[30];//姓名

intyear;//年份

intmonth;//月份

intincome;//收入

intoutput;//支出

}inf[MAX_INF];

intn=0,m=0;//全局变量n为文件中家庭成员实际容量m为文件中收支信息实际容量

voidhold();//将数据写进文件中

voidcarry();//将数据从文件中读出

voidadd_member();//增加新的家庭成员

voidadd_infior();//录入成员收支信息

voiddele_member();//删除家庭成员

voiddele_infior();//删除家庭成员收支信息

voidchange_infior();//修改收支信息

voidskin_peo();//浏览家庭成员信息

voidsearch();//查询某个成员收支信息

voidquit();//系统退出界面

voidmenu_select();//菜单选择功能

voidmenu();//菜单登陆界面

voidhandle_menu();//菜单处理

voidsave();//保存功能函数用来实现提示已保存

 

voidhold()//将数据写进文件中

{

FILE*fp;

inti;

fp=fopen("memberlist.txt","w");

{

fprintf(fp,"%d\n",n);

for(i=0;i

fprintf(fp,"%s\n",peo[i].username);

}

fclose(fp);

fp=fopen("information.txt","w");

{

fprintf(fp,"%d\n",m);

for(i=0;i

fprintf(fp,"%s%d%d%d%d\n",OUT_INFIOR);

}

fclose(fp);

}

voidcarry()//将数据从文件中读出

{

FILE*fp;

inti;

if((fp=fopen("memberlist.txt","r"))!

=NULL)

{

fscanf(fp,"%d\n",&n);

for(i=0;i

fscanf(fp,"%s\n",peo[i].username);

}

fclose(fp);

if((fp=fopen("information.txt","r"))!

=NULL)

{

fscanf(fp,"%d\n",&m);

for(i=0;i

fscanf(fp,"%s%d%d%d%d\n",IN_INFIOR);

}

fclose(fp);

}

voidadd_member()//增加新的家庭成员

{

intj=1,i,q=100,m=3;

carry();//将数据从文件中读出

printf("\n【添加新成员】\n\n");

printf("\n请输入新成员姓名:

");

scanf("%s",peo[n].username);

for(i=0;i

{

if(strcmp(peo[i].username,peo[n].username)==0)

{j=0;break;}

}

if(j==0)printf("\n该成员已存在。

\n");

if(j==1)

{

n++;

hold();//将数据写进文件中

printf("\n添加新成员成功。

\n");

}

}

voidadd_infior()//录入成员收支信息

{

intk=3,i,p=1;

charname[200];

carry();//将数据从文件中读出

printf("\n【录入收支信息】\n\n请按以下顺序录入成员收支信息:

\n");

printf("\n请输入姓名:

");

scanf("%s",name);

for(i=0;i

{

if(strcmp(peo[i].username,name)==0){k=1;break;}

}

if(i==n)k=0;

if(k==0)printf("\n不存在该成员,请先添加其为家庭成员。

\n");

if(k==1)

{

strcpy(inf[m].name,name);

printf("\n请输入年份:

");

scanf("%d",&inf[m].year);

printf("\n请输入月份:

");

scanf("%d",&inf[m].month);

for(i=0;i

{

if(strcmp(peo[i].username,name)==0&&inf[i].year==inf[m].year&&inf[i].month==inf[m].month)

{

printf("\n已存在%d年%d月的收支信息。

\n录入失败。

\n",inf[m].year,inf[m].month);

p=0;

break;

}

}

if(p==1)

{

printf("\n请输入收入(元):

");

scanf("%d",&inf[m].income);

printf("\n请输入支出(元):

");

scanf("%d",&inf[m].output);

m++;

printf("\n······\n录入成功。

\n");

hold();//将数据写进文件中

}

}

else

{

printf("\n【录入收支信息】\n\n请按以下顺序录入成员收支信息:

\n姓名年份月份收入支出是否结束录入(是1否0)\n");

for(i=m;k!

=1;i++,m++)

scanf("%s%d%d%d%d%d",IN_INFIOR,&k);

hold();

}

}

voiddele_member()//删除家庭成员

{

FILE*fp;

charname[20];

inti,k,g,h,p=0;

printf("\n【删除家庭成员】\n\n请输入要删除的家庭成员姓名:

");

scanf("%s",name);

carry();//将数据从文件中读出

h=n;

for(i=0;i

{

if(strcmp(peo[i].username,name)==0){k=1;break;}

}

if(i==n)k=0;

if(k==0)printf("\n不存在该成员。

\n");

if(k==1)

{

for(i=0;i

if(strcmp(peo[i].username,name)==0)

{

g=i;p=1;break;

}

if(p==1)

{

n=h-1;

fp=fopen("memberlist.txt","w");

fprintf(fp,"%d\n",n);

for(i=0;i

fprintf(fp,"%s\n",peo[i].username);

for(i=g+1;i

fprintf(fp,"%s\n",peo[i].username);

fclose(fp);

printf("\n······\n删除成功。

\n");

}

}

hold();//将数据写进文件中

}

voiddele_infior()//删除家庭成员收支信息

{

FILE*fp;

charname[20];

inti,year,month,k,g,h=0,b;

printf("\n【删除收支信息】\n\n请输入需要删除收支信息的成员姓名:

");

scanf("%s",name);

carry();

b=m;

for(i=0;i

{

if(strcmp(inf[i].name,name)==0){k=1;break;}

}

if(i==m)k=0;

if(k==0)printf("\n不存在该成员的收支信息。

\n");

if(k==1)

{

printf("\n以下为%s的所有收支信息:

\n\n年份月份收入(元)支出(元)\n",name);

for(i=0;i

{

if(strcmp(inf[i].name,name)==0)

printf("%4d%4d%9d%9d\n",inf[i].year,inf[i].month,inf[i].income,inf[i].output);

}

printf("\n请输入需要删除的收支信息的具体时间:

\n年份月份\n");

scanf("%d%d",&year,&month);

for(i=0;i

if(strcmp(inf[i].name,name)==0&&inf[i].year==year&&inf[i].month==month)

{

g=i;h=1;break;

}

if(h==1)

{

m=b-1;

fp=fopen("information.txt","w");

fprintf(fp,"%d\n",m);

for(i=0;i

fprintf(fp,"%s%d%d%d%d\n",OUT_INFIOR);

for(i=g+1;i

fprintf(fp,"%s%d%d%d%d\n",OUT_INFIOR);

fclose(fp);

printf("\n······\n删除成功。

\n");

}

if(h==0)

printf("\n不存在该时间的收支信息。

\n");

}

}

voidchange_infior()//修改收支信息

{

charname[20],name1[20];

inti,year,month,year1,month1,income,output,k,p=0,t=0;

printf("\n【修改收支信息】\n\n请输入需要修改收支信息的成员姓名:

");

scanf("%s",name);

carry();

for(i=0;i

{

if(strcmp(inf[i].name,name)==0){k=1;break;}

}

if(i==m)k=0;

if(k==0)printf("\n不存在该成员的收支信息。

\n");

if(k==1)

{

printf("\n以下为%s的所有收支信息:

\n\n年份月份收入(元)支出(元)\n",name);

for(i=0;i

{

if(strcmp(inf[i].name,name)==0)

printf("%4d%4d%9d%9d\n",inf[i].year,inf[i].month,inf[i].income,inf[i].output);

}

printf("\n请输入需要修改的收支信息的具体时间:

\n年份月份\n");

scanf("%d%d",&year,&month);

for(i=0;i

{

if(inf[i].year==year&&inf[i].month==month)

{

p=1;break;

}

}

if(p==0)

printf("\n没有该时间的收支信息。

\n\n修改失败。

\n");

if(p==1)

{

printf("\n请输入修改后的数据:

\n");

printf("\n姓名:

");

scanf("%s",name1);

for(i=0;i

{

if(strcmp(peo[i].username,name1)==0){t=1;break;}

}

if(i==n)t=0;

if(t==0)printf("\n不存在该成员,请先添加其为家庭成员。

\n");

if(t==1)

{

printf("\n年份:

");

scanf("%d",&year1);

printf("\n月份:

");

scanf("%d",&month1);

printf("\n收入(元):

");

scanf("%d",&income);

printf("\n支出(元):

");

scanf("%d",&output);

for(i=0;i

if(strcmp(inf[i].name,name)==0&&inf[i].year==year&&inf[i].month==month)

{

strcpy(inf[i].name,name1);

inf[i].year=year1;inf[i].month=month1;inf[i].income=income;inf[i].output=output;break;

}

printf("\n······\n修改成功。

\n");

}

hold();//将数据写进文件中

}

}

}

voidskin_peo()//浏览家庭成员信息

{

charname[20];

intq,a=0,i,year,j,t=0,income[20]={0},output[20]={0},in=0,out=0,in1=0,out1=0;

carry();//将数据从文件中读出

printf("请输入你要浏览的信息表的年份:

");

scanf("%d",&year);

printf("\n");

for(q=0;q

{

if(inf[q].year==year)

{a=1;break;}

}

if(a==0)printf("不存在%d年的收支信息。

\n",year);

if(a==1)

{

printf("%d年度家庭成员收支信息表\n",year);

printf("┏━━━━━━━━━━━━━━━━━━━━━━━━━┓\n");

printf("┃月份姓名收入(元)支出(元)总计(元)┃\n");

printf("┠─────────────────────────┨\n");

for(j=1;j<=12;j++)

{

for(i=0;i

{

if(inf[i].year==year&&inf[i].month==j)

{

t++;

if(t==1)

{

printf("┃%3d月%9s%9d%10d%12d┃\n",j,inf[i].name,inf[i].income,inf[i].output,inf[i].income-inf[i].output);

income[j]=income[j]+inf[i].income;

output[j]=output[j]+inf[i].output;

}

if(t!

=1)

{

printf("┃%14s%9d%10d%12d┃\n",inf[i].name,inf[i].income,inf[i].output,inf[i].income-inf[i].output);

income[j]=income[j]+inf[i].income;

output[j]=output[j]+inf[i].output;

}

}

}

if(t!

=0)

{

printf("┠─────────────────────────┨\n");

printf("┃%d月统计%12d%10d%12d┃\n",j,income[j],output[j],income[j]-output[j]);

printf("┠─────────────────────────┨\n");

}

t=0;

}

for(i=1;i<=12;i++)

{

in=in+income[i];out=out+output[i];

}

printf("┠─────────────────────────┨\n");

printf("┃%d年统计%9d%10d%13d┃\n",year,in,out,in-out);

printf("┗━━━━━━━━━━━━━━━━━━━━━━━━━┛\n");

printf("\n\n");

printf("附表:

\n");

printf("各家庭成员%d年度总收支信息表\n",year);

printf("┏━━━━━━━━━━━━━━━━━━━━━━┓\n");

printf("┃姓名总收入(元)总支出(元)总计(元)┃\n");

printf("┠──────────────────────┨\n");

for(i=0;i

{

if(strcmp(inf[i].name,"0")!

=0)

{

strcpy(name,inf[i].name);

for(j=i;j

{

if(strcmp(name,inf[j].name)==0)

{

in1=in1+inf[j].income;

out1=out1+inf[j].output;

strcpy(inf[j].name,"0");

}

}

printf("┃%8s%9d%12d%12d┃\n",name,in1,out1,in1-out1);

in1=0;out1=0;

}

}

printf("┗━━━━━━━━━━━━━━━━━━━━━━┛\n");

}

}

voidsearch()//查询某个成员收支信息

{

inti,k;

charname[20];

carry();

printf("\n【查询收支信息】\n\n请输入你要查询的成员姓名:

");

scanf("%s",name);

for(i=0;i

{

if(strcmp(inf[i].name,name)==0){k=1;break;}

}

if(i==m)k=0;

if(k==0)printf("\n不存在该成员的收支信息。

\n");

if(k==1)

{

printf("\n%s的所有收支信息:

\n\n",name);

printf("时间收入(元)支出(元)总计(元)\n");

for(i=0;i

{

if(strcmp(inf[i].name,name)==0&&inf[i].year!

=0)

printf("%d-%d%9d%9d%9d\n",inf[i].year,inf[i].month,inf[i].income,inf[i].output,inf[i].income-inf[i].output);

}

}

}

voidsave()//保存功能函数用来实现提示已保存

{

printf("\n\n\t\t=====>程序在运行时已自动保存.....\n\n\n\n\n");

}

 

voidquit()//结束运行系统退出界面

{

printf("\n\n『谢谢使用家庭财务管理系统』\n\n\n\n\n");exit(0);

}

voidmenu_select()//菜单选择功能

{

intk;

scanf("%d",&k);

system("cls");

switch(k)

{

case1:

system("cls");skin_peo();break;

case2:

system("cls");change_infior();break;

case3:

system("cls");add_member();break;

case4:

system("cls");dele_infior();break;

case5:

system("cls");search();break;

case6:

system("cls");add_infior();break;

case7:

system("cls");dele_member();break;

case8:

system("cls");save();break;

case0:

system("cls");quit();break;

default:

break;

}

}

voidmenu()//登陆菜单界面

{

printf("\n选择菜单\n");

printf("〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓\n\n");

printf("1.浏览家庭成员信息2.修改家庭成员收支信息\n");

printf("3.增加新的家庭成员4.删除家庭成员收支信息\n");

printf("5.查询成员收支信息6.录入成员收支信息\n");

printf("7.删除家庭成员8.保存文件\n");

printf("0.退出界面\n\n");

pr

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1