The code is pretty easy to understand what I am doing. You basically pick a number 1-4 and it will do either addition, subtraction, multiplication, or division. What I need it to do is after they do a problem it loops back and lets them do it again, until they enter 5 to end the program.

Thanks.

Here is my code

``````#include <iostream>
#include <cstdlib>
#include <iomanip>
#include <ctime>

using namespace std;

int main ()

{
srand((unsigned)time(0));
int multiply1, multiply2, div1, div2;
int choice, input;
sub1 = (rand()%500)+1;
sub2 = (rand()%98)+1;
multiply1 = (rand()%98)+1;
multiply2 = (rand()%8)+1;
div1 = (rand()%500)+1;
div2 = (rand()%8)+1;
int multiplyAnswer = multiply1 * multiply2;
int divAnswer = div1 / div2;

//Display the menu and get the user's choice
cout << "         Geometry Calculator \n\n";
cout << "2. Subtraction\n";
cout << "3. Multiplication\n";
cout << "4. Division\n";
cout << "5. Quit\n";
cout << "\n";

cout <<"Enter your choice (1-5): ";
cin >> choice;
cout << "\n";

if (choice==1)
{
cout << setw (6) << add1 << endl;
cout << "+ ";
cout << setw (4) << add2 << endl;
cout << "------";
cout << "\n";
cin >> input;
cout << "\n";
if
cout << "Congratulations\n";
else
cout << "\n";
return 0;
}

else if (choice==2)
{
cout << setw (6) << sub1 << endl;
cout << "- ";
cout << setw (4) << sub2 << endl;
cout << "------";
cout << "\n";
cin >> input;
cout << "\n";
if
cout << "Congratulations\n";
else
cout << "\n";
return 0;}

else if (choice==3)
{
cout << setw (6) << multiply1 << endl;
cout << "* ";
cout << setw (4) << multiply2 << endl;
cout << "------";
cout << "\n";
cin >> input;
cout << "\n";
if
cout << "Congratulations\n";
else
cout << "\n";
return 0;}

else if (choice==4)
{
cout << setw (6) << div1 << endl;
cout << "/ ";
cout << setw (4) << div2 << endl;
cout << "------";
cout << "\n";
cin >> input;
cout << "\n";
if
cout << "Congratulations\n";
else
cout << "\n";
return 0;}

else if (choice==5)
{cout << "Thanks for playing\n";}

else
{cout << "You can only select options 1-5, run the program again and select a option 1-5\n";}

return 0;

}``````

## All 16 Replies

Simply..

``````//...
char rep='n';
//display the menu and get user's choice
while(tolower(rep)=='n')
{
cout<<"repeat? [y/n] : ";
cin>>rep;
}
return 0; //bye..``````
``````while (choice!=5)
{
}
``````

Remember to Intialize Choice With any Number without 5

Simply..

``````//...
char rep='n';
//display the menu and get user's choice
while(tolower(rep)=='n')
{
cout<<"repeat? [y/n] : ";
cin>>rep;
}
return 0; //bye..``````

Thanks for the help. Would I put that before the else if part of the code? Also the char rep='n'; needs to go at the top where I clarify everything. Also what would I do if I wanted it to either be a capital or lower case y or n?

Thanks.

``````while (choice!=5)
{

}``````

Remember to Intialize Choice With any Number without 5

while (choice!=5)
{

}

Remember to Intialize Choice With any Number without 5

What?

``````#include <iostream>

#include <cstdlib>

#include <iomanip>

#include <ctime>

using namespace std;

int main ()

