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;