该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
多级菜单,下面哪种方法更好一点?
一:
#include
#include
#include
void menu1();
void menu2();
void menu3();
void menu();
void menu1()
{
system("clear"); //windows用system("cls");
printf("**菜单**\n");
printf("1.选项11\n");
printf("2.选项12\n");
printf("3.选项13\n");
printf("4.返回\n");
char choice=getch();
switch(choice)
{
case '1':menu1();break;
case '2':menu2();break;
case '3':menu3();break;
case '4':menu();break;
}
}
void menu2()
{
system("clear");
printf("**菜单**\n");
printf("1.选项21\n");
printf("2.选项22\n");
printf("3.选项23\n");
printf("4.返回\n");
char choice=getch();
switch(choice)
{
case '1':system("clear");menu1();break;
case '2':system("clear");menu2();break;
case '3':system("clear");menu3();break;
case '4':system("clear");menu();break;
}
}
void menu3()
{
system("clear");
printf("**菜单**\n");
printf("1.选项31\n");
printf("2.选项32\n");
printf("3.选项33\n");
printf("4.返回\n");
char choice=getch();
switch(choice)
{
case '1':menu1();break;
case '2':menu2();break;
case '3':menu3();break;
case '4':menu();break;
}
}
void menu()
{
system("clear");
printf("**菜单**\n");
printf("1.选项1\n");
printf("2.选项2\n");
printf("3.选项3\n");
printf("4.退出\n");
char choice=getch();
switch(choice)
{
case '1':menu1();break;
case '2':menu2();break;
case '3':menu3();break;
case '4':break;
}
}
int main()
{
menu();
return 0;
}
二:用while
#include
#include
#include
void menu1();
void menu2();
void menu3();
void menu();
void menu1()
{
while(1)
{
system("clear");
printf("**菜单**\n");
printf("1.选项11\n");
printf("2.选项12\n");
printf("3.选项13\n");
printf("4.返回\n");
char choice1=getch();
if(choice1=='4') break;
switch(choice1)
{
case '1':menu1();break;
case '2':menu2();break;
case '3':menu3();break;
}
}
return;
}
void menu2()
{
while(1)
{
system("clear");
printf("**菜单**\n");
printf("1.选项21\n");
printf("2.选项22\n");
printf("3.选项23\n");
printf("4.返回\n");
char choice2=getch();
if(choice2=='4') break;
switch(choice2)
{
case '1':menu1();break;
case '2':menu2();break;
case '3':menu3();break;
}
}
return;
}
void menu3()
{
while(1)
{
system("clear");
printf("**菜单**\n");
printf("1.选项31\n");
printf("2.选项32\n");
printf("3.选项23\n");
printf("4.返回\n");
char choice3=getch();
if(choice3=='4') break;
switch(choice3)
{
case '1':menu1();break;
case '2':menu2();break;
case '3':menu3();break;
}
}
return;
}
void menu()
{
while(1)
{
system("clear");
printf("**菜单**\n");
printf("1.选项1\n");
printf("2.选项2\n");
printf("3.选项3\n");
printf("4.退出\n");
char choice=getch();
if(choice=='4') break;
switch(choice)
{
case '1':menu1();break;
case '2':menu2();break;
case '3':menu3();break;
}
}
return;
}
int main()
{
menu();
return 0;
}