{

srand((unsigned)time(0));

int multiply1, multiply2, div1, div2;

int choice=0, input;

sub1 = (rand()%500)+1;

sub2 = (rand()%98)+1;

multiply1 = (rand()%98)+1;

multiply2 = (rand()%8)+1;

div1 = (rand()%500)+1;

div2 = (rand()%8)+1;

int multiplyAnswer = multiply1 * multiply2;

int divAnswer = div1 / div2;

//Display the menu and get the user's choice

while(choice!=5)
{
cout << " Geometry Calculator \n\n";

cout << "2. Subtraction\n";

cout << "3. Multiplication\n";

cout << "4. Division\n";

cout << "5. Quit\n";

cout << "\n";

cout <<"Enter your choice (1-5): ";

cin >> choice;

cout << "\n";

if (choice==1)

{

cout << setw (6) << add1 << endl;

cout << "+ ";

cout << setw (4) << add2 << endl;

cout << "------";

cout << "\n";

cin >> input;

cout << "\n";

if

cout << "Congratulations\n";

else

cout << "\n";

return 0;

}

else if (choice==2)

{

cout << setw (6) << sub1 << endl;

cout << "- ";

cout << setw (4) << sub2 << endl;

cout << "------";

cout << "\n";

cin >> input;

cout << "\n";

if

cout << "Congratulations\n";

else

cout << "\n";

return 0;}

else if (choice==3)

{

cout << setw (6) << multiply1 << endl;

cout << "* ";

cout << setw (4) << multiply2 << endl;

cout << "------";

cout << "\n";

cin >> input;

cout << "\n";

if

cout << "Congratulations\n";

else

cout << "\n";

return 0;}

else if (choice==4)

{

cout << setw (6) << div1 << endl;

cout << "/ ";

cout << setw (4) << div2 << endl;

cout << "------";

cout << "\n";

cin >> input;

cout << "\n";

if

cout << "Congratulations\n";

else

cout << "\n";

return 0;}

else if (choice==5)

{cout << "Thanks for playing\n";}

else

{cout << "You can only select options 1-5, run the program again and select a option 1-5\n";}

}

return 0;

}``````

I was doing a similair problem, and with some help from people on here found that using a do-while loop with a switch instead of four if statements worked best. Check out the last page for some pointers...

``````#include <iostream>

#include <cstdlib>

#include <iomanip>

#include <ctime>

using namespace std;

int main ()

{

srand((unsigned)time(0));

int multiply1, multiply2, div1, div2;

int choice=0, input;

sub1 = (rand()%500)+1;

sub2 = (rand()%98)+1;

multiply1 = (rand()%98)+1;

multiply2 = (rand()%8)+1;

div1 = (rand()%500)+1;

div2 = (rand()%8)+1;

int multiplyAnswer = multiply1 * multiply2;

int divAnswer = div1 / div2;

//Display the menu and get the user's choice

while(choice!=5)
{
cout << " Geometry Calculator \n\n";

cout << "2. Subtraction\n";

cout << "3. Multiplication\n";

cout << "4. Division\n";

cout << "5. Quit\n";

cout << "\n";

cout <<"Enter your choice (1-5): ";

cin >> choice;

cout << "\n";

if (choice==1)

{

cout << setw (6) << add1 << endl;

cout << "+ ";

cout << setw (4) << add2 << endl;

cout << "------";

cout << "\n";

cin >> input;

cout << "\n";

if

cout << "Congratulations\n";

else

cout << "\n";

return 0;

}

else if (choice==2)

{

cout << setw (6) << sub1 << endl;

cout << "- ";

cout << setw (4) << sub2 << endl;

cout << "------";

cout << "\n";

cin >> input;

cout << "\n";

if

cout << "Congratulations\n";

else

cout << "\n";

return 0;}

else if (choice==3)

{

cout << setw (6) << multiply1 << endl;

cout << "* ";

cout << setw (4) << multiply2 << endl;

cout << "------";

cout << "\n";

cin >> input;

cout << "\n";

if

cout << "Congratulations\n";

else

cout << "\n";

return 0;}

else if (choice==4)

{

cout << setw (6) << div1 << endl;

cout << "/ ";

cout << setw (4) << div2 << endl;

cout << "------";

cout << "\n";

cin >> input;

cout << "\n";

if

cout << "Congratulations\n";

else

cout << "\n";

return 0;}

else if (choice==5)

{cout << "Thanks for playing\n";}

else

{cout << "You can only select options 1-5, run the program again and select a option 1-5\n";}

}

return 0;

}``````

I tried to see what you did and tried it but it did not work.

Ok I just can not get the loop to work. I tried what was in the second post but it does not work. Please help. I am stuck on the code I already posted.

Thanks.

I dont know if you already figure it out, but here it is...

``````.../ your code
int multiplyAnswer = multiply1 * multiply2;
int divAnswer = div1 / div2;

choice=6; // this is what I added

while (choice!=5) { // the loop
``````

check the program, if you notice everytime the user makes a choice, at the end you terminate the program, what you need to do is to initialize "choice =6" and delete "return 0" for everyoption...

check this out:

``````../ your code showing the menu
if (choice==1)
{
cout << setw (6) << add1 << endl;
cout << "+ ";
cout << setw (4) << add2 << endl;
cout << "------";
cout << "\n";
cin >> input;
cout << "\n";
if
cout << "Congratulations\n";
else
cout << "\n";
choice=6;
}

else if (choice==2)
{
cout << setw (6) << sub1 << endl;
cout << "- ";
cout << setw (4) << sub2 << endl;
cout << "------";
cout << "\n";
cin >> input;
cout << "\n";
if
cout << "Congratulations\n";
else
cout << "\n";
choice=6;   }

else if (choice==3)
{
cout << setw (6) << multiply1 << endl;
cout << "* ";
cout << setw (4) << multiply2 << endl;
cout << "------";
cout << "\n";
cin >> input;
cout << "\n";
if
cout << "Congratulations\n";
else
cout << "\n";
choice=6;   }

else if (choice==4)
{
cout << setw (6) << div1 << endl;
cout << "/ ";
cout << setw (4) << div2 << endl;
cout << "------";
cout << "\n";
cin >> input;
cout << "\n";
if
cout << "Congratulations\n";
else
cout << "\n";
choice=6;   }

else if (choice==5)
{cout << "Thanks for playing\n";}

else
{cout << "You can only select options 1-5, run the program again and select a option 1-5\n";}

} // end of while
``````

I dont know if you already figure it out, but here it is...

``````int addAnswer = add1 + add2;
int multiplyAnswer = multiply1 * multiply2;
int divAnswer = div1 / div2;

choice=6; // this is what I added

while (choice!=5) { // the loop
``````

check the program, if you notice everytime the user makes a choice, at the end you terminate the program, what you need to do is to initialize "choice =6" and delete "return 0" for everyoption...

check this out:

``````if (choice==1)
{
cout << setw (6) << add1 << endl;
cout << "+ ";
cout << setw (4) << add2 << endl;
cout << "------";
cout << "\n";
cin >> input;
cout << "\n";
if
cout << "Congratulations\n";
else
cout << "\n";
choice=6;
}

else if (choice==2)
{
cout << setw (6) << sub1 << endl;
cout << "- ";
cout << setw (4) << sub2 << endl;
cout << "------";
cout << "\n";
cin >> input;
cout << "\n";
if
cout << "Congratulations\n";
else
cout << "\n";
choice=6;   }

else if (choice==3)
{
cout << setw (6) << multiply1 << endl;
cout << "* ";
cout << setw (4) << multiply2 << endl;
cout << "------";
cout << "\n";
cin >> input;
cout << "\n";
if
cout << "Congratulations\n";
else
cout << "\n";
choice=6;   }

else if (choice==4)
{
cout << setw (6) << div1 << endl;
cout << "/ ";
cout << setw (4) << div2 << endl;
cout << "------";
cout << "\n";
cin >> input;
cout << "\n";
if
cout << "Congratulations\n";
else
cout << "\n";
choice=6;   }

else if (choice==5)
{cout << "Thanks for playing\n";}

else
{cout << "You can only select options 1-5, run the program again and select a option 1-5\n";}

} // end of while
``````

end quote.

Ok I tried to do this and add the choice=6 and deleted the return 0 and nothing.

``````#include <iostream>
#include <cstdlib>
#include <iomanip>
#include <ctime>

using namespace std;

int main ()

{
srand((unsigned)time(0));
int multiply1, multiply2, div1, div2;
int choice, input;
sub1 = (rand()%500)+1, sub2 = (rand()%98)+1;
multiply1 = (rand()%98)+1, multiply2 = (rand()%8)+1;
div1 = (rand()%500)+1, div2 = (rand()%8)+1;

//Display the menu and get the user's choice

cout << "         Geometry Calculator \n\n";
cout << "2. Subtraction\n";
cout << "3. Multiplication\n";
cout << "4. Division\n";
cout << "5. Quit\n";
cout << "\n";

cout <<"Enter your choice (1-5): ";
cin >> choice;
cout << "\n";

while (choice!=5)

if (choice==1)
{
cout << setw (6) << add1 << "\n";
cout << "+ ";
cout << setw (4) << add2 << "\n";
cout << "------";
cout << "\n";
cin >> input;
cout << "\n";
if
cout << "Congratulations\n";
else
cout << "\n";
cout << "\n";
choice=6;
}

else if (choice==2)
{
cout << setw (6) << sub1 << "\n";
cout << "- ";
cout << setw (4) << sub2 << "\n";
cout << "------";
cout << "\n";
cin >> input;
cout << "\n";
if
cout << "Congratulations\n";
else
cout << "\n";
cout << "\n";
choice=6; }

else if (choice==3)
{
cout << multiply1;
cout << " * ";
cout << multiply2 << "=";
cin >> input;
cout << "\n";
if
cout << "Congratulations\n";
else
cout << "\n";
cout << "\n";
choice=6; }

else if (choice==4)
{
cout << div1;
cout << "/";
cout << div2 << "=";
cin >> input;
cout << "\n";
if
cout << "Congratulations\n";
else
cout << "\n";
cout << "\n";
choice=6; }

else if (choice==5)
{
cout << "Thanks for playing\n";
cout << "\n";
cout << "\n";
}

else
{cout << "You can only select options 1-5, run the program again and select a option 1-5\n";}

return 0;

}
``````

Ok I got the loop to work now why am I not generating random numbers each time. It just displays the same numbers each time a selection is picked. It will display random numbers when I re run the program but now if I run it again with the loop.

``````#include <iostream>
#include <cstdlib>
#include <iomanip>
#include <ctime>

using namespace std;

int main ()
{
srand((unsigned)time(0));
int multiply1, multiply2, div1, div2;
int choice, input;
sub1 = (rand()%500)+1, sub2 = (rand()%98)+1;
multiply1 = (rand()%98)+1, multiply2 = (rand()%8)+1;
div1 = (rand()%500)+1, div2 = (rand()%8)+1;

do
{	//Display the menu and get the user's choice

cout << "         Math Tutor \n\n";
cout << "2. Subtraction\n";
cout << "3. Multiplication\n";
cout << "4. Division\n";
cout << "5. Quit\n";
cout << "\n";

cout <<"Enter your choice (1-5): ";
cin >> choice;
cout << "\n";

while (choice < 1 || choice > 5)
{
cout << "That is not a valid option\n";
cout <<"Enter your choice (1-5): ";
cin >> choice;
cout << "\n";
}

if (choice==1)
{
cout << setw (6) << add1 << "\n";
cout << "+ ";
cout << setw (4) << add2 << "\n";
cout << "------";
cout << "\n";
cin >> input;
cout << "\n";
if
cout << "Congratulations\n";
else
cout << "\n";
cout << "\n";
}

else if (choice==2)
{
cout << setw (6) << sub1 << "\n";
cout << "- ";
cout << setw (4) << sub2 << "\n";
cout << "------";
cout << "\n";
cin >> input;
cout << "\n";
if
cout << "Congratulations\n";
else
cout << "\n";
cout << "\n";
}

else if (choice==3)
{
cout << multiply1;
cout << " * ";
cout << multiply2 << "=";
cin >> input;
cout << "\n";
if
cout << "Congratulations\n";
else
cout << "\n";
cout << "\n";
}

else if (choice==4)
{
cout << div1;
cout << "/";
cout << div2 << "=";
cin >> input;
cout << "\n";
if
cout << "Congratulations\n";
else
cout << "\n";
cout << "\n";
}

else if (choice==5)
{
cout << "Thanks for playing\n";
cout << "\n";
cout << "\n";
}

} while (choice !=5);

return 0;

}``````

Move the `do {` from line 23/24 in front of the random stuff starting on line 15.

If you were to break each problem type out into a function, you could call it from the `if (choice ==` stuff. The function could then generate the random values for the problem.

This second method would have the added advantage of having everything about the problem all in one place. (The random parameters, the display, the input and the validation.) Also, your code wouldn't be bothering to generate random problems that will never be used.

``````void add()
{

cout << setw (6) << add1 << "\n";
cout << "+ ";
cout << setw (4) << add2 << "\n";
cout << "------";
cout << "\n";
cin >> input;
cout << "\n";
cout << "Congratulations\n";
else
cout << "\n";
cout << "\n";
}``````

Move the `do {` from line 23/24 in front of the random stuff starting on line 15.

If you were to break each problem type out into a function, you could call it from the `if (choice ==` stuff. The function could then generate the random values for the problem.

This second method would have the added advantage of having everything about the problem all in one place. (The random parameters, the display, the input and the validation.) Also, your code wouldn't be bothering to generate random problems that will never be used.

``````void add()
{

cout << setw (6) << add1 << "\n";
cout << "+ ";
cout << setw (4) << add2 << "\n";
cout << "------";
cout << "\n";
cin >> input;
cout << "\n";
cout << "Congratulations\n";
else
cout << "\n";
cout << "\n";
}``````

So would I need to create a function for each problem?

Murtan,

Thanks and problem solved

``````#include <iostream>
#include <cstdlib>
#include <iomanip>
#include <ctime>

using namespace std;

