user5429188
user5429188

Reputation:

C++ Food Menu (using do while loop )

I'm having trouble running this program: I'm trying to have the user input their choices on the menu (A,B,C,D or E), if they select the yes option. If not, then it goes straight to calculation of the total sales price. But whenever I select yes, it seems to repeat the display menu and does not show the choices. Please help I'm fairly new to 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');

} 

Upvotes: 1

Views: 21399

Answers (2)

user3119898
user3119898

Reputation: 27

In your do while you forget to take in your choice. It would be simpler to do this.

#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;

Then you would output what your menu and ask if there is any additional orders. And take in there answer input.

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;

Upvotes: 0

Victor Luna
Victor Luna

Reputation: 1814

Variable choice should be a character and you have to add cin to receive the input for 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');

} 

Upvotes: 1

Related Questions