C++ 从另一个菜单返回菜单?
我创建了一个菜单来调用不同的程序。我的第五个程序里面还有一个菜单,可以执行不同的功能 我想知道的是如何允许用户退出程序5并返回原始主菜单。看来我应该知道这个 下面是我的代码示例: 主菜单:C++ 从另一个菜单返回菜单?,c++,C++,我创建了一个菜单来调用不同的程序。我的第五个程序里面还有一个菜单,可以执行不同的功能 我想知道的是如何允许用户退出程序5并返回原始主菜单。看来我应该知道这个 下面是我的代码示例: 主菜单: int main() { while (true) { system("cls"); int option = menuOption(); switch (option) { case 1: Program1(); break; case 2: Program
int main() {
while (true)
{
system("cls");
int option = menuOption();
switch (option)
{
case 1: Program1(); break;
case 2: Program2(); break;
case 3: Program3(); break;
case 4: Program4(); break;
case 5: Program5(); break;
default: return 0;
}
system("pause");
}
return 0;
}
程序5菜单:
void Program5() {
int score, selection;
string player;
while (true)
{
system("cls");
cout << "\n\t Menu\n\t==========\n";
cout << "1. Add a player and score\n";
cout << "2. Show top 10 players & scores\n";
cout << "3. Search for a player\n";
cout << "4. Remove a player\n";
cout << "5. Exit to main menu\n";
cout << "\t==========\n";
cout << "Option: \n";
cin >> selection;
cout << endl;
switch (selection)
{
case 1:
//Doesn't matter
case 2:
//Doesn't matter
case 3:
//Doesn't matter
case 4:
//Doesn't matter
case 5:
return;
break;
default: exit(1);
}
system("pause");
}
}
void程序5(){
int评分,选择;
弦乐演奏者;
while(true)
{
系统(“cls”);
cout通过返回,可以返回main。例如,以下代码:
#include <iostream>
using namespace std;
void Program1(){
}
void Program2(){
}
void Program3(){
}
void Program4(){
}
void Program5(){
int score, selection;
string player;
while (true)
{
system("cls");
cout << "\n\t Menu\n\t==========\n";
cout << "1. Add a player and score\n";
cout << "2. Show top 10 players & scores\n";
cout << "3. Search for a player\n";
cout << "4. Remove a player\n";
cout << "5. Exit to main menu\n";
cout << "\t==========\n";
cout << "Option: \n";
cin >> selection;
cout << endl;
switch (selection)
{
case 1:
//Doesn't matter
case 2:
//Doesn't matter
case 3:
//Doesn't matter
case 4:
//Doesn't matter
case 5:
return;
break;
default: exit(1);
}
system("pause");
}
}
int main(){
while(true){
cout << "In main():\n";
int option;
cin >> option;
switch (option)
{
case 1: Program1(); break;
case 2: Program2(); break;
case 3: Program3(); break;
case 4: Program4(); break;
case 5: Program5(); break;
default: return 0;
}
}
}
您应该删除系统(“暂停”);
语句和默认值:退出(1);
语句。您不想退出程序。
之后,根据您的代码,它应该返回到main
,并执行另一次while循环迭代,询问菜单选项。对于初学者,从main
和Program5
函数中删除那些系统(暂停)
调用。然后删除该退出(1)程序5
函数中的语句。之后代码应该可以工作。@selbie只是好奇。一般来说,没有默认值不是很明智吗?@sethFrias您不应该退出(1)如果用户的选择无效,而是通知他所做的选择无效,让他尝试again@sethFrias-对于是否需要default
case语句或是最佳实践,没有硬性规定。这完全取决于您希望默认体验或代码路径是什么。@selbie啊,我明白了。另外,remov选择选项5后,暂停仍然不会重定向到主菜单。您的意思有点困惑。因此,它返回到主菜单,但不显示菜单?替换“主菜单中”使用菜单。我没有在主菜单中显示菜单,因此它不会显示。@sethFrias。当您从函数返回时,执行从调用函数的位置开始。因此,当您从程序5返回时,它会返回到开关盒的情况5。它会断开然后继续while循环
In main():
5
Menu
==========
1. Add a player and score
2. Show top 10 players & scores
3. Search for a player
4. Remove a player
5. Exit to main menu
==========
Option:
5
In main():