版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
#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年一村格一警工作机制及网格化巡防与信息采集实务测试题
- 2026年社区护理服务能力培训考核分析报告
- 2026年成功案例分析中车集团面试经验谈
- 2026年工会职工疗休养政策知识竞赛题
- 2026年可靠性筑基与倍增行动知识问答
- 肖先生重阳节演讲稿
- 初中我爱祖国的演讲稿
- 2026年街道平安建设经费保障知识问答
- 山南市国家粮食储备库2026招聘粮油保管员选拔笔试题本
- 2026年博物馆陈列部招聘笔试陈列设计知识
- 2026年合肥建设投资控股集团有限公司校园招聘考试模拟试题及答案解析
- 2026青海西宁市公安局城西公安分局招聘警务辅助人员55人笔试备考试题及答案解析
- 2026年上海浦东公安分局文员招聘288人考试备考试题及答案解析
- 国家开放大学2026年春《形势与政策》形考大作业参考答案(三)
- 2026美伊冲突解析
- 第11课《山地回忆》课件(内嵌音视频) 2025-2026学年统编版语文七年级下册
- 调味品公司采购管理制度
- 纸箱制造有害物质控制技术手册
- 环境监测数据质量管理制度-环境检测机构模版-2026版
- 《智慧养老护理实践指南(2025版)》
评论
0/150
提交评论