I am gonna start off saying that I am new to C++, and I have little programming knowledge (just Q Basic, and it has been a while since I have used that), and I need help on an assignment in my C++ class.

We have to use a case function to collect information for an order and display the total, but I have no clue how to get the case to work at all. I am sure the solution is simple, but as I have said I really do not know much about what I am doing.

And... here is the code:

double S=2.50;
double C=1.00;
double B=2.00;
double R=1.00;
double L=1.50;
double &T;

int menu();
int choices();
int main()
{
    menu();
    choices();
    system ("pause");
    return 0;

}
int choices()
{
    for (n=1, n++)
        {
         do
           {
              case 'S'
              case 's':
                   T=T+S;
                   break;
              case 'C'
              case 'c':
                   T=T+C;
              case 'B'
              case 'b':
                   T=T+B;
                   break;
              case 'R'
              case 'r':
                   T=T+R;
                   break;
              case 'L'
              case 'l':
                   T=T+L;
                   break;
              case 'X'
              case 'x'
                   T=0;
                   cout << "The Order Has Been Canceled. \n"
                   break;
           }                                 
         }
}

I already have the int menu() function working fine, it is the case stuff I am struggling with.

Recommended Answers

All 2 Replies

I am gonna start off saying that I am new to C++, and I have little programming knowledge (just Q Basic, and it has been a while since I have used that), and I need help on an assignment in my C++ class.

We have to use a case function to collect information for an order and display the total, but I have no clue how to get the case to work at all. I am sure the solution is simple, but as I have said I really do not know much about what I am doing.

And... here is the code:

double S=2.50;
double C=1.00;
double B=2.00;
double R=1.00;
double L=1.50;
double &T;

int menu();
int choices();
int main()
{
    menu();
    choices();
    system ("pause");
    return 0;

}
int choices()
{
    for (n=1, n++)
        {
         do
           {
              case 'S'
              case 's':
                   T=T+S;
                   break;
              case 'C'
              case 'c':
                   T=T+C;
              case 'B'
              case 'b':
                   T=T+B;
                   break;
              case 'R'
              case 'r':
                   T=T+R;
                   break;
              case 'L'
              case 'l':
                   T=T+L;
                   break;
              case 'X'
              case 'x'
                   T=0;
                   cout << "The Order Has Been Canceled. \n"
                   break;
           }                                 
         }
}

I already have the int menu() function working fine, it is the case stuff I am struggling with.

I don't understand your for loop (which is also syntactically erronous) , or the do loop. Just get rid of them for now, and implement them later if need be.

Hmm you are using the switch syntax wrong...try this:

switch(tolower(choice))
{              case 's':
                   T=T+S;
                   break;
              case 'c':
                   T=T+C;
              case 'b':
                   T=T+B;
                   break;
              case 'r':
                   T=T+R;
                   break;
              case 'l':
                   T=T+L;
                   break;
              case 'x'
                   T=0;
                   cout << "The Order Has Been Canceled. \n"
                  break;
              default:
                   cout << "Invalid choice";
                   break;
}

Also, you should either be passing choice an argument, or have a cin input a char to use in the switch statement. Perhaps have menu() return a char, and pass it to choices for testing. Here's what I mean :

#include <iostream>
using std::cin;
using std::cout;
double S=2.50;
double C=1.00;
double B=2.00;
double R=1.00;
double L = 1.50;
double T(0);

char Menu();
void Choices(char);
int main()
{
     Choices(Menu());
     return 0;
}

char Menu()
{
     char cChoice(0);
	 cout << "Menu:\n\nA)Do Something\nB)Do Something\nC)Quit\n\nChoice:";
     do { 
     cin.clear();
     cin.ignore(cin.rdbuf()->in_avail());
     cin >> cChoice;
	 } while (!cin.fail() && cin.rdbuf()->in_avail() > 1);
    //just makes sure you didn't screw up the input buffer with some crappy input
     return cChoice;
}

void Choices(char choice)
{
switch(tolower(choice))
{              case 's':
                   T=T+S;
                   break;
              case 'c':
                   T=T+C;
              case 'b':
                   T=T+B;
                   break;
              case 'r':
                   T=T+R;
                   break;
              case 'l':
                   T=T+L;
                   break;
			  case 'x':
                   T=0;
                   cout << "The Order Has Been Canceled. \n";
                  break;
              default:
                   cout << "Invalid choice";
                    break;
     }
}

Don't expect this to compile; I didn't test it. But try and learn from it, as you had alot of syntax errors!

Thanks. I finally got it figured out and working right... somehow.

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.