自助点餐系统 (二)

1.实现管理员界面后,做出来了管理员相关工作,有些不足的地方等我先全部写完后再改正。

目录


    system("cls");
    char ch;
    int number,i,k,sel,e;
    int count=reads();
    if(count==-1)
        count=0;
    printf("输出菜单:\n");
    output();
    printf("菜品数量%d\n",count);
    printf("\t\t\t\t\t************* 您现在想  **************\n");
    printf("\t\t\t\t\t********                      ********\n");
    printf("\t\t\t\t\t*             1、增加菜品            *\n");
    printf("\t\t\t\t\t*             2、删除菜品            *\n");
    printf("\t\t\t\t\t*             3、修改菜单            *\n");
    printf("\t\t\t\t\t*             4、查看账单            *\n");
    printf("\t\t\t\t\t*             5、返回                *\n");
    printf("\t\t\t\t\t**************************************\n");

一、添加菜单

  case '1':
    {
        int N;
        printf("\t\t\t\t\t           ============           \n");
        printf("\t\t\t\t\t********** 录入食物信息 *************\n");
        printf("\t\t\t\t\t          ============           \n\n");
        printf("\t\t请输入您要录入的食物数量:");
        scanf("%d", &N);
        for(i=0; i<N; i++)
        {
it:
            printf("----------------------------------------\n");
            printf("请输入第%d个菜品编码:",i+1);
            scanf("%d",&caipin[count].bianma);
            //来判断一下编码是否以存在
            int flag=1;//表示不存在
            for(int x=0; x<count; x++)
                if(caipin[count].bianma==caipin[x].bianma)
                    flag=!flag;

            //如果存在则返回
            if(flag==0)
            {
                printf("此编码已经被其它的菜品所征用!>﹏<\n");
                goto it;
            }
            printf("\t\t食物名称:");
            scanf("%s", caipin[count].name);
            printf("\t\t价格:");
            scanf("%f", &caipin[count].price);
            printf("\t\t热销量:");
            scanf("%d",&caipin[count].hot);
            count++;
        }
        qsort(caipin,count,sizeof(caipin[0]),comp);
        save(count);
        printf("请问是否需要查看菜单【1 or 2】:");
        scanf("%d",&sel);
        while(sel!=1 && sel!=2)
        {
            printf("输入错误,请重新再输入:");
            scanf("%d",&sel);
        }

        if(sel==1)
            {
                output();
                Sleep(1200);
                getchar();
                change();
            }
        else
        {
        getchar();
        change();
        }

        break;
    }

二、删除菜品


        printf("----------------------------------------\n");
        printf("输入需要删除的菜品序号:\n");
        scanf("%d",&number);
        int count =reads();
        for(i=0; i<count; i++)
        {
            if(number==caipin[i].bianma)
            {
                if(i==count-1)
                {
                    //如果是int 或者 double  直接给0
                    //如果是char 字符串 直接给"" 空串
                    caipin[i].hot=0;
                    caipin[i].price=0;
                    strcpy(caipin[i].name,"");
                }
                else
                {
                    //把 i+1到199的同学所有信息整体往前赋值
                    caipin[i].bianma=caipin[count-1].bianma;
                    strcpy(caipin[i].name,caipin[count-1].name);
                    caipin[i].price=caipin[count-1].price;
                    caipin[i].hot=caipin[count-1].hot;
                }

                count--;
                printf("数据已经删除!\n");
                qsort(caipin,count,sizeof(caipin[0]),comp);
                save(count);//需要调用保存函数
                break;
            }
        }
        printf("请问是否需要查看菜单【1 or 2】:");
        scanf("%d",&sel);
        while(sel!=1 && sel!=2)
        {
            printf("输入错误,请重新再输入:");
            scanf("%d",&sel);
        }

        if(sel==1)
        {
            printf("----------------------------------------\n");
            printf("删除后的菜单:\n");
            output();
            Sleep(1200);
            getchar();
            change();
        }
        else
        {
            getchar();
            change();
        }
        break;
    }

三、修改菜品

 case '3':
    {
        int d;
        char news[1001];
        float np;
      printf("----------------------------------------\n");
      printf("请输入你要进行修改的菜品序号:\n");
       here:
        scanf("%d",&d);
        //判断是否有此编码
        int flag=1;//假设为不存在的状态

        for(i=0; i<count; i++)
            if(d==caipin[i].bianma)
                flag=0;//寻找到就改变状态
        if(flag==1)
        {
            printf("非常抱歉亲爱的顾客,你所输入编码不在今日菜单内!\n");
            printf("请重新输入你需要修改的菜品编号:");
            goto here;
        }
    printf("\t\t\t\t\t************** 您现在想  ****************\n");
    printf("\t\t\t\t\t********                         ********\n");
    printf("\t\t\t\t\t*             1、修改菜品名             *\n");
    printf("\t\t\t\t\t*             2、修改菜品金额           *\n");
    printf("\t\t\t\t\t*             3、返回                   *\n");
    printf("\t\t\t\t\t*****************************************\n");

    printf("请输入你的选择【1 or 2 or 3】:");
    scanf("%d",&sel);
    //判断是否输入错误
    while(sel!=1 && sel!=2 && sel!=3)
    {
        printf("输入错误,请重新再输入:");
        scanf("%d",&sel);
    }
    printf("----------------------------------------\n");
   switch(sel)
   {
   case 1:
    {
     printf("输入新的菜品名:\n");
     scanf("%s",news);
     strcpy(caipin[d].name,news);
     save(count);
     getchar();
     change();
    break;
   }
   case 2:
    {
        printf("输入想要修改的金额:\n");
        scanf("%f",&np);
        caipin[d].price=np;
        save(count);
        getchar();
        change();
        break;
    }
   case 3:
    {
        getchar();
        change();
        break;
    }
    }
    break;
    }

四、查看账单

 case '4':
    {
        int countt=payout();
        double add=0;
        printf("\t\t\t\t\t           ====           \n");
        printf("\t\t\t\t\t********** 账单 *************\n");
        printf("\t\t\t\t\t           ====           \n\n");
        printf("%10s %10s %10s %10s\n","桌号","菜品数","价格","是否买单");
        for(int i=0;i<countt;i++)
            {
                printf("%10d %10d %10.2f %10d\n",custmer[i].seat,custmer[i].sl,custmer[i].sum,custmer[i].f);
                add+=custmer[i].sum;
            }
        printf("总价:%.2lf\n",add);
        printf("请问是否继续操作【1 or 2】:");
        int sel;
        scanf("%d",&sel);
        if(sel==1)
        {
            getchar();
            change();
        }
        else
            return ;
        break;

    }

五、退出

case '5':
        getchar();
        loads();
        break;

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值