问题描述
菜单问题
问题解析
接口设计:
void MenuFunc();
方法1:
/**************************************************************
初始化
while(判断)
{
菜单;
输入;
处理;
}
**************************************************************/
void MenuFunc() //常规写法
{
char ch='\0'; //初始化。字符型变量可以用字符型(普通字符和转义字符)、整型(十进制、十六进制等),实质在内存中都是二进制形式
while(ch!='0')
{
ShowMenu();
fflush(stdin); //当输入整数scanf("%d",&d)时,不需要fflush(stdin)
scanf("%c",&ch);//或ch=getchar();
SortMenu(ch);
// system("cls"); //当存在清屏函数的时候,最好之前加一个_sleep(1000)函数,暂停一秒。
}
}
方法2:
/**************************************************************
菜单
输入
while(判断)
{
处理;
菜单;
输入;
}
**************************************************************/
void MenuFunc() //复杂,但属于常规思维,注意只是思维,而不是写法。
{
char ch; //可以不用初始化,因为它马上输入赋值。
ShowMenu();
fflush(stdin); //当输入整数scanf("%d",&d)时,不需要fflush(stdin)
scanf("%c",&ch);//或者ch=getchar();
while(ch!='0')
{
SortMenu(ch);
// system("cls"); //当存在清屏函数的时候,最好之前加一个_sleep(1000)函数,暂停一秒。
ShowMenu();
fflush(stdin);
scanf("%c",&ch);//或者ch=getchar();
}
}
方法3:
/**************************************************************
while((菜单,输入) 判断)
{
处理;
}
**************************************************************/
void MenuFunc() //简捷,和方法2并列,将菜单和输入看成整体。只是这种写法不太常用。
{
char ch; //可以不用初始化,因为它马上输入赋值。
while((ShowMenu(),fflush(stdin),scanf("%c",&ch),ch)!='0') //ch=getchar();
{
SortMenu(ch);
// system("cls"); //当存在清屏函数的时候,最好之前加一个_sleep(1000)函数,暂停一秒。
}
}
引入接口:
void ShowMenu();
void SortMenu(char ch);
接口1:
void ShowMenu()
{
printf("\t*****************\n");
printf("\t1.增加条目\n");
printf("\t2.删除条目\n");
printf("\t3.修改条目\n");
printf("\t4.查找条目\n");
printf("\t5.全部条目\n");
printf("\t0.退出\n");
printf("\t*****************\n");
printf("请选择:");
}
接口2:
void SortMenu(char ch)
{
switch(ch)
{
case '1':
printf("Run 增加条目 function!\n");
break;
case '2':
printf("Run 删除条目 function!\n");
break;
case '3':
printf("Run 修改条目 function!\n");
break;
case '4':
printf("Run 查找条目 function!\n");
break;
case '5':
printf("Run 全部条目 function!\n");
break;
case '0': //输入0时,会执行该语句
printf("Thank you for use!\n");
break;
default:
printf("please input a valid number(0~5)!\n");
}
}