C++ 食物菜单(使用 do while 循环)

C++ Food Menu (using do while loop )

我遇到了问题 运行 这个程序:我正在尝试让用户 input 在菜单上进行选择(A​​、B、C、D 或E), 如果他们select 是option。如果没有,则直接计算总销售价格。但是每当我 select 是时,它似乎重复显示菜单并且不显示选项。请帮助我是 c++

的新手
#include <iostream>
#include <iomanip>

using namespace std;

int main()
{

    double a = 5.99, b = 4.99, c = 4.99, d = 5.99, e = 9.99, totalprice;
    const double TAX = 0.13;
    int choice = 0;
    char (answer);

    do
    {

        cout << "\nGood day! Welcome to The Bakery! What would you like today?\n";
        cout << "\nMenu\n                                                        Price"<< endl;
        cout << "A: Earl Gray Tea and Biscuits  -                        $" << a << endl;
        cout << "B: Coffee and a blueberry scone -                       $" << b << endl;
        cout << "C: Espresso and a tea biscuit -                         $" << c << endl;
        cout << "D: Coffee and a Muffin-                                 $" << d << endl;
        cout << "E: The Assorted Tea, Scones, and Biscuits Platter-      $" << e << endl;

        cout << "\nAre there any addtional orders? 'Y' or 'N'\n" << endl;
        cin >> answer;
        if (answer == 'Y' || answer == 'y')

        {   //Display Choice

            cout << "\nYour choice?\n" << endl;
        }


         if (choice == 'A' || choice == 'a')
         {

            cout << "A: Earl Gray Tea and Biscuits" << a << endl;

        }


        if (choice == 'B' || choice == 'b')
        {

            cout << "B: Coffee and a blueberry scone" << b << endl;

        }


      if (choice == 'C' || choice == 'c')
        {

            cout << "A: Earl Gray Tea and Biscuits" << c << endl;

        }


         if (choice == 'D' || choice == 'd')
        {

            cout << "D: Coffee and a Muffin" << d << endl;

        }


        if (choice == 'E' || choice == 'e')
        {

            cout << "E: The Assorted Tea, Scones, and Biscuits Platter" << e << endl;

        }

        else if (answer == 'N' || answer == 'n')
        {
            cin >> totalprice;
            cout << "The final bill for today is ";
        }

        else //Displaying error message
        {
            cout << "Invalid input";
        }

    } while (answer != 'Y' && answer != 'y');

} 

变量choice应该是一个字符,你必须添加cin来接收choice的输入

#include <iostream>
#include <iomanip>

using namespace std;

int main()
{

    double a = 5.99, b = 4.99, c = 4.99, d = 5.99, e = 9.99, totalprice;
    const double TAX = 0.13;
    char choice;
    char answer;

    do
    {

        cout << "\nGood day! Welcome to The Bakery! What would you like today?\n";
        cout << "\nMenu\n                                                        Price"<< endl;
        cout << "A: Earl Gray Tea and Biscuits  -                        $" << a << endl;
        cout << "B: Coffee and a blueberry scone -                       $" << b << endl;
        cout << "C: Espresso and a tea biscuit -                         $" << c << endl;
        cout << "D: Coffee and a Muffin-                                 $" << d << endl;
        cout << "E: The Assorted Tea, Scones, and Biscuits Platter-      $" << e << endl;
cin >> choice;
        cout << "\nAre there any addtional orders? 'Y' or 'N'\n" << endl;
        cin >> answer;
        if (answer == 'Y' || answer == 'y')

        {   //Display Choice

            cout << "\nYour choice?\n" << endl;
        }


         if (choice == 'A' || choice == 'a')
         {

            cout << "A: Earl Gray Tea and Biscuits" << a << endl;

        }


        if (choice == 'B' || choice == 'b')
        {

            cout << "B: Coffee and a blueberry scone" << b << endl;

        }


      if (choice == 'C' || choice == 'c')
        {

            cout << "A: Earl Gray Tea and Biscuits" << c << endl;

        }


         if (choice == 'D' || choice == 'd')
        {

            cout << "D: Coffee and a Muffin" << d << endl;

        }


        if (choice == 'E' || choice == 'e')
        {

            cout << "E: The Assorted Tea, Scones, and Biscuits Platter" << e << endl;

        }

        else if (answer == 'N' || answer == 'n')
        {
            cin >> totalprice;
            cout << "The final bill for today is ";
        }

        else //Displaying error message
        {
            cout << "Invalid input";
        }

    } while (answer != 'Y' && answer != 'y');

} 

在你做的时候忘记了你的选择。这样做会更简单。

#include <iostream>
#include <iomanip>
using namespace std;

int main() {

  double a = 5.99, b = 4.99, c=4.99, d=5.99, e=9.99, totalprice;
  const double tax = 0.13;
  char answer;
  char choice;

然后你会输出你的菜单,然后询问是否有任何额外的订单。并在那里输入答案。

do {
  if(answer == 'Y' || 'y') {
    cout << "Your choice?" << endl;
    cin <<  choice
    if(choice == 'A' || choice == 'a') {
      cout << "A: Earl Gray Tea and Biscuits" << a << endl;
      totalprice = totalprice + a;
    } else if(choice == 'B' || choice == 'b') {
      cout << "B: Coffee and a blueberry scone" << b << endl;
      totalprice = totalprice + b;
    } else if(choice == 'C' || choice == 'c') {
      cout << "C: Espresso and a tea biscuit" << c << endl;
      totalprice = totalprice + c;
    } else if(choice == 'D' || choice == 'd') {
      cout << "D: Coffee and a Muffin " << d << endl;
      totalprice = totalprice + d;
    } else if(choice == 'E' || choice == 'e') {
      cout << "E: The Assorted Tea, Scones, and Biscuits Platter " << e << endl;
      totalprice = totalprice + e;
  }
  cout<< "\Are there any additional orders? Y or N << endl;
  cin << answer;
} while(answer != 'N' || answer !='n');
totalprice = totalprice * tax;
cout << "The final bill for today is $" << totalprice << endl;