C语言课程设计家庭财务管理系统.docx
- 文档编号:23756236
- 上传时间:2023-05-20
- 格式:DOCX
- 页数:32
- 大小:20.20KB
C语言课程设计家庭财务管理系统.docx
《C语言课程设计家庭财务管理系统.docx》由会员分享,可在线阅读,更多相关《C语言课程设计家庭财务管理系统.docx(32页珍藏版)》请在冰豆网上搜索。
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
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 课程设计 家庭 财务管理 系统