Advertisement
Mandrew

Mental Mather - main.cpp

Aug 27th, 2012
56
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.70 KB | None | 0 0
  1. /**
  2.  Mental Mather - test your mental math skills!
  3.  By M.andrew
  4. */
  5.  
  6. // standard includes
  7. #include <cstdlib>
  8. #include <sys/time.h>
  9. #include <ctime>
  10. #include <stdio.h>
  11.  
  12. // user-defined includes
  13. #include "problem.h"
  14.  
  15. // limits for terms used
  16. #define TERMBOT 10
  17. #define TERMTOP 99
  18.  
  19. void introSplash()
  20. {
  21.     printf("Mental Mather ver. 0.01 by M.andrew\n"
  22.             "NO CALCULATORS! That's cheating!\n"
  23.             "\n");
  24. }
  25.  
  26. int main(int argc, char** argv)
  27. {
  28.     introSplash();
  29.  
  30.     int NumberOfProblems;
  31.     do
  32.     {
  33.         printf("How many problems today? ");
  34.         scanf("%d",&NumberOfProblems);
  35.     } while (NumberOfProblems < 0);
  36.    
  37.     // seed the PRNG
  38.     srand(time(0));
  39.    
  40.     int TermRange;
  41.     do
  42.     {
  43.     TermRange = TERMTOP-TERMBOT;
  44.     if (TermRange < 0)
  45.         TermRange = -TermRange;
  46.     } while (TermRange == 0);
  47.  
  48.     int *UserAnswerGrid = new int[NumberOfProblems];
  49.     int *RealAnswerGrid = new int[NumberOfProblems];
  50.     int Tally = 0;
  51.  
  52.     for (int i = 0; i < NumberOfProblems; i++)
  53.     {
  54.         int TermOne = rand() % TermRange + TERMBOT;
  55.         int TermTwo = rand() % TermRange + TERMBOT;
  56.        
  57.         Problem thisProblem(TermOne,TermTwo);
  58.         UserAnswerGrid[i] = thisProblem.AskTheProblem();
  59.         RealAnswerGrid[i] = thisProblem.Calculate();
  60.  
  61.         int Difference = abs(UserAnswerGrid[i]-RealAnswerGrid[i]);
  62.         if (Difference)
  63.         {
  64.             printf("Wrong! You were off by %d!\n",Difference);
  65.             printf("The actual answer was %d.\n",RealAnswerGrid[i]);
  66.         }
  67.         else
  68.         {
  69.             Tally++;
  70.             printf("Correct! You got that one spot on!\n");
  71.         }
  72.     }
  73.  
  74.     printf("You answered %d out of %d questions correctly, a success rate of %2.0f%%.\n",Tally,NumberOfProblems,static_cast<float>(Tally)/(NumberOfProblems)*100);
  75.  
  76.     delete [] UserAnswerGrid;
  77.     delete [] RealAnswerGrid;
  78.  
  79.     return 0;
  80. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement