和大家分享一个c编的日常支出管理系统

 

/*本软件是完成日常收入与支出的记录*/
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
FILE *fp;
int k=0;//初始化输入个数为0
int b=1;//主函数只读取密码验证
struct money
{
 char name[201];
 char day[201];
 char livetishi[201];
 int takemoney,costmoney,allmoney,num;
}s[1000];
char str2[6]="000000";
void biaotou()
{
 printf(" ◤顺序 ┃  进账┃ 花销日期 ┃  出账  ┃出账情况 ┃  剩余money┃    生活提示 ◥\n");
    printf("════════════════════════════════════\n");
}
void menu()
{
 
 system("color 5e"); 
 system("cls");
  printf("               ╭*******************************************╮\n");
  printf("               |             ★个人理财信息 ★               |\n");
  printf("               |=============================================|\n");
  printf("               |             1.个人理财信息                  |\n");
 printf("               |=============================================|\n");
 printf("               |             2.显示账户信息                  |\n");
 printf("               |=============================================|\n");
    printf("               |             3.删除账户信息                  |\n");
 printf("               |=============================================|\n");
 printf("               |             4.查询账户信息                  |\n");
 printf("               |=============================================|\n");
    printf("               |             5.修改账户信息                  |\n");
 printf("               |=============================================|\n");
 printf("               |             6.保存账户信息                  |\n");
 printf("               |=============================================|\n");
 printf("               |             7.登录密码修改                  |\n");
 printf("               |=============================================|\n");
 printf("               |              0.退出系统                     |\n");
 printf("               |=============================================|\n");
 printf("               |     ★o(≧v≦)o~~~(@^_^@)~~~o(≧v≦)o★     |\n");
 printf("               ╰ ※※※※※※※※☆☆☆☆※※※※※※※※※╯\n");

//理财信息
void huaxiao()
{
 int i;
 char strd;
 char m[50];
 for(i=0;i<1001;i++)
 {
   printf("    请输入编号(输入编号为0时结束):");scanf("%d",&s[i].num);
   if(s[i].num==0)
   {
    fflush(stdin);       //清空缓存
    printf("是否退出y/n?    ");
    scanf("%c",&strd);
    if(strd=='y')
         break;
     else
     continue;
   }
   printf("请输入进账数目:");scanf("%d",&(s[i].takemoney));
   printf("请输入花销时间:");scanf("%s",m);strcpy(s[i].day,m);
      printf("请输入花销数目:");scanf("%d",&s[i].costmoney);
   printf("请输入花销情况:");scanf("%s",m);strcpy(s[i].name,m);
      printf("请输入生活提示:");scanf("%s",m);strcpy(s[i].livetishi,m);
     s[i].allmoney=s[i].takemoney-s[i].costmoney;
      k++;
   }
}
int xianshi()//显示文件
{
int i;
biaotou();
if((fp=fopen("huaxiao","rb"))==NULL)
{
 printf("           Can't Open!\n");
 exit(0);
}
for(i=0;i<=k;i++)
{
 fread(&s[i],sizeof(struct money),1,fp);
 printf("%4d %8d %12s %8d %10s %8d %16s \n",s[i].num,s[i].takemoney,s[i].day,s[i].costmoney,s[i].name,s[i].allmoney,s[i].livetishi);
 
}
fclose(fp);
return 0;
}
void save(int m) //保存文件
{
 FILE *fp;
 int j;
if((fp=fopen("C:huaxiao","wb"))==NULL)
 {
  printf("can't open!");
  exit(0);
 }
 for(j=0;j<=m;j++)
   if(fwrite(&s[j],sizeof(struct money),1,fp)!=1)
   printf("file write error\n");
   fclose(fp);
   printf("\n\n");
   printf("                     保存成功!!!!");
}
//删除文件
void shanchu()
{
 int i,j,num,m;
 printf("请输入你要删除的编号:");
 scanf("%d",&num);
 if((fp=fopen("huaxiao","rb"))==NULL)
 {
  printf("Can't Open!!!");
  exit(0);
 }
 for(i=0;i<=k;i++)
 {
  fread(&s[i],sizeof(struct money),1,fp);
  if(s[i].num==num)
   m=i;
 }
fclose(fp);
if((fp=fopen("huaxiao","rb"))==NULL)
 {
  printf("Can't Open!!!");
  exit(0);
 }
 for(i=m;i<=k;i++)
 {
  j=i+1;
  s[i].num=s[j].num;
                s[i].takemoney=s[j].takemoney;
  strcpy(s[i].day,s[j].day);
  s[i].costmoney=s[j].costmoney;
  strcpy(s[i].name,s[j].name);
                s[i].allmoney=s[j].allmoney;
  strcpy(s[i].livetishi,s[j].livetishi);
 }
 printf("\n\n");
 printf("                       删除成功!!!!!!!!!      \n");
fclose(fp);
save(k-1);
}
void chaxun()     //以编号查询
{
FILE* fp;
int num;
int i,m;
printf("      请输入编号:");
scanf("%d",&num);
if((fp=fopen("huaxiao","rb"))==NULL)
{
 printf("           Can't Open!\n");
 exit(0);
}
for(i=0;i<=k;i++)
{
  if(s[i].num==num)
  {
   printf("                       ◆■查询到结果◆■\n\n");
     m=i;
    biaotou();
     for(i=0;i<=k;i++)
{
 fread(&s[m],sizeof(struct money),1,fp);
 printf("%4d %8d %12s %8d %10s %16d %s \n",s[i].num,s[i].takemoney,s[i].day,s[i].costmoney,s[i].name,s[i].allmoney,s[i].livetishi);
 
}
    
  }
  else
     printf("Not Find!!!!");
}

}
//密码登陆
void mima()
{
 
 char str1[6];
 system("color e4");
   if((fp=fopen("mima","wb"))==NULL)
 {
  printf("can't open this file!!");
  exit(0);
 }
         printf("请设定新密码(6个字符),以回车键结束:");
   scanf("%s",str1);
   strcpy(str2,str1);
  fwrite(str2,sizeof(str2),1,fp);
         fclose(fp);
}
//保存

//tui出显示
void tuichu()
{
 system("color e9");
 printf("\n\n\n");
printf(" *******************~(@^_^@)~★谢谢你的使用★~(@^_^@)~**************************\n");
printf(" ******************* (*^◎^*)☆作者:飞向太阳☆(*^◎^*)*************************\n");
printf(" *************************★★版本号:zhyg-1.0 ★★*****************************\n");
}
//主函数
void main()
{
  
    FILE *fp;
    int i;
   
    int select,m;
    char str[7];
    int c=2;
    system("color 5e");
    if(b==1)
    {
     printf("                  .你仅有3次机会·\n");
 if((fp=fopen("mima","wb"))==NULL)
 {
  printf("can't open this file!!");
  exit(0);
 }
   fread(str2,sizeof(str2),1,fp);
 for(i=0;i<3;i++,c--)
 {
      printf("请输入密码:");
   scanf("%s",str);
   if(strcmp(str2,str)==0)
    break;
   else if(c>0)
   printf("还有%d次机会!!!\n",c);
     else if(c==0)
     {
      printf("  谢谢使用!!\n\n");
      exit(0);
     } 
    
  }
 b--;
    }
 //fclose(fp);

 menu();
 printf("               ▼温馨提示▼‥★☆输入完数据请按6进行保存☆★\n");
    printf("                    请选择所需的项目(以ENTER结束): ");
  scanf("%d",&select);
  switch(select)
 {
  case 1:printf("                      ***增加账户信息**                     \n");system("cls");huaxiao();
   printf("输入0返回主菜单:");scanf("%d",&m);if(m==0);main();break;   
  case 2:printf("                      ***显示账户信息**                     \n");system("cls");xianshi();
   printf("输入0返回主菜单:");scanf("%d",&m);if(m==0)main();break;  
  case 3:printf("                      ***删除账户信息**                     \n");system("cls");shanchu();
   printf("输入0返回主菜单:");scanf("%d",&m);if(m==0)main();break;    
  case 4:printf("                      ***查询账户信息**                     \n");system("cls");chaxun();
   printf("输入0返回主菜单: ");scanf("%d",&m);if(m==0)main();break;        
  case 5:printf("                      ***修改账户信息**                     \n");system("cls");printf("                       ⊙﹏⊙不好意思,出错了⊙﹏⊙!\n\n\n\n\n");
   printf("输入0返回主菜单: ");scanf("%d",&m);if(m==0)main();break;     
  case 6:printf("                      ***保存账户信息**                     \n");system("cls");save(k);
   printf("输入0返回主菜单: ");scanf("%d",&m);if(m==0)main();break;    
  case 7:printf("                      ***登录密码修改**                     \n");system("cls");mima();
       printf("输入0返回主菜单: ");scanf("%d",&m);if(m==0)main();break;
                       
  case 0:printf("                      *** 退出系统 **                       \n");system("cls");tuichu(); break;       
  default: break;          /*按键有误,必须为数值0-9*/
  }


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章