调用主菜单显示子菜单 [英] Calling main menu is displaying sub menu

查看:97
本文介绍了调用主菜单显示子菜单的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在做一个飞机座位预订系统。这里我有一个chooseflight()的主菜单和printmenu()的子菜单。每当我从printmenu的选项中按f时,我应该返回主菜单。但是我不能。请帮助我!



  int  main()
{
chooseflight();
fflush(stdin);
return 0 ;
}

void chooseflight( void
{
char selectflight;
printf( a)航班102 b)航班311 c)航班444 d)航班519 e)退出程序\\\
);
scanf( %c,& selectflight);
switch (selectflight)
{
case ' a'
puts( < span class =code-string>欢迎来到航班102服务
);
while 1 ){
printmenu102();
}
break ;
case ' b'
puts( 欢迎来到311航班);
while 1 ){
printmenu311();
break ;
}
case ' c '
puts( 欢迎来到444航班服务);
while 1 ){
printmenu444();
}
break ;
case ' d'
puts( 欢迎来到航班519服务);
while 1 ){
printmenu519();
}
break ;
case ' e'
Quitprogram();
break ;
}
}

void printmenu102()
{
char lablename;

printf( a)显示空座位数b)显示空座位列表c )按字母顺序显示座位列表d)将乘客分配给座位e)删除座位分配f)Quittotopmenu \ n);

scanf( %c,& lablename);
switch (lablename)
{
case ' a'
Noofemptyseats102();
break ;
case ' b'
Listofemptyseats102();
break ;
case ' c'
Alphabeticallistofseats102();
break ;
case ' d'
Assingseats102();
break ;
case ' e'
Deleteseats102();
break ;
case ' f'
Quittotopmenu();
break ;
}
}

void Quitprogram( void
{
退出(EXIT_FAILURE);
}

void Quittotopmenu( void
{
chooseflight();
}





我的输出是:

a)102航班b)311航班c)航班444 d)航班519 e)退出计划



a



欢迎乘坐102航班



a)显示空座位数b)显示空座位列表c)按字母顺序显示座位列表d)将乘客分配给座位e)删除座位分配f)Quittotopmenu



a)显示空座位数b)显示空座位列表c)按字母顺序显示座位列表d)将乘客分配给座位e)删除座位分配f)Quittotopmenu < br $>


f



a)航班102 b)航班311 c)航班444 d)航班519 e)Quitprogram



a)显示空座位数b)显示空座位列表c)按字母顺序显示座位列表d)将乘客分配给座位e)删除座位分配f) Quittotopmenu

解决方案





scanf()statem之后主菜单&子菜单,放置 getchar(); fflush(stdin); 。然后,您的代码将根据您的要求完美地运行。


i am doing an airplain seat booking system. Here I have a main menu of chooseflight() and submenu of printmenu(). Whenever I press 'f' from printmenu's options I should return to mainmenu. But I cannot. Please help me!

int main()
{
    chooseflight();
    fflush(stdin);
    return 0;
}

void chooseflight(void)
{
    char selectflight;
    printf("a) Flight 102 b) Flight 311 c) Flight 444 d) Flight 519 e)Quitprogram\n");
        scanf("%c",&selectflight);
        switch(selectflight)
        {
            case 'a':
             puts("Welcome to flight 102 service");
             while(1){
             printmenu102();
             }
             break;
             case 'b':
             puts("Welcome to flight 311 service");
             while(1){
             printmenu311();
             break;
             }
             case 'c':
             puts("Welcome to flight 444 service");
             while(1){
             printmenu444();
             }
             break;
             case 'd':
             puts("Welcome to flight 519 service");
             while(1){
             printmenu519();
             }
             break;
             case 'e':
             Quitprogram();
             break;
        }
}

void printmenu102()
{
        char lablename;

    printf("a) Show number of empty seats b) Show list of empty seats c)Show alphabetical list of seats d) Assign a passenger toa seat e)Delete a seat assignment f) Quittotopmenu\n");

    scanf("%c",&lablename);
    switch(lablename)
    {
        case 'a':
            Noofemptyseats102();
            break;
            case 'b':
            Listofemptyseats102();
            break;
            case 'c':
            Alphabeticallistofseats102();
            break;
            case 'd':
            Assingseats102();
            break;
            case 'e':
            Deleteseats102();
            break;
            case 'f':
            Quittotopmenu();
            break;
    }
}

void Quitprogram(void)
 {
 exit(EXIT_FAILURE);
 }

 void Quittotopmenu(void)
 {
chooseflight();
 }



My output is:
a) Flight 102 b) Flight 311 c) Flight 444 d) Flight 519 e)Quitprogram

a

Welcome to flight 102 service

a) Show number of empty seats b) Show list of empty seats c)Show alphabetical list of seats d) Assign a passenger toa seat e)Delete a seat assignment f) Quittotopmenu

a) Show number of empty seats b) Show list of empty seats c)Show alphabetical list of seats d) Assign a passenger toa seat e)Delete a seat assignment f) Quittotopmenu

f

a) Flight 102 b) Flight 311 c) Flight 444 d) Flight 519 e)Quitprogram

a) Show number of empty seats b) Show list of empty seats c)Show alphabetical list of seats d) Assign a passenger toa seat e)Delete a seat assignment f) Quittotopmenu

解决方案

Hi,

After scanf() statement in main menu & submenu, place getchar(); or fflush(stdin);. Then your code will work perfectly as per your requirement.


这篇关于调用主菜单显示子菜单的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