点击这里给我发消息 点击这里给我发消息

关于记录的一个程序

添加时间:2013-12-7
    相关阅读: 程序
副标题#e#

    #include <stdio.h>
    #include <windows.h>
    struct person
    {
      char name[8];
      char tel[15];
      char addr[50];
    };
    char filename[20];
    FILE *fp;

    #include <stdio.h>
    #include <windows.h>
    struct person
    {
      char name[8];
      char tel[15];
      char addr[50];
    };
    char filename[20];
    FILE *fp;

    void creat();
    void output();
    void search();
    void append();
    void modify();
    void delete();

    main()
    {
      int m;
      creat();
      while(1)
      {
      printf("\n\n添加,请按1");
      printf("\n查找,请按2");
      printf("\n修改,请按3");
      printf("\n删除,请按4");
      printf("\n输出,请按5");
      printf("\n退出,请按0");
      printf("\n");
      scanf("%d",&m);
      if (m>=0&&m<=5)
      {
         switch(m)
         {
         case 1: append();
         break;
         case 2: search();
         break;
         case 3: modify();
         break;
         case 4: delete();
         break;
         case 5: output();
          break;
    case 0: exit(fp);
      }
      printf("\n\n操作完成,请再次选择!");
      }
      else
      
      printf("\n\n选择错误,请再次选择!");
      }
    }

 

#p#副标题#e#

    void creat()
    {
      struct person one;
      long s1;
       printf("*************************************************\n");
       printf("*   written by 刘歧  1jjk  *\n");
       printf("*************************************************\n");
      printf("\n请输入记事本名:");
      scanf("%s",filename);
      if ((fp=fopen(filename,"w"))==NULL)
      {
       printf("\n不能建立记事本");

       fprintf(fp,"%-10s%-20s%-50s","姓名","日期","事件");
       printf("\n请输入姓名,日期和事件以0结束\n");
       scanf("%s",one.name);
       while(strcmp(one.name,"0"))
       {
         scanf("%s%s",one.tel,one.addr);
         fprintf(fp,"%-10%s-20%s-50s",one.name,one.tel,one.addr);
         scanf("%s",one.name);
       }
       fclose(fp);
      }
    }

    void output()
    {
      struct person one;
      if((fp=fopen(filename,"r"))==NULL)
      {
       printf("\n不能打开记事本!");

      }
      printf("\n\n%20s\n","记事本");
      while(!feof(fp))
      {
      fscanf(fp,"%-10%s-20%s-50s",one.name,one.tel,one.addr);
      printf("%-10s%-20s%-50s",one.name,one.tel,one.addr);
      }
      fclose(fp);
      
    }
    void append()
    {
      struct person one;
      if ((fp=fopen(filename,"a"))==NULL)
      {
       printf("\n不能打开记事本!");


      }
      printf("\n请添入姓名,日期码及事件");
      scanf("%s%s%s",one.name,one.tel,one.addr);
      fprintf(fp,"%-10s%-20s%-50s",one.name,one.tel,one.addr);
      fclose(fp);
    }

    void search()
    {
      int k=0;
      char namekey[8];
      struct person one;
      printf("\n请输入姓名");
      scanf("%s",namekey);
      if((fp=fopen(filename,"rb"))==NULL)
      {
       printf("\n不能打开记事本");

      }
      while (!feof(fp))
      {
       fscanf(fp,"%s%s%s\n",one.name,one.tel,one.addr);
       if(!strcmp(namekey,one.name))
       {
         printf("\n\n已经查到");
         printf("\n%-10s%-18s%-50s",one.name,one.tel,one.addr);
         k=1;
       }
      }
      if(!k)
       printf("\n\n对不起,记事本中没有这个人");
      fclose(fp);
    }
    void modify()
    {
      int k=0;
      long offset;
      char namekey[8];
      struct person one;
      printf("\n请输入用户名");
      scanf("%s",namekey);
      if((fp=fopen(filename,"r+"))==NULL)
      {
       printf("\n不能打开记事本");
     
      }
      while(!feof(fp))
      {
       offset=ftell(fp);
       fscanf(fp,"%s%s%s\n",one.name,one.tel,one.addr);
       if(!strcmp(namekey,one.name))
       {
         k=1;
         break;
       }
      }

#p#副标题#e#

      if(k)
      {
       printf("\n已经查到,记录为:");
       printf("\n%-10s%-18s%-50s",one.name,one.tel,one.addr);
       printf("\n请输入新的姓名,日期和事件");
       scanf("%s%s%s",one.name,one.tel,one.addr);
       fseek(fp,offset,SEEK_SET);
       printf("%ld",ftell(fp));
       fprintf(fp,"%-10s%-20s%-50\n",one.name,one.tel,one.addr);
      }
      else
      {
       printf("\n对不起,记事本中没有这个人");
       fclose(fp);
      }
    }

    void delete()
    {
      int m,k=0;
      long offset1;
      char namekey[8];
      struct person one;
      printf("\n请输入姓名");
      scanf("%s",namekey);
      if((fp=fopen(filename,"r+"))==NULL)
      {
      printf("\n不能打开记事本!");
     
      }
      while(!feof(fp))
      {
      offset1=ftell(fp);
      fscanf(fp,"%s%s%s\n",one.name,one.tel,one.addr);
      if(!strcmp(namekey,one.name))
      {
         k=1;
         break;
      }
      }
      if(k)
      {
      printf("\n已经查到,记录为:");
      printf("\n%-10s%-18s%-50s",one.name,one.tel,one.addr);
      printf("\n确实要删除,按1,不删除,按0:");
      scanf("%d",&m);
      {
         if(m)
         {
          fseek(fp,offset1,SEEK_SET);
          fprintf(fp,"%-10s%-20s%-50s\n","","","");
         }
      }
      }
      else
      printf("\n对不起,记事本中没有此人");
      fclose(fp);
    }

相关关于记录的一个程序

咨询热线:020-85648757 85648755 85648616 0755-27912581 客服:020-85648756 0755-27912581 业务传真:020-32579052
广州市网景网络科技有限公司 Copyright◎2003-2008 Veelink.com. All Rights Reserved.
广州商务地址:广东省广州市黄埔大道中203号(海景园区)海景花园C栋501室
= 深圳商务地址:深圳市宝源路华丰宝源大厦606
研发中心:广东广州市天河软件园海景园区 粤ICP备05103322号 工商注册