C语言个人财务小管家课程设计.docx

上传人:b****5 文档编号:8096420 上传时间:2023-01-28 格式:DOCX 页数:38 大小:43.11KB
下载 相关 举报
C语言个人财务小管家课程设计.docx_第1页
第1页 / 共38页
C语言个人财务小管家课程设计.docx_第2页
第2页 / 共38页
C语言个人财务小管家课程设计.docx_第3页
第3页 / 共38页
C语言个人财务小管家课程设计.docx_第4页
第4页 / 共38页
C语言个人财务小管家课程设计.docx_第5页
第5页 / 共38页
点击查看更多>>
下载资源
资源描述

C语言个人财务小管家课程设计.docx

《C语言个人财务小管家课程设计.docx》由会员分享,可在线阅读,更多相关《C语言个人财务小管家课程设计.docx(38页珍藏版)》请在冰豆网上搜索。

C语言个人财务小管家课程设计.docx

C语言个人财务小管家课程设计

个人小管家应用系统给家庭提供了一个管理个人财务得平台,主要用于对家庭成员收入、支出进行添加、查询、删除、修改以及打印得操作,使得家庭财务收支状况一目了然。

主要功能包括:

(1)主菜单.主要包括收入管理、支出管理与退出;

(2)添加收入记录;

(3)查询收入记录;

(4)删除收入记录;

(5)修改收入记录;

(6)打印收入记录;

(7)添加支出记录;

(8)查询支出记录;

(9)删除支出记录;

(10)修改支出记录;

(11)打印支出记录;

(12)退出系统。

#include

#include<stdlib、h>

#include〈string、h>

#include<conio、h〉

#include〈math、h>

#define SIZE 100

typedefstruct

ﻩlongno;   /*每一组输入得编号*/

longNumber;/*家庭成员编号*/

 charName[20];  /*家庭成员姓名*/

 floatin;    /*家庭成员收入*/

 charintime[10]; /*收入时间*/

floatout;  /*家庭成员支出*/

ﻩcharouttime[10]; /*支出时间*/

float sum;   /*总计*/

}money;

//-—---—---——--—---—------—--—--———--—--——-—-——-——--——-—-—--—-——

voiddayinshou()

