C语言课程设计家庭财务管理系统.docx

上传人:b****8 文档编号:28215196 上传时间:2023-07-09 格式:DOCX 页数:32 大小:21.61KB
下载 相关 举报
C语言课程设计家庭财务管理系统.docx_第1页
第1页 / 共32页
C语言课程设计家庭财务管理系统.docx_第2页
第2页 / 共32页
C语言课程设计家庭财务管理系统.docx_第3页
第3页 / 共32页
C语言课程设计家庭财务管理系统.docx_第4页
第4页 / 共32页
C语言课程设计家庭财务管理系统.docx_第5页
第5页 / 共32页
点击查看更多>>
下载资源
资源描述

C语言课程设计家庭财务管理系统.docx

《C语言课程设计家庭财务管理系统.docx》由会员分享,可在线阅读,更多相关《C语言课程设计家庭财务管理系统.docx(32页珍藏版)》请在冰豆网上搜索。

C语言课程设计家庭财务管理系统.docx

C语言课程设计家庭财务管理系统

C语言课程设计——家庭财务管理系统.txt

#include

#include

#include

#include

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

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

structpeople//家庭成员登录信息结构

{

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

charcode[200];//密码

charflag[200];//标志0为普通成员,1为家长

}peo[maxsize];

structthing//成员收支信息结构

{

charname[30];//姓名

intyear;//年份

intmonth;//月份

intincome;//收入

intoutput;//支出

}thi[maxinfor];

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

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

{

FILE*fp;

inti;

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

{

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

for(i=0;i

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

}

fclose(fp);

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

{

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

for(i=0;i

fprintf(fp,"%s%d%d%d%d\n",thi[i].name,thi[i].year,thi[i].month,thi[i].income,thi[i].output);

}

fclose(fp);

return0;

}

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

{

FILE*fp;

inti;

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

=NULL)

{

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

for(i=0;i

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

}

fclose(fp);

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

=NULL)

{

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

for(i=0;i

fscanf(fp,"%s%d%d%d%d\n",thi[i].name,&thi[i].year,&thi[i].month,&thi[i].income,&thi[i].output);

}

fclose(fp);

return0;

}

intmaster()//初始化家长

{

carry();

if(n==0)

{

strcpy(peo[n].username,"小明");

strcpy(peo[n].code,"2010");

strcpy(peo[n].flag,"1");

n++;

}

hold();

return0;

}

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

{

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)

{

printf("\n\n请输入新成员密码:

");

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

printf("\n\n新成员是否作为家长(是请输入1,否输入0):

");

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

if(strcmp(peo[n].flag,"1")!

=0&&strcmp(peo[n].flag,"0")!

=0)

{

printf("\n输入格式错误,请重新输入1或者0!

!

");

}

for(i=0;strcmp(peo[n].flag,"1")!

=0&&strcmp(peo[n].flag,"0")!

=0;i++)

{

if(i!

=0)

{printf("\n输入格式错误,请重新输入1或者0!

!

");}

printf("\n\n新成员是否作为家长(是请输入1,否输入0):

");

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

}

n++;

hold();

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

\n");

}

return0;

}

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

{

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(thi[m].name,name);

printf("\n请输入年份:

");

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

printf("\n请输入月份:

");

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

for(i=0;i

{

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

{

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

\n录入失败。

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

p=0;

break;

}

}

if(p==1)

{

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

");

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

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

");

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

m++;

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

\n");

hold();

}

}

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

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

//for(i=m;k!

=1;i++,m++)

//scanf("%s%d%d%d%d%d",thi[i].name,&thi[i].year,&thi[i].month,&thi[i].income,&thi[i].output,&k);

return0;

}

intdele_people()//删除家庭成员

{

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("peoplelist4.txt","w");

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

for(i=0;i

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

for(i=g+1;i

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

fclose(fp);

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

\n");

}

}

hold();

return0;

}

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

{

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(thi[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(thi[i].name,name)==0)

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

}

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

\n年份月份\n");

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

for(i=0;i

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

{

g=i;h=1;break;

}

if(h==1)

{

m=b-1;

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

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

for(i=0;i

fprintf(fp,"%s%d%d%d%d\n",thi[i].name,thi[i].year,thi[i].month,thi[i].income,thi[i].output);

for(i=g+1;i

fprintf(fp,"%s%d%d%d%d\n",thi[i].name,thi[i].year,thi[i].month,thi[i].income,thi[i].output);

fclose(fp);

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

\n");

}

if(h==0)

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

\n");

}

return0;

}

intchange_thing()//修改收支信息

{

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(thi[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(thi[i].name,name)==0)

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

}

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

\n年份月份\n");

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

for(i=0;i

{

if(thi[i].year==year&&thi[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(thi[i].name,name)==0&&thi[i].year==year&&thi[i].month==month)

{

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

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

}

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

\n");

}

hold();

}

}

return0;

}

intchange_host()//更换家长

{

inti,p=0,h=0,a,b;

charname[20],name1[20];

carry();

printf("\n【更换家长】\n\n请输入现任家长的姓名:

");

scanf("%s",name);

for(i=0;i

{

if(strcmp(peo[i].username,name)==0&&strcmp(peo[i].flag,"1")==0)

{

a=i;

p=1;

break;

}

}

if(p==0)printf("\n%s不是现任家长。

\n修改失败。

\n",name);

if(p==1)

{

printf("\n请输入新家长的姓名:

");

scanf("%s",name1);

for(i=0;i

{

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

{

b=i;

h=1;break;

}

}

if(h==0)printf("\n不存在家庭成员%s,修改失败。

\n",name1);

if(h==1)

{

strcpy(peo[a].flag,"0");;//更换家长即更换标志flag

strcpy(peo[b].flag,"1");

printf("\n······\n更换家长成功。

\n");

hold();

}

}

return0;

}

intskin_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(thi[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(thi[i].year==year&&thi[i].month==j)

{

t++;

if(t==1)

{

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

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

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

}

if(t!

=1)

{

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

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

output[j]=output[j]+thi[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(thi[i].name,"0")!

=0)

{

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

for(j=i;j

{

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

{

in1=in1+thi[j].income;

out1=out1+thi[j].output;

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

}

}

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

in1=0;out1=0;

}

}

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

}

return0;

}

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

{

inti,k;

charname[20];

carry();

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

");

scanf("%s",name);

for(i=0;i

{

if(strcmp(thi[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(thi[i].name,name)==0&

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

当前位置:首页 > 自然科学 > 天文地理

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

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