int main ()
{
srand((unsigned)time(0));
int multiply1, multiply2, div1, div2;
int choice, input;
sub1 = (rand()%500)+1, sub2 = (rand()%98)+1;
multiply1 = (rand()%98)+1, multiply2 = (rand()%8)+1;
div1 = (rand()%500)+1, div2 = (rand()%8)+1;

//Display the menu and get the user's choice

cout << "         Math Tutor \n\n";
cout << "2. Subtraction\n";
cout << "3. Multiplication\n";
cout << "4. Division\n";
cout << "5. Quit\n";
cout << "\n";

cout <<"Enter your choice (1-5): ";
cin >> choice;
cout << "\n";

while (choice < 1 || choice > 5)
{
cout << "That is not a valid option\n";
cout <<"Enter your choice (1-5): ";
cin >> choice;
cout << "\n";
}

if (choice==1)
{
cout << setw (6) << add1 << "\n";
cout << "+ ";
cout << setw (4) << add2 << "\n";
cout << "------";
cout << "\n";
cin >> input;
cout << "\n";
if
cout << "Congratulations\n";
else
cout << "\n";
cout << "\n";
}

else if (choice==2)
{
cout << setw (6) << sub1 << "\n";
cout << "- ";
cout << setw (4) << sub2 << "\n";
cout << "------";
cout << "\n";
cin >> input;
cout << "\n";
if
cout << "Congratulations\n";
else
cout << "\n";
cout << "\n";
}

else if (choice==3)
{
cout << multiply1;
cout << " * ";
cout << multiply2 << "=";
cin >> input;
cout << "\n";
if
cout << "Congratulations\n";
else
cout << "\n";
cout << "\n";
}

else if (choice==4)
{
cout << div1;
cout << "/";
cout << div2 << "=";
cin >> input;
cout << "\n";
if
cout << "Congratulations\n";
else
cout << "\n";
cout << "\n";
}

else if (choice==5)
{
cout << "Thanks for playing\n";
cout << "\n";
cout << "\n";
}

} while (choice !=5);

return 0;

}``````

Ok fixed it so it would display the menu again if you do not select a valid option

``````#include <iostream>
#include <cstdlib>
#include <iomanip>
#include <ctime>

using namespace std;

int main ()
{
srand((unsigned)time(0));
int multiply1, multiply2, div1, div2;
int choice, input;
sub1 = (rand()%500)+1, sub2 = (rand()%98)+1;
multiply1 = (rand()%98)+1, multiply2 = (rand()%8)+1;
div1 = (rand()%500)+1, div2 = (rand()%8)+1;

//Display the menu and get the user's choice

cout << "         Math Tutor \n\n";
cout << "2. Subtraction\n";
cout << "3. Multiplication\n";
cout << "4. Division\n";
cout << "5. Quit\n";
cout << "\n";

cout <<"Enter your choice (1-5): ";
cin >> choice;
cout << "\n";

while (choice < 1 || choice > 5)
{
cout << "That is not a valid option\n";
cout << "         Math Tutor \n\n";
cout << "2. Subtraction\n";
cout << "3. Multiplication\n";
cout << "4. Division\n";
cout << "5. Quit\n";
cout << "\n";

cout <<"Enter your choice (1-5): ";
cin >> choice;
cout << "\n";
}

if (choice==1)
{
cout << setw (6) << add1 << "\n";
cout << "+ ";
cout << setw (4) << add2 << "\n";
cout << "------";
cout << "\n";
cin >> input;
cout << "\n";
if
cout << "Congratulations\n";
else
cout << "\n";
cout << "\n";
}

else if (choice==2)
{
cout << setw (6) << sub1 << "\n";
cout << "- ";
cout << setw (4) << sub2 << "\n";
cout << "------";
cout << "\n";
cin >> input;
cout << "\n";
if
cout << "Congratulations\n";
else
cout << "\n";
cout << "\n";
}

else if (choice==3)
{
cout << multiply1;
cout << " * ";
cout << multiply2 << "=";
cin >> input;
cout << "\n";
if
cout << "Congratulations\n";
else
cout << "\n";
cout << "\n";
}

else if (choice==4)
{
cout << div1;
cout << "/";
cout << div2 << "=";
cin >> input;
cout << "\n";
if
cout << "Congratulations\n";
else
cout << "\n";
cout << "\n";
}

else if (choice==5)
{
cout << "Thanks for playing\n";
cout << "\n";
cout << "\n";
}

} while (choice !=5);

return 0;

}``````
Be a part of the DaniWeb community

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