Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <ctime>
- #include <cstdlib>
- using namespace std;
- void doOneSet(char, int, int&);
- void printHeader(int);
- void doOneProblem(char, bool&, int);
- void getNumbers(int&, int&, int);
- void checkAnswer(int, int, bool&);
- int calcCorrectAnswer(char, int, int);
- int getProbsPerSet();
- void getMaxNum(int&);
- void printReport(int, int, int);
- int main()
- {
- int probsPerSet;
- int amtCorrect;
- int set1Correct;
- int set2Correct;
- int set3Correct;
- probsPerSet = getProbsPerSet();
- srand(time(0));
- doOneSet('+', probsPerSet, amtCorrect);
- doOneSet('-', probsPerSet, amtCorrect);
- doOneSet('*', probsPerSet, amtCorrect);
- printReport(set1Correct, set2Correct, set3Correct);
- return 0;
- }
- void doOneSet(char problemType, int numProbs, int& correctCount)
- {
- int num1 = 0;
- int num2 = 0;
- int maxNum = 0;
- int headerNum = 0;
- int correctAnswer = 0;
- int userInput = 0;
- bool isCorrect = false;
- switch (problemType)
- {
- case '+' : headerNum = 1;
- break;
- case '-' : headerNum = 2;
- break;
- case '*' : headerNum = 3;
- break;
- }
- printHeader(headerNum);
- getMaxNum(maxNum);
- for (int count = 1; count <= numProbs; count++)
- {
- doOneProblem(problemType, isCorrect, maxNum);
- }
- }
- int getProbsPerSet()
- {
- int numProbs;
- cout << "Enter problems per set: ";
- cin >> numProbs;
- cout << endl;
- return numProbs;
- }
- void printReport(int set1Correct, int set2Correct, int set3Correct)
- {
- }
- void printHeader(int header)
- {
- cout << endl;
- cout << "Set #" << header << endl;
- cout << "--------" << endl;
- cout << endl;
- header++;
- }
- void getMaxNum(int& maxNum)
- {
- cout << "What is the maximum number for this set? ";
- cin >> maxNum;
- cout << endl;
- }
- void doOneProblem(char probType, bool& isCorrect, int maxNum)
- {
- int num1;
- int num2;
- int answer;
- int correctAnswer;
- int rightAnswers = 0;
- int wrongAnswers = 0;
- getNumbers(num1, num2, maxNum);
- switch (probType)
- {
- case '+' : cout << num1 << " + " << num2 << " = ";
- cin >> answer;
- break;
- case '-' : cout << num1 << " - " << num2 << " = ";
- cin >> answer;
- break;
- case '*' : cout << num1 << " * " << num2 << " = ";
- cin >> answer;
- break;
- }
- calcCorrectAnswer(probType, num1, num2);
- correctAnswer = calcCorrectAnswer(probType, num1, num2);
- checkAnswer(answer, correctAnswer, isCorrect);
- if (isCorrect == true)
- {
- rightAnswers++;
- }
- else
- wrongAnswers++;
- }
- void getNumbers(int& num1, int& num2, int maxNum)
- {
- num1 = rand() % (maxNum+1);
- num2 = rand() % (maxNum+1);
- }
- int calcCorrectAnswer(char probType, int num1, int num2)
- {
- int correctAnswer;
- switch (probType)
- {
- case '+' : correctAnswer = num1 + num2;
- break;
- case '-' : correctAnswer = num1 - num2;
- break;
- case '*' : correctAnswer = num1 * num2;
- break;
- }
- return correctAnswer;
- }
- void checkAnswer(int answer, int correctAnswer, bool &isCorrect)
- {
- bool correct;
- if (answer == correctAnswer)
- {
- cout << "Correct!" << endl;
- correct = true;
- }
- else
- cout << "Incorrect." << endl;
- correct = false;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement