⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 delete.c.txt

📁 小商品库存的小软件
💻 TXT
字号:
/*delete.c: 删除商品信息记录*/
#include "stdio.h"
void DelRecord( )
   {
      int i,j,k;
      long delnum;                                        /*存放顾客输入的要删除商品序号*/
      product TmpS;                                     /*定义进行操作时的临时结构体变量*/
      product s[SIZE];                                   /*SIZE,在shead.h头文件中定义的常量,值为100*/
      int recNumber;                                    /*原文件中的记录数*/
      char DataFile[40] = "",next;                  /*DataFile存储商品信息的文件名,next为是否进行下一次删除操作的选项*/
      FILE *fp;/*====fp指针指向存储数据的文件名====*/
      printf("\nplease input the name of production information file.\n");
      gets(DataFile);
      /*提示客户输入要进行删除记录的文件名*/
      while(*DataFile == ('\0'))
      {
             printf("\nplease input the name of production information file.\n");
             gets(DataFile);
      }
begin:
      /*以二进制读的方式打开文件*/
      fp=fopen(DataFile,"rb");
      if (fp == NULL)
      {
          printf("\nOpen file %s fail!End with any key\n",DataFile);
          perror("Open file fail");
          getch( );
          exit(1);
      }
      /*输入要删除的商品序号*/
      printf("please input the Product's seatnum which you will delete:");
      scanf("%ld",&delnum);
      printf("the product you will delete is:%ld\n",delnum);
      /*将文件中信息存入结构体数组*/
      /*与要删除的商品序号相匹配的项不写入数组,循环后数组中即为去掉了要删除记录后的剩余记录*/
      recNumber=0;
      while((fread(&TmpS,sizeof(product),1,fp)) != (int)NULL)
      {
            if(TmpS.Number!=delnum)
                   {
                   s[recNumber].Number = TmpS.Number;
                   strcpy(s[recNumber].Name,TmpS.Name);
                   s[recNumber].price = TmpS.price;
                   s[recNumber].discount = TmpS.discount;
                   s[recNumber].memberprice = TmpS.memberprice;
                   recNumber++;
                   }
      }
      fclose(fp);
            /*====将删除后的剩余结构体记录写入文件====*/
            fp=fopen(DataFile,"wb+");
            if (fp == NULL)
            {
            printf("\nSet up file %sfail !end with angkey.\n",DataFile);
            perror("Set up fail");
            getch( );
            exit(1);
       }
       for(i=0; i<recNumber; i++)
       {
            if(fwrite(&s[i],sizeof(product),1,fp)!=1)
            {
            printf("\nWrite file %s fail!end with angkey.\n",DataFile);
            perror("Write file fail!");
                   getch( );
                   exit(1);
            }
        }
        fcolse(fp);
/*====显示删除后的文件====*/
        fp=fopen(DataFile,"rb");
        if (fp == NULL)
        {
               printf("\nOpen file%sfail!End with angkey \n",DataFile);
               perror("Open file fail");
                   getch( );
                   exit(1);
            }
            printf("the file after delete is:\n");
            printf("\nNumber \t\tName\tprice\tdiscount\tmemberprice\n");
            while(fread(&TmpS,sizeof(product),1,fp) != (int)NULL)
            {
                   if(TmpS.Number!=0)


                   printf("\n%ld\t%s\t%4.1f\t%4.1f\t%4.1f\n",TmpS.Number,
TmpS.Name,TmpS.price,TmpS.discount,TmpS.memberprice);
           }
           fclose(fp);
           /*询问客户是否继续删除*/
           printf("\nGo on ?(y/n)");
           next=getche( );
           putchar('\n');
           if ( next =='y' || next == 'y') goto begin;
        }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -