家庭财务管理系统c语言课程设计(编辑修改稿)内容摘要:

scanf(%f,amp。 )。 printf(输入支出时间: )。 scanf(%s,)。 =。 printf(\n)。 if(fwrite(amp。 Tm,sizeof(money),1,fp)!=1) /*将数据写入文件并判断是否成功 */ { printf(\n写入文件 %s 失败。 以任意键结束。 \n,Da)。 exit(0)。 } count++。 } /*如果输入的数据量超过最大允许的范围,则提示数据不能录入 */ if (countSIZE) printf(\n对不起,输入的数据量超过最大允许的范围 %d\n,SIZE)。 fclose(fp)。 system(cls)。 printf(您输入的数据已成功存储在 %s 文件中。 \n,Da)。 printf(文件全部内容如下: \n)。 fp=fopen(Da,rb)。 /*只读方式打开二进制文件 */ 19 if (fp==NULL) /*判断是否打开成功 */ { printf(\n打开文件 %s 失败。 按任意键结束。 \n,Da)。 exit(0)。 } while(fread(amp。 Tm,sizeof(money),1,fp)!=(int)NULL) /*从文件中读取数据,是否读取成功 */ { printf(\n)。 printf(成员编号: %ld\n,)。 printf(成员姓名: %s\n,)。 printf(成员收入: %f 元 \n,)。 printf(收入时间: %s\n,)。 printf(成员支出: %f 元 \n,)。 printf(支出时间: %s\n,)。 printf( 收 支 总 和 : %f\n,)。 printf(\n)。 printf(\n\n)。 } fclose(fp)。 /*询问是否继续 */ printf(\n是否继续。 (是: y/Y。 否: n/N))。 next=getche()。 system(cls)。 putchar(39。 \n39。 )。 if ( next==39。 y39。 ||next==39。 Y39。 ) goto begin。 } void shanchushouzhi() /*删除家庭成员收支信息记录 */ { int i,result=0。 20 long delnum。 /*存放要输入的要删除家庭成员序号 */ money Tm。 /*定义进行操作时的临时结构体变量 */ money s[SIZE]。 int recNumber。 /*原文件 中的记录数 */ char Da[40],next。 FILE *fp。 /*fp 指针指向存储数据的文件名 */ printf(\n请输入存储数据的文件名,按回车键结束。 \n)。 gets(Da)。 begin: /*以二进制读的方式打开文件 */ fp=fopen(Da,rb)。 if (fp==NULL) { printf(\n打开文件 %s 失败。 按任意键结束。 \n,Da)。 exit(0)。 } /*输入要删除的家庭成员序号 */ printf(请输入要删除的家庭成员编号: )。 scanf(%ld,amp。 delnum)。 printf(您要删除的编号是: %ld\n,delnum)。 while(fread(amp。 Tm,sizeof(money),1,fp)!=(int)NULL) /*从文件中读取数据,是否读取成功 */ { if(==delnum) { printf(该项收支记录如下: \n)。 printf(\n)。 printf(该项内容编号: %ld\n,)。 21 printf(成员编号: %ld\n,)。 printf(成员姓名: %s\n,)。 printf(成员收入: %f元 \n,)。 printf(收入时间: %s\n,)。 printf(成员支出: %f元 \n,)。 printf(支出时间 : %s\n,)。 printf(收支总和: %f\n,)。 printf(\n)。 result=1。 } } rewind(fp)。 /*把文件指针重新指向文件的开头 */ if(result==0) {printf(\n 你输入的编号不存在,请确认后重新输入\n)。 printf(\n是否继续删除。 (是: y/Y。 否: n/N))。 next=getche()。 system(cls)。 putchar(39。 \n39。 )。 if ( next==39。 y39。 ||next==39。 Y39。 ) goto begin。 } /*询问是否删除 */ printf(\n 你确定要删除该记录吗。 删除后不可恢复。 (是: y/Y。 否:n/N))。 next=getche()。 putchar(39。 \n39。 )。 if ( next==39。 y39。 ||next==39。 Y39。 ) { system(cls)。 printf(恭喜。 该项纪录已成功删除。 \n)。 /*将文件中信息存入结构体数组 */ 22 /*与要删除的家庭成员序号相匹配的项不写入数组, 循环后数组中即为去掉了要删除记录后的剩余记录 */ recNumber=0。 while((fread(amp。 Tm,sizeof(money),1,fp))!=(int)NULL)/*从文件中读取数据,是否读取成功 */ { if(!=delnum) { s[recNumber].no=。 s[recNumber].Number=。 strcpy(s[recNumber].Name, )。 s[recNumber].in=。 strcpy(s[recNumber].intime,)。 s[recNumber].out=。 strcpy(s[recNumber].outtime,)。 s[recNumber].sum=。 recNumber++。 } } fclose(fp)。 /*将删除后的剩余结构体记录写入文件 */ fp=fopen(Da,wb+)。 /*读写方式打开文件,原文件内容清空*/ if (fp==NULL) { printf(\n记录文件 %s 失败。 按任意键结束。 \n,Da)。 exit(0)。 } for(i=0。 irecNumber。 i++) /*用循环将数据写入文件 */ 23 { if(fwrite(amp。 s[i],sizeof(money),1,fp)!=1) { printf(\n记录文件 %s 失败。 按任意键结束。 \n,Da)。 exit(0)。 } } fclose(fp)。 /*显示删除财务信息记录后的文件 */ printf(是否查看删除后剩下的内容、 \n)。 printf(\n 是否。 (是: y/Y。 否: n/N))。 next=getche()。 system(cls)。 putchar(39。 \n39。 )。 if ( next==39。 y39。 ||next==39。 Y39。 ) { fp=fopen(Da,rb)。 /*只读方式打开文件 */ if (fp==NULL) { printf(\n打开文件 %s 失败。 按任意键结束。 \n,Da)。 exit(0)。 } printf(\n)。 printf(删除后剩余全部内容是: \n)。 while(fread(amp。 Tm,sizeof(money),1,fp)!=(int)NULL) { printf(\n)。 printf(成员编号: %ld\n,)。 printf(成员姓名: %s\n,)。 24 printf(成员收入: %f 元 \n,)。 printf(收入时间: %s\n,)。 printf(成员支出: %f 元 \n,)。 printf(支出时间: %s\n,)。 printf(收支总和: %f\n,)。 printf(\n)。 } } } else {system(cls)。 printf(\n删除失败,原因:用户取消操作 \n\n)。 }fclose(fp)。 /*询问是否继续 */ printf(\n是否继续删除。 (是: y/Y。 否: n/N))。 next=getche()。 system(cls)。 putchar(39。 \n39。 )。 if ( next==39。 y39。 ||next==39。 Y39。 ) goto begin。 } void xiugaishouzhi() /*修改家庭成员收支信息记录 */ { int i,result=0。 long modnum。 /*存储要修改的家庭成员序号 */ /*输入各项修改后信息 */ long no,Number。 char Name[20]。 float in。 char intime[10]。 25 float out。 char outtime[10]。 float sum。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。