DaniWeb IT Discussion Community

DaniWeb IT Discussion Community (http://www.daniweb.com/forums/index.php)
-   C++ (http://www.daniweb.com/forums/forum8.html)
-   -   I Need Help with Cases in C++. (http://www.daniweb.com/forums/thread153879.html)

NinjaDude007 Oct 27th, 2008 8:38 pm
I Need Help with Cases in C++.
 
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.

skatamatic Oct 27th, 2008 9:06 pm
Re: I Need Help with Cases in C++.
 
Quote:

Originally Posted by NinjaDude007 (Post 722844)
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!

NinjaDude007 Oct 28th, 2008 6:52 pm
Re: I Need Help with Cases in C++.
 
Thanks. I finally got it figured out and working right... somehow.


All times are GMT -4. The time now is 4:03 pm.

Forum system based on vBulletin Copyright ©2000 - 2009, Jelsoft Enterprises Ltd.
©2003 - 2009 DaniWeb® LLC