




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、#include<stdio.h>#include<stdlib.h>#include<conio.h>#include<string.h>#define LEN sizeof(struct financial)#define FFORMAT "%-8d%-15s%-10d%-10d%-12.2f%-12.2f%-12.2fn"#define DATA memberi.num,,memberi.month,memberi.year,memberi.income,memberi.output,member
2、i.totalstruct financial /定义家庭成员信息 int num; /编号 char name15; /家庭成员姓名 int month; /月份 int year; /年份float income; /收入 float output; /支出 float total; /总金额;struct financial member50; /定义结构体数组void menu(); /主界面void in(); /录入家庭成员收支信息void show(); /显示家庭成员收支信息void del(); /删除家庭成员收支信息void modify(); /修改家庭成员收支信息 vo
3、id total(); /计算家庭成员总收入void search(); /查找家庭成员收支信息int main() int n; menu(); scanf("%d",&n); /输入数字选择功能 while(n) switch(n) case 1: in(); /调用录入家庭成员信息函数 break; case 2: search(); /查找家庭成员信息函数 break; case 3: del(); /调用删除家庭成员信息函数 break; case 4: modify(); /调用修改家庭成员信息函数 break; case 5: total(); /调用
4、汇总函数 break; default:break; printf("按任意键返回主菜单:n"); getch(); menu(); /执行完功能再次显示菜单界面 scanf("%d",&n); return 0;void menu() system("cls");printf("|-|n"); printf("|-家庭财务信息系统-|n"); printf("| 0. 退出 |n"); printf("| 1. 录入信息 |n"); printf
5、("| 2. 查找信息 |n"); printf("| 3. 删除信息 |n"); printf("| 4. 修改信息 |n"); printf("| 5. 统计信息 |n"); printf("|-|n"); printf("选择(0-5):");void in() /录入家庭成员信息 int i,m=0; char ch2; FILE *fp; if(fp=fopen("家庭财务管理系统","ab+")=NULL) printf(&
6、quot;不能打开文件!n"); return; while(!feof(fp) if(fread(&memberm ,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
7、;i<m;i+) fwrite(&memberi ,LEN,1,fp); /向指定的磁盘文件写入信息 printf("是否输入?(y/n):"); scanf("%s",ch); while(strcmp(ch,"Y")=0|strcmp(ch,"y")=0) /判断是否要录入新信息 printf("编号:"); scanf("%d",&memberm.num); /输入家庭成员编号 for(i=0;i<m;i+) if(memberi.num =
8、 memberm.num) printf("该记录已经存在,按任意键继续!"); getch(); fclose(fp); return; printf("家庭成员姓名:"); scanf("%s",); /输入家庭成员姓名 printf("请输入月份:"); scanf("%d",&memberm.month); /输入月份printf("请输入年份:"); scanf("%d",&memberm.year); /
9、输入年份printf("请输入收入:"); scanf("%f",&memberm.income); /输入收入printf("请输入支出:"); scanf("%f",&memberm.output); /输入支出 memberm.total=memberm.income - memberm.output; /汇总 if(fwrite(&memberm,LEN,1,fp)!=1) /将新录入的信息写入指定的磁盘文件 printf("不能保存!"); getch(); e
10、lse printf("%s 已经保存!n",); m+; printf("是否继续?(y/n):"); scanf("%s",ch); fclose(fp); printf("OK!n");void show() FILE *fp; int i,m=0; fp=fopen("家庭财务管理系统","ab+"); while(!feof(fp) if(fread(&memberm ,LEN,1,fp)=1) m+; fclose(fp); pri
11、ntf("编号 成员 月份 年分 收入 支出 总金额 tn"); for(i=0;i<m;i+) printf(FFORMAT,DATA); void del() FILE *fp; int snum,i,j,m=0; char ch2; if(fp=fopen("家庭财务管理系统","ab+")=NULL) printf("不能打开文件n"); return; while(!feof(fp) if(fread(&memberm,LEN,1,fp)=1) m+; fclose(fp); if(m=0)
12、 printf("没有记录!n"); return; printf("请输入编号:"); scanf("%d",&snum); for(i=0;i<m;i+) if(snum=memberi.num) break; if(i=m) printf("没有找到!"); return; printf("已经找到该记录,是否删除?(y/n)"); scanf("%s",ch); if(strcmp(ch,"Y")=0|strcmp(ch,"
13、y")=0) /判断是否要进行删除 for(j=i;j<m;j+) memberj = memberj+1; /将后一个记录移到前一个记录的位置 m-; /记录的总个数减1 printf("成功删除!n"); if(fp=fopen("家庭财务管理系统","wb")=NULL) printf("不能打开!n"); return; for(j=0;j<m;j+) /将更改后的记录重新写入指定的磁盘文件中 if(fwrite(&memberj ,LEN,1,fp)!=1) printf(&
14、quot;不能保存!n"); getch(); fclose(fp);void search() FILE *fp; int snum,i,m=0; char ch2; if(fp=fopen("家庭财务管理系统","ab+")=NULL) printf("不能打开文件n"); return; while(!feof(fp) if(fread(&memberm,LEN,1,fp)=1) m+; fclose(fp); if(m=0) printf("没有记录!n"); return; printf
15、("请输入编号:"); scanf("%d",&snum); for(i=0;i<m;i+) if(snum = memberi.num) printf("已经找到该记录,是否显示?(y/n)"); scanf("%s",ch); if(strcmp(ch,"Y")=0|strcmp(ch,"y")=0) printf("编号 成员 月份 年份 收入 支出 总金额tn"); printf(FFORMAT,DATA); break; else
16、return; if(i=m) printf("没有找到相应的记录!n");void modify() FILE *fp; int i,j,m=0,snum; char ch2; if(fp=fopen("家庭财务管理系统","ab+")=NULL) printf("不能打开文件!n"); return; while(!feof(fp) if(fread(&memberm,LEN,1,fp)=1) m+; if(m=0) printf("没有记录!n"); fclose(fp); ret
17、urn; printf("请输入要修改的记录信息的编号!n"); scanf("%d",&snum); for(i=0;i<m;i+)if(snum=memberi.num) /检索记录中是否有要修改的信息 printf("已经找到该记录,是否修改?(y/n)n"); scanf("%s",ch); if(strcmp(ch,"Y")=0|strcmp(ch,"y")=0) printf("家庭成员姓名:"); scanf("%s&
18、quot;,); /输入家庭成员姓名 printf("请输入月份:"); scanf("%d",&memberi.month); /输入月份 printf("请输入年份:"); scanf("%d",&memberi.year); /输入年份 printf("请输入收入:"); scanf("%f",&memberi.income); /输入收入 printf("请输入支出:"); scanf("%f",&memberi.output); /输入支出 memberi.total=memberi.income - member
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 协商解除销售合同样本
- 单位买卖废纸合同样本
- 劳务合同意外免责合同范例
- 临夏小区路灯合同样本
- 全屋定制套餐合同范例
- 单位开解聘合同范例
- 单位代表签合同范例
- 临时专业用工合同范例
- 分干股合同标准文本
- 公司分红合同范例
- 提高预应力锚索在圆砾层中一次性成孔合格率
- 业主物业纠纷 上诉状 空白
- 毕业设计(论文)-螺旋式榨汁机的设计
- 不规则动词的过去式及过去分词一览表
- 部编版道德与法治六年级下册第三单元《多样文明多彩生活》大单元作业设计
- 浙江省生态环境厅所属3家事业单位招聘考试真题2022
- 2023年护理考试-护理学(副高)历年考试真题试卷摘选答案
- 桥式起重机司机(中级)职业技能鉴定考试题库(职校培训)
- NCCN成人癌痛指南解读
- GB/T 1041-2008塑料压缩性能的测定
- 职业卫生监督课件
评论
0/150
提交评论