Advertisement
Guest User

Untitled

a guest
Oct 31st, 2014
183
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.60 KB | None | 0 0
  1. #include <iostream>
  2. #include <ctime>
  3. #include <cstdlib>
  4.  
  5. using namespace std;
  6.  
  7. void doOneSet(char, int, int&);
  8. void printHeader(int);
  9. void doOneProblem(char, bool&, int);
  10. void getNumbers(int&, int&, int);
  11. void checkAnswer(int, int, bool&);
  12. int calcCorrectAnswer(char, int, int);
  13. int getProbsPerSet();
  14. void getMaxNum(int&);
  15. void printReport(int, int, int);
  16.  
  17. int main()
  18. {
  19. int probsPerSet;
  20. int amtCorrect;
  21. int set1Correct;
  22. int set2Correct;
  23. int set3Correct;
  24.  
  25. probsPerSet = getProbsPerSet();
  26.  
  27. srand(time(0));
  28. doOneSet('+', probsPerSet, amtCorrect);
  29. doOneSet('-', probsPerSet, amtCorrect);
  30. doOneSet('*', probsPerSet, amtCorrect);
  31. printReport(set1Correct, set2Correct, set3Correct);
  32.  
  33. return 0;
  34. }
  35.  
  36. void doOneSet(char problemType, int numProbs, int& correctCount)
  37. {
  38. int num1 = 0;
  39. int num2 = 0;
  40. int maxNum = 0;
  41. int headerNum = 0;
  42. int correctAnswer = 0;
  43. int userInput = 0;
  44. bool isCorrect = false;
  45.  
  46. switch (problemType)
  47. {
  48. case '+' : headerNum = 1;
  49. break;
  50. case '-' : headerNum = 2;
  51. break;
  52. case '*' : headerNum = 3;
  53. break;
  54. }
  55.  
  56. printHeader(headerNum);
  57. getMaxNum(maxNum);
  58.  
  59. for (int count = 1; count <= numProbs; count++)
  60. {
  61. doOneProblem(problemType, isCorrect, maxNum);
  62. }
  63. }
  64.  
  65. int getProbsPerSet()
  66. {
  67. int numProbs;
  68.  
  69. cout << "Enter problems per set: ";
  70. cin >> numProbs;
  71. cout << endl;
  72. return numProbs;
  73. }
  74. void printReport(int set1Correct, int set2Correct, int set3Correct)
  75. {
  76.  
  77. }
  78. void printHeader(int header)
  79. {
  80. cout << endl;
  81. cout << "Set #" << header << endl;
  82. cout << "--------" << endl;
  83. cout << endl;
  84. header++;
  85. }
  86. void getMaxNum(int& maxNum)
  87. {
  88. cout << "What is the maximum number for this set? ";
  89. cin >> maxNum;
  90. cout << endl;
  91. }
  92. void doOneProblem(char probType, bool& isCorrect, int maxNum)
  93. {
  94. int num1;
  95. int num2;
  96. int answer;
  97. int correctAnswer;
  98. int rightAnswers = 0;
  99. int wrongAnswers = 0;
  100. getNumbers(num1, num2, maxNum);
  101.  
  102. switch (probType)
  103. {
  104. case '+' : cout << num1 << " + " << num2 << " = ";
  105. cin >> answer;
  106. break;
  107. case '-' : cout << num1 << " - " << num2 << " = ";
  108. cin >> answer;
  109. break;
  110. case '*' : cout << num1 << " * " << num2 << " = ";
  111. cin >> answer;
  112. break;
  113. }
  114.  
  115. calcCorrectAnswer(probType, num1, num2);
  116. correctAnswer = calcCorrectAnswer(probType, num1, num2);
  117. checkAnswer(answer, correctAnswer, isCorrect);
  118. if (isCorrect == true)
  119. {
  120. rightAnswers++;
  121. }
  122. else
  123. wrongAnswers++;
  124. }
  125. void getNumbers(int& num1, int& num2, int maxNum)
  126. {
  127. num1 = rand() % (maxNum+1);
  128. num2 = rand() % (maxNum+1);
  129. }
  130. int calcCorrectAnswer(char probType, int num1, int num2)
  131. {
  132. int correctAnswer;
  133.  
  134. switch (probType)
  135. {
  136. case '+' : correctAnswer = num1 + num2;
  137. break;
  138. case '-' : correctAnswer = num1 - num2;
  139. break;
  140. case '*' : correctAnswer = num1 * num2;
  141. break;
  142. }
  143. return correctAnswer;
  144.  
  145. }
  146. void checkAnswer(int answer, int correctAnswer, bool &isCorrect)
  147. {
  148. bool correct;
  149.  
  150. if (answer == correctAnswer)
  151. {
  152. cout << "Correct!" << endl;
  153. correct = true;
  154. }
  155. else
  156. cout << "Incorrect." << endl;
  157. correct = false;
  158. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement