21xrx.com
2024-12-28 13:40:36 Saturday
登录
文章检索 我的文章 写文章
C++ 编写返回上一级菜单的代码
2023-06-28 12:22:29 深夜i     --     --
C++ 返回上一级菜单 代码

C++是一种强大的编程语言,可以用于制作各种类型的应用程序,从简单的命令行程序到复杂的图形用户界面应用程序。在很多应用程序中,用户需要从一个菜单选项中选择一个选项,然后进入另一个菜单选项,然后在完成任务后返回上一级菜单。本文将为您介绍如何使用C++编写返回上一级菜单的代码。

首先,我们需要定义一个菜单,它将显示在控制台中。在C++中,我们可以使用switch语句来实现菜单。下面是一个简单的菜单示例:

#include

using namespace std;

int main()

{

  int choice;

  do

  {

    cout << "MENU" << endl;

    cout << "1. Option 1" << endl;

    cout << "2. Option 2" << endl;

    cout << "3. Option 3" << endl;

    cout << "4. Exit" << endl;

    cin >> choice;

    switch (choice)

    case 1:

      // do something

      break;

    case 2:

      // do something

      break;

    case 3:

      // do something

      break;

    case 4:

      cout << "Exiting Program..." << endl;

      break;

    default:

      cout << "Invalid Choice. Please try again." << endl;

      break;

  } while (choice != 4);

  return 0;

}

在上面的代码中,我们使用了一个do while循环,不断展示菜单并读取用户的选择,直到用户选择退出(选项4)。在switch语句中,我们可以执行与每个选项相关的任务。

现在,我们需要编写代码,以便用户可以返回上一个菜单选项。为了实现这个功能,我们可以使用一个堆栈(stack),每当用户进入一个新的菜单选项时,我们将当前选项的编号推入堆栈中。每当用户选择返回到上一个菜单时,我们将把堆栈从顶部弹出一项,并返回到堆栈所指向的选项。下面是更新后的代码:

#include

#include

using namespace std;

int main()

{

  int choice;

  stack menuStack;

  menuStack.push(0);

  do

  {

    int previousChoice = menuStack.top();

    menuStack.pop();

    if (previousChoice == 0)

      // display main menu

      cout << "MENU" << endl;

      cout << "1. Option 1" << endl;

      cout << "2. Option 2" << endl;

      cout << "3. Option 3" << endl;

      cout << "4. Exit" << endl;

      cin >> choice;

    else if (previousChoice == 1)

      // display option 1 menu

      cout << "OPTION 1 MENU" << endl;

      cout << "1. Sub-Option 1" << endl;

      cout << "2. Sub-Option 2" << endl;

      cout << "3. Return to Main Menu" << endl;

      cin >> choice;

    else if (previousChoice == 2)

      // display option 2 menu

      cout << "OPTION 2 MENU" << endl;

      cout << "1. Sub-Option 1" << endl;

      cout << "2. Sub-Option 2" << endl;

      cout << "3. Return to Main Menu" << endl;

      cin >> choice;

    else if (previousChoice == 3)

      // display option 1 sub-menu

      cout << "OPTION 1

    else if (previousChoice == 4)

     SUB-OPTION 2" << endl;

      cout << "1. Sub-Option 2-1" << endl;

      cout << "2. Sub-Option 2-2" << endl;

      cout << "3. Return to Option 2 Menu" << endl;

      cin >> choice;

    switch (choice)

    {

    case 1:

      menuStack.push(previousChoice);

      menuStack.push(1);

      break;

    case 2:

      menuStack.push(previousChoice);

      menuStack.push(2);

      break;

    case 3:

      if (previousChoice == 1 || previousChoice == 2)

      {

        menuStack.push(previousChoice);

        menuStack.push(0);

      }

      else if(previousChoice == 3 || previousChoice == 4)

      {

        menuStack.push(previousChoice - 2);

      }

      break;

    case 4:

      cout << "Exiting Program..." << endl;

      break;

    default:

      cout << "Invalid Choice. Please try again." << endl;

      break;

    }

  }

  while (choice != 4);

  return 0;

}

我们使用了一个stack ,名为menuStack,以存储当前堆栈状态。menuStack始终包含了用户最近访问的菜单选项的编号。在最初的堆栈中,我们在左侧放置了0项,这表示主菜单。

在我们的do-while循环中,我们可以使用switch语句来根据用户的菜单选择执行相关任务。当用户选择从一个菜单项返回到上一个菜单项时,我们可以使用menuStack.pop()方法从堆栈的顶部弹出一个项。然后,我们可以检查该项的值(表示用户之前访问的菜单的选项),并相应地呈现相关的菜单选项。

总结一下,使用C++编写返回上一级菜单的代码非常简单。您只需要使用stack 并在每次更改选项时将当前选项编号推入堆栈中,然后在用户选择返回上一级菜单时将其弹出即可。这非常适用于深度嵌套的菜单选项,无需再进行复杂而混乱的代码了。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复