编辑代码

#include <stdio.h>
#include <stdlib.h>
#define N 2
#define L 10
struct M
{
    int no;
    char name[10];
    float price;
    int yn;  //是否可供应
    int nu;  //菜品数量
}me[N+1],nw[N+1];
struct sel
{
    int de;
    int s[L];
    int t[L];
}se;
int shuru()
{
    int i;
    FILE *fp;
    if((fp=fopen("menu","wb"))==NULL)
    {
        printf("文件打开失败\n");
        exit(0);
    }
    for(i=1;i<=N;i++)
    {
        me[i].no=i;
        scanf("%s",me[i].name);
        scanf("%f %d %d",&me[i].price,&me[i].yn,&me[i].nu);
        fwrite(&me[i],sizeof(me[i]),1,fp);
    }
    fclose(fp);
    return 0;
}
int diancai()
{
    int i,c,d;
    FILE *fp;
    if((fp=fopen("menu","rb"))==NULL)
    {
        printf("文件打开失败\n");
        exit(0);
    }
    for(i=1;i<=N;i++)
        fread(&me[i],sizeof(me[i]),1,fp);
    fclose(fp);
    scanf("%d",&se.de);
    fp=fopen("se.de","wb");
    while(1)
    {
        scanf("%d %d",&c,&d);
        for(i=1;i<=N;i++)
        {
            if(me[i].no==c)
            {
                if(me[i].yn==0||me[i].yn<d)
                    printf("不可提供\n");
                else
                {
                    se.s[i]=c;
                    se.t[i]=d;
                }
            }
        }
        if(c==0)
            break;
    }
    fwrite(&se,sizeof(se),1,fp);
    fclose(fp);
}
int dele()
{
    FILE *fp;
    int i,dd,j=1;
    if((fp=fopen("menu","rb"))==NULL)
    {
        printf("文件打开失败\n");
        exit(0);
    }
    scanf("%d",&dd);
    for(i=1;i<=N;i++)
        fread(&me[i],sizeof(me[i]),1,fp);
    fclose(fp);
    fp=fopen("menu","wb");
    for(i=1;i<=N;i++)
    {
        if(dd!=me[i].no)
        {
            nw[j]=me[i];
            j++;
            fwrite(&nu[i],sizeof(se),1,fp);
        }
    }
    fclose(fp);
    return 0;
}
int main()
{
    shuru();
    diancai();
    dele();
    return 0;
}