需要帮助主菜单C++

Need help main menu C++

本文关键字:菜单 C++ 帮助      更新时间:2023-10-16

所以我有一个有点像测验的程序。主菜单应该查看他们是否想玩,然后他们是否想玩什么类型的测验。但是,它只是不断循环或只是结束程序。我认为这可能与 if 语句有关。

void main_menu()
{
cout << "--------------------(1)Start Quiz------------------n";
cout << "-----------------------(2)Quit---------------------n";
cin >> c;
if (c == 1)
{
cout << "--------------------(1)Riddles------------------------n";
cout << "--------------------(2)Math IQ------------------------n";
cout << "----------------------(3)Quit-------------------------n";
cin >> o;
if(o == 1)
{
while (o == 1)
{
srand(time(NULL));
main_menu();
system("CLS");
random = rand() % 11 + 1;
switch (random)
{
case 1:
void QuestionI7();
void QuestionI10();
void QuestionI2();
void QuestionI5();
void QuestionI1();
void QuestionI9();
void QuestionI8();
void QuestionI15();
void QuestionI13();
void QuestionI14();
break;
case 2:
void QuestionI4();
void QuestionI5();
void QuestionI3();
void QuestionI10();
void QuestionI7();
void QuestionI2();
void QuestionI12();
void QuestionI1();
void QuestionI8();
void QuestionI11();
break;
case 3:
void QuestionI6();
void QuestionI7();
void QuestionI15();
void QuestionI3();
void QuestionI1();
void QuestionI9();
void QuestionI4();
void QuestionI11();
void QuestionI12();
void QuestionI8();
break;
case 4:
void QuestionI6();
void QuestionI11();
void QuestionI1();
void QuestionI8();
void QuestionI4();
void QuestionI12();
void QuestionI7();
void QuestionI9();
void QuestionI3();
void QuestionI5();
break;
case 5:
void QuestionI8();
void QuestionI4();
void QuestionI15();
void QuestionI5();
void QuestionI2();
void QuestionI7();
void QuestionI13();
void QuestionI10();
void QuestionI3();
void QuestionI6();
break;
case 6:
void QuestionI6();
void QuestionI8();
void QuestionI10();
void QuestionI1();
void QuestionI12();
void QuestionI9();
void QuestionI5();
void QuestionI11();
void QuestionI13();
void QuestionI2();
break;
case 7:
void QuestionI6();
void QuestionI7();
void QuestionI8();
void QuestionI9();
void QuestionI10();
void QuestionI11();
void QuestionI12();
void QuestionI13();
void QuestionI14();
void QuestionI15();
break;
case 8:
void QuestionI15();
void QuestionI14();
void QuestionI13();
void QuestionI12();
void QuestionI11();
void QuestionI10();
void QuestionI9();
void QuestionI1();
void QuestionI2();
void QuestionI3();
break;
case 9:
void QuestionI9();
void QuestionI12();
void QuestionI7();
void QuestionI4();
void QuestionI15();
void QuestionI14();
void QuestionI5();
void QuestionI1();
void QuestionI6();
void QuestionI13();
break;
case 10:
void QuestionI7();
void QuestionI5();
void QuestionI10();
void QuestionI9();
void QuestionI2();
void QuestionI8();
void QuestionI11();
void QuestionI6();
void QuestionI12();
void QuestionI13();
break;
}
std::cout << "Your score is: " << s * 10 << "%.n";
if(o == 2)
while (o == 2)
{
srand(time(NULL));
main_menu();
system("CLS");
random = rand() % 11 + 1;
switch (random)
{
case 1:
void QuestionI7();
void QuestionI10();
void QuestionI2();
void QuestionI5();
void QuestionI1();
void QuestionI9();
void QuestionI8();
void QuestionI15();
void QuestionI13();
void QuestionI14();
break;
case 2:
void QuestionI4();
void QuestionI5();
void QuestionI3();
void QuestionI10();
void QuestionI7();
void QuestionI2();
void QuestionI12();
void QuestionI1();
void QuestionI8();
void QuestionI11();
break;
case 3:
void QuestionI6();
void QuestionI7();
void QuestionI15();
void QuestionI3();
void QuestionI1();
void QuestionI9();
void QuestionI4();
void QuestionI11();
void QuestionI12();
void QuestionI8();
break;
case 4:
void QuestionI6();
void QuestionI11();
void QuestionI1();
void QuestionI8();
void QuestionI4();
void QuestionI12();
void QuestionI7();
void QuestionI9();
void QuestionI3();
void QuestionI5();
break;
case 5:
void QuestionI8();
void QuestionI4();
void QuestionI15();
void QuestionI5();
void QuestionI2();
void QuestionI7();
void QuestionI13();
void QuestionI10();
void QuestionI3();
void QuestionI6();
break;
case 6:
void QuestionI6();
void QuestionI8();
void QuestionI10();
void QuestionI1();
void QuestionI12();
void QuestionI9();
void QuestionI5();
void QuestionI11();
void QuestionI13();
void QuestionI2();
break;
case 7:
void QuestionI6();
void QuestionI7();
void QuestionI8();
void QuestionI9();
void QuestionI10();
void QuestionI11();
void QuestionI12();
void QuestionI13();
void QuestionI14();
void QuestionI15();
break;
case 8:
void QuestionI15();
void QuestionI14();
void QuestionI13();
void QuestionI12();
void QuestionI11();
void QuestionI10();
void QuestionI9();
void QuestionI1();
void QuestionI2();
void QuestionI3();
break;
case 9:
void QuestionI9();
void QuestionI12();
void QuestionI7();
void QuestionI4();
void QuestionI15();
void QuestionI14();
void QuestionI5();
void QuestionI1();
void QuestionI6();
void QuestionI13();
break;
case 10:
void QuestionI7();
void QuestionI5();
void QuestionI10();
void QuestionI9();
void QuestionI2();
void QuestionI8();
void QuestionI11();
void QuestionI6();
void QuestionI12();
void QuestionI13();
break;
}
std::cout << "Your score is: " << s * 10 << "%.n";
}
}
}
if (o == 3)
{
ifstream input("High_Score.txt");
input >> high_score;
ofstream output("High_Score.txt");
if (s * 10 > high_score)
{
cout << "You have a high score!!!!!n";
output << s * 10;
}
else
{
output << high_score;
}
cout << "See you next time!n";
system("pause");
exit(EXIT_SUCCESS);
}
}
if (c == 2)
{
ifstream input("High_Score.txt");
input >> high_score;
ofstream output("High_Score.txt");
if (s * 10 > high_score)
{
cout << "You have a high score!!!!!n";
output << s * 10;
}
else
{
output << high_score;
}
cout << "See you next time!n";
system("pause");
exit(EXIT_SUCCESS);
}
}

任何帮助都会很有用。提前谢谢。

由于 while 循环的条件,它将保持循环。它检查 o 是否是指定的数字,但它不会在 while 循环中发生变化,因此它将永远循环。修复它的选项是: 1. 使用"break"语句停止while循环并退出它。请注意,使用它并不总是安全的,至少在旧版本的 c++ 和 c 中是这样。你会发现人们不喜欢在循环中使用它。 2. 使用布尔值或开头设置为 true 且可在循环内更改的数字。