{FILE *fp;

 money Tm;

 charDa[40],next;

printf("请输入您要查询得文件名\n");

gets(Da);

fp=fopen(Da,”rb”);  /*只读方式打开二进制文件*/

 if(fp==NULL)

  {

  printf(”\n打开文件%s失败!

按任意键结束!

\n",Da);

 exit(0);

  }

printf("文件全部内容如下:

\n\n");

  while(fread(&Tm,sizeof(money),1,fp)!

=(int)NULL) /*读取文件内容,并判断就是否成功*/

{printf("###############################################\n”);

   printf("\n成员编号:

%ld\n”,Tm、Number);

ﻩ printf("成员姓名:

%s\n",Tm、Name);

printf("成员收入:

%f元\n",Tm、in);

printf("收入时间:

%s\n",Tm、intime);

printf("###############################################\n”);

ﻩprintf("\n\n");

 }

fclose(fp);

next=getche();

 }

//—-—-—------———-------—---——---—---—----—-——-——--——----—--——-———---———--——-

voiddayinzhi()

{FILE*fp;

 moneyTm;

 charDa[40],next;

printf("请输入您要查询得文件名\n”);

gets(Da);

fp=fopen(Da,"rb");  /*只读方式打开二进制文件*/

 if (fp==NULL)

  {

  printf("\n打开文件%s失败!

按任意键结束!

\n”,Da);

  exit(0);

  }

printf("文件全部内容如下:

\n\n”);

 while(fread(&Tm,sizeof(money),1,fp)!

=(int)NULL)/*读取文件内容,并判断就是否成功*/

  {printf(”###############################################\n");

   printf(”\n成员编号:

%ld\n”,Tm、Number);

ﻩ  printf("成员姓名:

%s\n”,Tm、Name);

ﻩﻩprintf("成员支出:

%f元\n”,Tm、out);

printf("支出时间:

%s\n",Tm、outtime);

printf("###############################################\n");

ﻩprintf("\n\n”);

 }

fclose(fp);

next=getche();

 }

//—---—--—-——-—-—-——-—---—-————--—--——-—--—-—--—--—-—----—-—-—---—--——--—----——--

voidchaxunzhi()/*按编号查询家庭成员财务支信息记录*/

{

intresult;/*"result=1"说明查询成功,反之查找失败*/

 moneyTm;/*定义进行操作时得临时结构体变量*/

longbianhao,before=0;

 charDa[40],next;

 /*Da存储家庭成员财务信息得文件名,next为就是否进行下一次操作得选项*/

  FILE*fp=NULL;

/*提示用户输入要查询得文件名*/

 printf("\n请输入存储数据得文件名,按回车键结束。

\n”);

  gets(Da);

/*提示用户输入要查询得家庭成员编号*/

begin:

result=0;system("cls");

  printf(”请输入要查询得家庭成员编号,按回车键结束.\n");

 scanf("%ld",&bianhao);

getchar();

fp=fopen(Da,”rb");  /*只读方式打开文件*/

   if(fp==NULL)

  {

   printf("\n打开文件%s失败!

按任意键结束!

\n",Da);

exit(0);

 }

/*循环查找与输入编号相匹配得家庭成员财务收支信息记录,如果查找到,则输出结果*/

 while(feof(fp)==0) /*没有读到文件得结尾*/

{if(fread(&Tm,sizeof(money),1,fp)!

=(int)NULL) /*判断就是否从文件中成功读取数据*/

{if(Tm、Number==bianhao)    /*文件内容编号与输入编号一致*/

{if(before!

=Tm、Number)

{system("cls”);printf(”\n查找成功!

\n\n您要查找得家庭成员得信息如下:

\n”);}

printf(”######################################\n");

           printf("\n成员编号:

%ld\n",Tm、Number);

ﻩprintf("成员姓名:

%s\n",Tm、Name);

ﻩprintf("成员支出:

%f 元\n”,Tm、out);

ﻩprintf("支出时间:

%s\n",Tm、outtime);

ﻩprintf("######################################\n"); result=1;/*"result=1”说明找到了该家庭成员得对应信息、*/

ﻩﻩbefore=Tm、Number;ﻩﻩ

  }

  }

}

  fclose(fp);

if(result==0)

{

    system(”cls”);

  printf("对不起!

\n文件中没有该家庭成员所对应得信息.\n”);

 }

 printf("\n继续?

(就是:

 y/Y,否:

n/N)\n");

  next=getche();

putchar('\n’);system("cls");

  if(next=='y’||next=='Y')goto begin;

}

//--—--——-—--------—---—-—-——----—--—--—--——-—-—-----—------------—-—-—-————-----—

void chaxunshou()  /*按编号查询家庭成员财务收支信息记录*/

{

   intresult;/*"result=1"说明查询成功,反之查找失败  */

 moneyTm;/*定义进行操作时得临时结构体变量*/

  long bianhao,before=0;

char Da[40],next;

/*Da存储家庭成员财务信息得文件名,next为就是否进行下一次操作得选项*/

FILE*fp=NULL;

/*提示用户输入要查询得文件名*/

  printf(”\n请输入存储数据得文件名,按回车键结束。

\n”);

   gets(Da);

 /*提示用户输入要查询得家庭成员编号*/

begin:

result=0;system(”cls”);

printf("请输入要查询得家庭成员编号,按回车键结束.\n");

 scanf("%ld”,&bianhao);

 getchar();

  fp=fopen(Da,"rb”);   /*只读方式打开文件*/

if(fp==NULL)

 {

 printf("\n打开文件%s失败!

按任意键结束!

\n",Da);

    exit(0);

 }

ﻩ/*循环查找与输入编号相匹配得家庭成员财务收支信息记录,如果查找到,则输出结果*/

 while(feof(fp)==0)      /*没有读到文件得结尾*/

 {if(fread(&Tm,sizeof(money),1,fp)!

=(int)NULL)   /*判断就是否从文件中成功读取数据*/

     {if(Tm、Number==bianhao)   /*文件内容编号与输入编号一致*/

   {if(before!

=Tm、Number)

{system("cls");printf("\n查找成功!

\n\n您要查找得家庭成员得信息如下:

\n”);}

printf("######################################\n”);

        printf("\n成员编号:

%ld\n",Tm、Number);

printf(”成员姓名:

%s\n”,Tm、Name);

        printf(”成员收入:

%f 元\n",Tm、in);

ﻩprintf("收入时间:

%s\n",Tm、intime);

ﻩprintf("######################################\n");result=1;/*" result=1”说明找到了该家庭成员得对应信息、*/

ﻩbefore=Tm、Number;ﻩ

    }

  }

 }

 fclose(fp);

 if(result==0)

  system("cls”);

   printf(”对不起!

\n文件中没有该家庭成员所对应得信息。

\n");

 }

 printf(”\n继续?

(就是:

y/Y,否:

n/N)\n”);

next=getche();

 putchar('\n’);system("cls”);

 if(next==’y’||next=='Y’)gotobegin;

}

//—------——----——-—---—---------——--——-----—--—-—-—--—----—------——-——--—--—---———--

voidxiugaizhi() /*修改家庭成员收支信息记录*/

{

 inti,result=0;

  longmodnum;/*存储要修改得家庭成员序号*/

/*输入各项修改后信息*/

  long no,Number;

charName[20];

 floatin;

ﻩcharintime[10];

  float out;

charouttime[10];

floatsum;

  moneyTm;   /*定义进行操作时得临时结构体变量*/

moneys[SIZE]; /*SIZE,在shead、h头文件中定义得常量,值为100 */

 int recNumber;

  charDa[40],next;

 /*Da存储家庭成员收支信息信息得文件名,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",&modnum);

printf("您要修改得成员编号就是:

%ld\n\n",modnum);

ﻩwhile(fread(&Tm,sizeof(money),1,fp)!

=(int)NULL) /*读取文件内容,判断就是否读取成功*/

ﻩ{

ﻩﻩif(Tm、Number==modnum)          /*输入得编号与文件内容得编号一致*/

ﻩﻩ{  

ﻩﻩprintf(”############################\n”);

ﻩprintf("\n该项内容编号:

%ld\n",Tm、no);

ﻩﻩprintf("\n成员编号:

%ld\n",Tm、Number);

ﻩﻩprintf("\n成员姓名:

%s\n",Tm、Name);

ﻩﻩprintf(”\n  成员支出:

%f元\n",Tm、out);

ﻩprintf(”\n支出时间:

%s\n",Tm、outtime);

ﻩﻩprintf("############################\n");

ﻩresult=1;

ﻩ}

ﻩ}

rewind(fp); /*把文件指针指向文件得开头*/

if(result==0)

{printf("您输入得编号不存在,请确认后重新输入:

\n”);

printf("\n就是否继续?

(就是:

y/Y,否:

n/N)");

 next=getche();system(”cls”);

putchar('\n');

  if(next=='y'||next=='Y’)gotobegin;

elseexit(0);

}

result=0;

ﻩprintf(”请输入您要修改得该项内容编号:

\n");

scanf("%ld”,&no);

   /*输入要修改记录得各项内容值*/

Number=modnum;

printf("输入姓名,支出,支出时间,输入编号为0时结束!

\n");

 printf(”成员姓名:

”);

  scanf("%s",Name);

  printf(”成员支出:

");

scanf(”%f”,&out);

printf("支出时间:

");

 scanf(”%s",outtime);

sum=in-out;

/*将文件中要修改得信息存入结构体数组*/

 recNumber=0;

 /*循环将文件数据读入结构体数组,

 如文件中得数据家庭成员内容编号与要修改得家庭成员内容编号不符,则原样写入数组,

 如文件中数据得家庭成员内容编号与要修改家庭成员内容编号匹配,

则根据输入得各项修改内容重新赋值,即修改,并写入数组*/

  while((fread(&Tm,sizeof(money),1,fp))!

=(int)NULL)  /*读取文件内容.就是否成功*/

   if(Tm、no!

=no)           /*输入得内容编号与文件内容编号不一致*/

 {

    s[recNumber]、no=Tm、no;

 s[recNumber]、Number=Tm、Number;

   strcpy(s[recNumber]、Name,Tm、Name);

     s[recNumber]、in=Tm、in;

strcpy(s[recNumber]、intime,Tm、intime);

 s[recNumber]、out=Tm、out;

strcpy(s[recNumber]、outtime,Tm、outtime);

    s[recNumber]、sum=Tm、sum;

   }

  if(Tm、no==no)           /*输入得内容编号与文件内容编号一致*/

   {

   s[recNumber]、no=no;

      s[recNumber]、Number=Number;

   strcpy(s[recNumber]、Name,Name);

s[recNumber]、in=in;

strcpy(s[recNumber]、intime,intime);

   s[recNumber]、out=out;

strcpy(s[recNumber]、outtime,outtime);

s[recNumber]、sum=sum;

ﻩresult=1;

recNumber++;

  fclose(fp);

 /*将修改后得结构体数组记录写入文件*/

    fp=fopen(Da,"wb+");  /*打开文件,原文件内容清空*/

   if(fp==NULL)

  {

       printf("\n打开文件%s失败!

按任意键结束!

\n”,Da);

    exit(0);

   }

    for(i=0;i<recNumber;i++)  /*采用循环将数据写入文件*/

  {

   if(fwrite(&s[i],sizeof(money),1,fp)!

=1)

    {

       printf("\n写入文件 %s 失败!

按任意键结束!

\n",Da);

         exit(0);

   }

 }

   fclose(fp);

ﻩif(result==1)

ﻩprintf("文件修改成功,已成功保存在用户文件夹\n");

ﻩﻩ/*询问就是否查瞧修改后得文件*/

 printf("\n就是否查瞧修改后得文件?

(就是:

y/Y,否:

n/N)”);

 next=getche();system("cls");

  putchar('\n');

if(next=='y'||next=='Y') 

{/*显示修改后得文件*/

 fp=fopen(Da,"rb”);   /*只读方式打开文件*/

  if(fp==NULL)

 {

  printf(”\n打开文件%s失败!

按任意键结束!

\n",Da);

   exit(0);

}

ﻩsystem(”cls");

printf(”\n修改后得文件全部内容就是:

\n");

  while(fread(&Tm,sizeof(money),1,fp)!

=(int)NULL)

  {printf(”############################\n\n”);

    printf(”成员编号:

%ld\n",Tm、Number);

ﻩprintf(”成员姓名:

%s\n",Tm、Name);

ﻩprintf("成员支出:

%f元\n",Tm、out);

printf(" 支出时间:

%s\n”,Tm、outtime);

ﻩprintf(”############################\n");

ﻩﻩprintf(”\n”);

 }

 fclose(fp);

ﻩ}

ﻩ}

ﻩif(result==0)

printf("\n您输入得内容编号不存在.文件修改失败。

\n\n");

/*提示就是否进行下一次修改*/

 printf(”\n就是否继续?

(就是:

y/Y,否:

n/N)");

  next=getche();system(”cls");

 putchar(’\n’);

if(next==’y’||next==’Y')gotobegin;

}

//-----——-—-—-----——----——-—---------—-——--——-———--—----—-———------—----—--——-——

voidxiugaishou() /*修改家庭成员收信息记录*/

 {

 inti,result=0;

  long modnum;/*存储要修改得家庭成员序号*/

/*输入各项修改后信息*/

long no,Number;

   charName[20];

floatin;

charintime[10];

 floatout;

ﻩcharouttime[10];

floatsum;

 moneyTm; /*定义进行操作时得临时结构体变量*/

 money s[SIZE];/*SIZE,在shead、h头文件中定义得常量,值为100*/

  int recNumber;

 char Da[40],next;

  /*Da存储家庭成员收支信息信息得文件名,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("请输入您要修改得家

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工作范文 > 行政公文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1