菜单驱动程序

#include<stdio.h>
#include<stdlib.h>
#define N 6
/*各菜单项的执行函数*/
void function1(int a);
void function2(int b);
void function3(int c);

int menu(int max,char*menu_list[]);/*函数原型*/
/*主函数*/
int main(void)
{
printf("欢迎您的光临!\n");
void(*f[3])(int)={function1,function2,function3};
int choice;
printf("请输入0-2,3表示退出\n");
scanf("%d",&choice);
while(choice>=0&&choice<3)
{
(*f[choice])(choice);
printf("请输入0-2,3表示退出\n");
scanf("%d",&choice);
}
system("PAUSE");
return 0;
} /*end main*/

void function1(int a)
{
printf("您输入的是%d,这里是主食区\n",a);
char *species[N]={"泡菜炒饭","煲仔饭","海鲜泡饭","五谷丰登","日式担担面","海鲜骨汤面"};
double price[N]={28.0,15.7,23.9,18.0,30.2,19.8};
int C;
C=menu(N,species);
printf("您购买的是:%s,价格:%.2f元\n",species[C],price[C]);
}/*end function1*/

void function2(int b)
{
printf("您输入的是%d,这里是小吃区\n",b);
char *species[N]={"薯条","鸡翅","虾饼","沙拉","牛肉薄饼","蛋挞"};
double price[N]={5.8,12.0,7.9,15.7,9.9,2.5};
int C;
C=menu(N,species);
printf("您购买的是:%s,价格:%.2f元\n",species[C],price[C]);
}/*end function2*/

void function3(int c)
{
printf("您输入的是%d,这里是饮品区\n",c);
char *species[N]={"红豆布丁奶茶","柠檬茶","拿铁咖啡","椰汁西米露","贡茶","橙汁"};
double price[N]={11.0,9.9,13.6,8.9,25.7,8.5};
int C;
C=menu(N,species);
printf("您购买的是:%s,价格:%.2f元\n",species[C],price[C]);
}/*end function3*/

int menu(int max,char *menu_list[])
{
int Choice,n;
for(n=0;n<max;n++)
{
printf("\t%i.%s\n",n,menu_list[n]);
}
printf("请您选择:");
for(;;)
{
scanf("%i",&Choice);
if(Choice>=0&&Choice<max)
break;
printf("请在0和%i之间选择:",max-1);
}
return Choice;
}/*end menu*/

 

posted @ 2017-05-26 16:09  HGR  阅读(416)  评论(0编辑  收藏  举报