I dont know if you already figure it out, but here it is...
.../ your code
C++ Syntax (Toggle Plain Text)
int addAnswer = add1 + add2; int subAnswer = sub1- sub2; 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 (input == addAnswer) cout << "Congratulations\n"; else cout << "That is incorrect,\nThe correct answer is: " << addAnswer; 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 (input == subAnswer) cout << "Congratulations\n"; else cout << "That is incorrect,\nThe correct answer is: " << subAnswer; 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 (input == multiplyAnswer) cout << "Congratulations\n"; else cout << "That is incorrect,\nThe correct answer is: " << multiplyAnswer; 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 (input == divAnswer) cout << "Congratulations\n"; else cout << "That is incorrect,\nThe correct answer is: " << divAnswer; 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
#include <iostream> #include <cstdlib> #include <iomanip> #include <ctime> using namespace std; int main () { srand((unsigned)time(0)); int add1, add2, sub1, sub2; int multiply1, multiply2, div1, div2; int choice, input; add1 = (rand()%500)+1, add2 = (rand()%500)+1; 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 addAnswer = add1 + add2, subAnswer = sub1- sub2; int multiplyAnswer = multiply1 * multiply2, divAnswer = div1 / div2; //Display the menu and get the user's choice cout << " Geometry Calculator \n\n"; cout << "1. Addition\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 (input == addAnswer) cout << "Congratulations\n"; else cout << "That is incorrect,\nThe correct answer is: " << addAnswer; 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 (input == subAnswer) cout << "Congratulations\n"; else cout << "That is incorrect,\nThe correct answer is: " << subAnswer; cout << "\n"; cout << "\n"; choice=6; } else if (choice==3) { cout << multiply1; cout << " * "; cout << multiply2 << "="; cin >> input; cout << "\n"; if (input == multiplyAnswer) cout << "Congratulations\n"; else cout << "That is incorrect,\nThe correct answer is: " << multiplyAnswer; cout << "\n"; cout << "\n"; choice=6; } else if (choice==4) { cout << div1; cout << "/"; cout << div2 << "="; cin >> input; cout << "\n"; if (input == divAnswer) cout << "Congratulations\n"; else cout << "That is incorrect,\nThe correct answer is: " << divAnswer; 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; }
#include <iostream> #include <cstdlib> #include <iomanip> #include <ctime> using namespace std; int main () { srand((unsigned)time(0)); int add1, add2, sub1, sub2; int multiply1, multiply2, div1, div2; int choice, input; add1 = (rand()%500)+1, add2 = (rand()%500)+1; 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 addAnswer = add1 + add2, subAnswer = sub1- sub2; int multiplyAnswer = multiply1 * multiply2, divAnswer = div1 / div2; do { //Display the menu and get the user's choice cout << " Math Tutor \n\n"; cout << "1. Addition\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"; //Validate the menu selection 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 (input == addAnswer) cout << "Congratulations\n"; else cout << "That is incorrect,\nThe correct answer is: " << addAnswer; 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 (input == subAnswer) cout << "Congratulations\n"; else cout << "That is incorrect,\nThe correct answer is: " << subAnswer; cout << "\n"; cout << "\n"; } else if (choice==3) { cout << multiply1; cout << " * "; cout << multiply2 << "="; cin >> input; cout << "\n"; if (input == multiplyAnswer) cout << "Congratulations\n"; else cout << "That is incorrect,\nThe correct answer is: " << multiplyAnswer; cout << "\n"; cout << "\n"; } else if (choice==4) { cout << div1; cout << "/"; cout << div2 << "="; cin >> input; cout << "\n"; if (input == divAnswer) cout << "Congratulations\n"; else cout << "That is incorrect,\nThe correct answer is: " << divAnswer; cout << "\n"; cout << "\n"; } else if (choice==5) { cout << "Thanks for playing\n"; cout << "\n"; cout << "\n"; } } while (choice !=5); return 0; }
do { from line 23/24 in front of the random stuff starting on line 15.if (choice == stuff. The function could then generate the random values for the problem.
void add() { int add1 = (rand()%500)+1; int add2 = (rand()%500)+1; int addAnswer = add1 + add2; cout << setw (6) << add1 << "\n"; cout << "+ "; cout << setw (4) << add2 << "\n"; cout << "------"; cout << "\n"; cin >> input; cout << "\n"; if (input == addAnswer) cout << "Congratulations\n"; else cout << "That is incorrect,\nThe correct answer is: " << addAnswer; cout << "\n"; cout << "\n"; }
Short answer:
Move thedo {from line 23/24 in front of the random stuff starting on line 15.
Longer answer:
If you were to break each problem type out into a function, you could call it from theif (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.
Sample add method:
c++ Syntax (Toggle Plain Text)
void add() { int add1 = (rand()%500)+1; int add2 = (rand()%500)+1; int addAnswer = add1 + add2; cout << setw (6) << add1 << "\n"; cout << "+ "; cout << setw (4) << add2 << "\n"; cout << "------"; cout << "\n"; cin >> input; cout << "\n"; if (input == addAnswer) cout << "Congratulations\n"; else cout << "That is incorrect,\nThe correct answer is: " << addAnswer; cout << "\n"; cout << "\n"; }
#include <iostream> #include <cstdlib> #include <iomanip> #include <ctime> using namespace std; int main () { srand((unsigned)time(0)); int add1, add2, sub1, sub2; int multiply1, multiply2, div1, div2; int choice, input; do {add1 = (rand()%500)+1, add2 = (rand()%500)+1; 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 addAnswer = add1 + add2, subAnswer = sub1- sub2; int multiplyAnswer = multiply1 * multiply2, divAnswer = div1 / div2; //Display the menu and get the user's choice cout << " Math Tutor \n\n"; cout << "1. Addition\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"; //Validate the menu selection 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 (input == addAnswer) cout << "Congratulations\n"; else cout << "That is incorrect,\nThe correct answer is: " << addAnswer; 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 (input == subAnswer) cout << "Congratulations\n"; else cout << "That is incorrect,\nThe correct answer is: " << subAnswer; cout << "\n"; cout << "\n"; } else if (choice==3) { cout << multiply1; cout << " * "; cout << multiply2 << "="; cin >> input; cout << "\n"; if (input == multiplyAnswer) cout << "Congratulations\n"; else cout << "That is incorrect,\nThe correct answer is: " << multiplyAnswer; cout << "\n"; cout << "\n"; } else if (choice==4) { cout << div1; cout << "/"; cout << div2 << "="; cin >> input; cout << "\n"; if (input == divAnswer) cout << "Congratulations\n"; else cout << "That is incorrect,\nThe correct answer is: " << divAnswer; cout << "\n"; cout << "\n"; } else if (choice==5) { cout << "Thanks for playing\n"; cout << "\n"; cout << "\n"; } } while (choice !=5); return 0; }
#include <iostream> #include <cstdlib> #include <iomanip> #include <ctime> using namespace std; int main () { srand((unsigned)time(0)); int add1, add2, sub1, sub2; int multiply1, multiply2, div1, div2; int choice, input; do {add1 = (rand()%500)+1, add2 = (rand()%500)+1; 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 addAnswer = add1 + add2, subAnswer = sub1- sub2; int multiplyAnswer = multiply1 * multiply2, divAnswer = div1 / div2; //Display the menu and get the user's choice cout << " Math Tutor \n\n"; cout << "1. Addition\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"; //Validate the menu selection while (choice < 1 || choice > 5) { cout << "That is not a valid option\n"; cout <<"Please select again\n\n "; cout << " Math Tutor \n\n"; cout << "1. Addition\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 (input == addAnswer) cout << "Congratulations\n"; else cout << "That is incorrect,\nThe correct answer is: " << addAnswer; 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 (input == subAnswer) cout << "Congratulations\n"; else cout << "That is incorrect,\nThe correct answer is: " << subAnswer; cout << "\n"; cout << "\n"; } else if (choice==3) { cout << multiply1; cout << " * "; cout << multiply2 << "="; cin >> input; cout << "\n"; if (input == multiplyAnswer) cout << "Congratulations\n"; else cout << "That is incorrect,\nThe correct answer is: " << multiplyAnswer; cout << "\n"; cout << "\n"; } else if (choice==4) { cout << div1; cout << "/"; cout << div2 << "="; cin >> input; cout << "\n"; if (input == divAnswer) cout << "Congratulations\n"; else cout << "That is incorrect,\nThe correct answer is: " << divAnswer; cout << "\n"; cout << "\n"; } else if (choice==5) { cout << "Thanks for playing\n"; cout << "\n"; cout << "\n"; } } while (choice !=5); return 0; }
| DaniWeb Message | |
| Cancel Changes | |