#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;
        }
    }
}            
        
