您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > 家庭财务管理系统源代码
#includestdio.h#includestdlib.h#includeconio.h#includestring.h#defineLENsizeof(structfinancial)#defineFFORMAT%-8d%-15s%-10d%-10d%-12.2f%-12.2f%-12.2f\n#defineDATAmember[i].num,member[i].name,member[i].month,member[i].year,member[i].income,member[i].output,member[i].totalstructfinancial//定义家庭成员信息{intnum;//编号charname[15];//家庭成员姓名intmonth;//月份intyear;//年份floatincome;//收入floatoutput;//支出floattotal;//总金额};structfinancialmember[50];//定义结构体数组voidmenu();//主界面voidin();//录入家庭成员收支信息voidshow();//显示家庭成员收支信息voiddel();//删除家庭成员收支信息voidmodify();//修改家庭成员收支信息voidtotal();//计算家庭成员总收入voidsearch();//查找家庭成员收支信息intmain(){intn;menu();scanf(%d,&n);//输入数字选择功能while(n){switch(n){case1:in();//调用录入家庭成员信息函数break;case2:search();//查找家庭成员信息函数break;case3:del();//调用删除家庭成员信息函数break;case4:modify();//调用修改家庭成员信息函数break;case5:total();//调用汇总函数break;default:break;}printf(按任意键返回主菜单:\n);getch();menu();//执行完功能再次显示菜单界面scanf(%d,&n);}return0;}voidmenu(){system(cls);printf(|-------------------------------------------------|\n);printf(|--------------------家庭财务信息系统-------------|\n);printf(|0.退出|\n);printf(|1.录入信息|\n);printf(|2.查找信息|\n);printf(|3.删除信息|\n);printf(|4.修改信息|\n);printf(|5.统计信息|\n);printf(|-------------------------------------------------|\n);printf(选择(0-5):);}voidin()//录入家庭成员信息{inti,m=0;charch[2];FILE*fp;if((fp=fopen(家庭财务管理系统,ab+))==NULL){printf(不能打开文件!\n);return;}while(!feof(fp)){if(fread(&member[m],LEN,1,fp)==1)m++;//统计当前记录条数}fclose(fp);if(m==0)printf(没有找到!\n);else{//system(cls);show();//调用show函数,显示原有信息}if((fp=fopen(家庭财务管理系统,wb))==NULL){printf(不能打开文件!\n);return;}for(i=0;im;i++)fwrite(&member[i],LEN,1,fp);//向指定的磁盘文件写入信息printf(是否输入?(y/n):);scanf(%s,ch);while(strcmp(ch,Y)==0||strcmp(ch,y)==0)//判断是否要录入新信息{printf(编号:);scanf(%d,&member[m].num);//输入家庭成员编号for(i=0;im;i++)if(member[i].num==member[m].num){printf(该记录已经存在,按任意键继续!);getch();fclose(fp);return;}printf(家庭成员姓名:);scanf(%s,member[m].name);//输入家庭成员姓名printf(请输入月份:);scanf(%d,&member[m].month);//输入月份printf(请输入年份:);scanf(%d,&member[m].year);//输入年份printf(请输入收入:);scanf(%f,&member[m].income);//输入收入printf(请输入支出:);scanf(%f,&member[m].output);//输入支出member[m].total=member[m].income-member[m].output;//汇总if(fwrite(&member[m],LEN,1,fp)!=1)//将新录入的信息写入指定的磁盘文件{printf(不能保存!);getch();}else{printf(%s已经保存!\n,member[m].name);m++;}printf(是否继续?(y/n):);scanf(%s,ch);}fclose(fp);printf(OK!\n);}voidshow(){FILE*fp;inti,m=0;fp=fopen(家庭财务管理系统,ab+);while(!feof(fp)){if(fread(&member[m],LEN,1,fp)==1)m++;}fclose(fp);printf(编号成员月份年分收入支出总金额\t\n);for(i=0;im;i++){printf(FFORMAT,DATA);}}voiddel(){FILE*fp;intsnum,i,j,m=0;charch[2];if((fp=fopen(家庭财务管理系统,ab+))==NULL){printf(不能打开文件\n);return;}while(!feof(fp))if(fread(&member[m],LEN,1,fp)==1)m++;fclose(fp);if(m==0){printf(没有记录!\n);return;}printf(请输入编号:);scanf(%d,&snum);for(i=0;im;i++)if(snum==member[i].num)break;if(i==m){printf(没有找到!);return;}printf(已经找到该记录,是否删除?(y/n));scanf(%s,ch);if(strcmp(ch,Y)==0||strcmp(ch,y)==0)//判断是否要进行删除{for(j=i;jm;j++)member[j]=member[j+1];//将后一个记录移到前一个记录的位置m--;//记录的总个数减1printf(成功删除!\n);}if((fp=fopen(家庭财务管理系统,wb))==NULL){printf(不能打开!\n);return;}for(j=0;jm;j++)//将更改后的记录重新写入指定的磁盘文件中if(fwrite(&member[j],LEN,1,fp)!=1){printf(不能保存!\n);getch();}fclose(fp);}voidsearch(){FILE*fp;intsnum,i,m=0;charch[2];if((fp=fopen(家庭财务管理系统,ab+))==NULL){printf(不能打开文件\n);return;}while(!feof(fp))if(fread(&member[m],LEN,1,fp)==1)m++;fclose(fp);if(m==0){printf(没有记录!\n);return;}printf(请输入编号:);scanf(%d,&snum);for(i=0;im;i++)if(snum==member[i].num){printf(已经找到该记录,是否显示?(y/n));scanf(%s,ch);if(strcmp(ch,Y)==0||strcmp(ch,y)==0){printf(编号成员月份年份收入支出总金额\t\n);printf(FFORMAT,DATA);break;}elsereturn;}if(i==m)printf(没有找到相应的记录!\n);}voidmodify(){FILE*fp;inti,j,m=0,snum;charch[2];if((fp=fopen(家庭财务管理系统,ab+))==NULL){printf(不能打开文件!\n);return;}while(!feof(fp))if(fread(&member[m],LEN,1,fp)==1)m++;if(m==0){printf(没有记录!\n);fclose(fp);return;}printf(请输入要修改的记录信息的编号!\n);scanf(%d,&snum);for(i=0;im;i++)if(snum==member[i].num)//检索记录中是否有要修改的信息{printf(已经找到该记录,是否修改?(y/n)\n);scanf(%s,ch);if(strcmp(ch,Y)==0||strcmp(ch,y)==0){printf(家庭成员姓名:);scanf(%s,member[i].name);//输入家庭成员姓名printf(请输入月份:);scanf(%d,&member[i].month);//输入月份printf(请输入年份:);scanf(%d,&member[i].year);//输入年份printf(请输入收入:);scanf(%f,&member[i].income);//输入收入printf(请输入支出:);scanf(%f,&member[i].output);//输入支出member[i].total=member[i].income-member[i].output;//汇总printf(保存成功!);}elsereturn;}else{printf(没有找到!);return;}if((fp=fopen(家庭财务管理系统,wb))==NULL){printf(不能打开文件!\n);return;}for(j=0;jm;j++)//将新修改的信息写入指定的磁盘文件中if(fwrite(&member[j],LEN,1,fp)!=1){printf(不能保存!);}fclose(fp);}voidtotal()//统计{FILE*fp;intm=0;if((fp=fopen(家庭财务管理系统,ab+))==NULL){printf(不能打开记录!\n);return;}while(!feof(fp))if(fread(&member[m],LEN,1,fp)==1)m++;//统计记录个数if(m==0){printf(没有记录!\n);fclose(fp);return;}printf(一共有%d条记录!\n,m);//将统计的个数输出fclose(fp);}
本文标题:家庭财务管理系统源代码
链接地址:https://www.777doc.com/doc-4037904 .html