商品管理系统
删除函数
主要代码:
void deletes()
{
system("cls");
printf(" ----------------------------------------------------------------------\n");
printf(" || -------------------------- ||\n");
printf(" || 请输入要删除的商品代码 ||\n");
printf(" || -------------------------- ||\n");
printf(" || ||\n");
printf(" ----------------------------------------------------------------------\n");
int id;
scanf("%d",&id);
getchar();
FILE *file;
file=fopen("produce.data","r");
struct produce p;
int size,ok=0;
while(!feof(file)&&(size=fread(&p,sizeof(struct produce),1,file))==1)
{
if(p.id==id)
{
ok=1;
fclose(file);
break;
}
}
if(ok==1)
{
printf("----------------------------------------------------------------------\n");
printf(" ----------商品信息---------- \n");
printf(" --------------------------- \n");
printf(" 商品代码 商品名称 商品规格 商品价格 商品数量 \n");
printf("【%-10d 】【 %-10s 】 【 %-10s 】 【 %-10.3f 】 【 %-10d 】 \n",p.id,p.name,p.specs,p.price,p.count);
printf("----------------------------------------------------------------------\n");
printf("|| 是否确认删除 ||\n");
printf("|| -------------------------- ||\n");
printf("|| Y-继续 N-回到菜单 ||\n");
printf("----------------------------------------------------------------------\n");
char k;
scanf("%c",&k);
getchar();
if(k=='Y'||k=='y')
{
system("cls");
deleteProduce(id);
}
}
else
{
printf("------------------------------------------------------------------------\n");
printf(" 没有找到相应的商品信息 \n");
printf("------------------------------------------------------------------------\n");
printf(" ---------------------------------------------------------------------\n");
printf(" || -------------------------- ||\n");
printf(" || 是否继续? ||\n");
printf(" || -------------------------- ||\n");
printf(" || Y-继续 N-回到菜单 ||\n");
printf(" ----------------------------------------------------------------------\n");
char q;
scanf("%c",&q);
getchar();
if(q=='Y'||q=='y')
{
system("cls");
deletes();
}
}
}
void deleteProduce(int id)
{
struct produce arr[100];
FILE *file;
file=fopen("produce.data","r");
struct produce p;
int size;
int index=0;
while(!feof(file)&&(size=fread(&p,sizeof(struct produce),1,file))==1)
{
if(p.id!=id)
{
arr[index]=p;
index++;
}
}
fclose(file);
file=fopen("produce.data","w");
fclose(file);
file=fopen("produce.data","a");
int i;
for(i=0;i<index;i++)
{
fwrite(&arr[i],sizeof(struct produce),1,file);
}
fclose(file);
printf("|| 删除成功是否继续? ||\n");
printf("|| -------------------------- ||\n");
printf("|| Y-继续 N-回到菜单 ||\n");
printf("----------------------------------------------------------------------\n");
char h;
scanf("%c",&h);
getchar();
if(h=='y'||h=='Y')
{
system("cls");
deletes();
}
}