版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
#include<stdio.h>#include<stdlib.h>#include<conio.h>#include<string.h>#defineLENsizeof(structfinancial)#defineFFORMAT"%-8d%-15s%-10d%-10d%-12.2f%-12.2f%-12.2f\n"#define DATAmember[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;i<m;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;i<m;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;i<m;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;i<m;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;j<m;j++)member[j] = member[j+1];//将后一个记录移到前一个记录的位置m--;//记录的总个数减1printf("成功删除!\n");}if((fp=fopen("家庭财务管理系统","wb"))==NULL){printf("不能打开!\n");return;}for(j=0;j<m;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;i<m;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;i<m;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{
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 金属文物修复师保密水平考核试卷含答案
- 起重工风险评估与管理考核试卷含答案
- 2026年东北特色文旅IP项目公司成立分析报告
- 2026年宠物减肥粮项目可行性研究报告
- 2026年呼吸与睡眠健康管理项目可行性研究报告
- 2026年运营资本减资退出合同
- 2026年物流管理供应链优化策略练习题
- 2026年英语教师资格考试英语阅读理解与写作训练题集
- 2026年税务法规变化与应对题库
- 2026年项目管理职业资格考试练习题与答案
- Web3创作者经济演进研究
- 河北省邢台市2025-2026学年七年级上学期期末考试历史试卷(含答案)
- (2025年)新疆公开遴选公务员笔试题及答案解析
- 《老年服务礼仪与沟通技巧》-《老年服务礼仪与沟通技巧》-老年服务礼仪与沟通技巧
- 八年级数学人教版下册第十九章《二次根式》单元测试卷(含答案)
- (2025年)广东省事业单位集中招聘笔试试题及答案解析
- 深学细悟四中全会精神凝聚奋进“十五五”新征程磅礴力量
- 市场监督管理局2025年制售假劣肉制品专项整治工作情况的报告范文
- 《二氧化碳转化原理与技术》课件 第9章 二氧化碳电催化转化
- 经济学基础 第5版 自测试卷B及答案
- 旧城区改造项目开发合作合同协议书范本
评论
0/150
提交评论