#include <iostream>
#include <iomanip>
#include <cstdlib>
#include <ctime>
#include <cmath>
using namespace std;
void doOneSet(char, int probsPerSet, int);
void getProbsPerSet(int& probsPerSet);
void printHeader(char);
void printReport(int &s1Correct, int &s2Correct, int &s3Correct, int probsPerSet);
void getMaxNum(int& maxNum);
void doOneProblem();
void getNumbers(int num1, int num2);
int main()
{
int probsPerSet;
int s1Correct, s2Correct, s3Correct;
srand(time(0));
getProbsPerSet(probsPerSet);
doOneSet('+', probsPerSet, s1Correct);
doOneSet('-', probsPerSet, s2Correct);
doOneSet('*', probsPerSet, s3Correct);
printReport(s1Correct, s2Correct, s3Correct, probsPerSet);
system("pause");
}
void printReport(int & s1Correct, int & s2Correct, int & s3Correct, int probsPerSet) {
cout << "Set#1: You got " << s1Correct << " correct out of " << probsPerSet<< " for " << s1Correct/probsPerSet << endl;
cout << "Set#2: You got " << s2Correct << " correct out of " << probsPerSet<< " for " << s2Correct/probsPerSet << endl;
cout << "Set#3: You got " << s3Correct << " correct out of " << probsPerSet<< " for " << s3Correct/probsPerSet << endl;
cout << "Overall you got " << s1Correct + s2Correct + s3Correct << " correct out of " << probsPerSet << " for " << (s1Correct + s2Correct + s3Correct) / probsPerSet << endl;
}
void getProbsPerSet(int& probsPerSet)
{
cout << "Enter problems per set: ";
cin >> probsPerSet;
cout << endl;
}
void getMaxNum(int maxNum)
{
cout << "What is the maximum number for this set? ";
cin >> maxNum;
}
void getNumbers(int num1, int num2)
{
int maxNum;
//char operand;
num1 = rand() % maxNum + 1;
num2 = rand() % maxNum + 1;
}
void doOneSet(char symbol, int probsPerSet, int& sCorrect) {
int answer;
int count = 0;
int maxNum;
int s1Correct, s2Correct, s3Correct;
int num1, num2;
printHeader(symbol);
getMaxNum(int& maxNum);
while(count < probsPerSet){
count ++;
num1 = rand() % maxNum +1;
num2 = rand() % maxNum +1;
}
switch(symbol)
{
case '+': cout << num1 << " " << symbol << " " << num2 << " = ";
cin >> answer;
if (answer == num1 + num2) {
cout << "correct" << endl;
s1Correct++;
}
if(answer != num1 + num2) {
cout << "incorrect" << endl;
}
break;
case '-': cout << num1 << " " << symbol << " " << num2 << " = ";
cin >> answer;
if (answer == num1 - num2) {
cout << "correct" << endl;
s2Correct++;
}
if (answer != num1 - num2) {
cout << "incorrect" << endl;
}
break;
case '*': cout << num1 << " " << symbol << " " << num2 << " = ";
cin >> answer;
if (answer == num1 * num2) {
cout << "correct" << endl;
s3Correct++;
}
if(answer != num1 * num2) {
cout << "incorrect" << endl;
}
}
}