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 choices();
int main()
{
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.

## 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 choices();
int main()
{
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);

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

{
char cChoice(0);
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.