public static void Add() { /* This method allows user to practice integer addition in 3 levels of difficulty * PARAM: None * RETURN: None */ string selected = null; selected = MathTrainer.DifficultyLevelMenu("ADDITION"); switch (selected) { case "1": EasyAdd(); break; case "2": ModerateAdd(); break; case "3": HardAdd(); break; case "4": break; } return; } //Add()
public static void Multiply() { /* This method allows user to practice integer multiplication in 3 levels of difficulty * PARAM: None * RETURN: None */ string selected = null; selected = MathTrainer.DifficultyLevelMenu("MULTIPLICATION"); switch (selected) { case "1": EasyMultiply(); break; case "2": ModerateMultiply(); break; case "3": HardMultiply(); break; case "4": break; } return; } //Multiply()
} //EasyDivide() public static void ModerateDivide() { /* This method allows user to practice "moderate" integer division using one random single-digit number * and one two-digit number, and displays useful statistics at the end. * PARAM: None * RETURN: None */ bool moreData = true; string level = "Moderate"; string strQuotientAnswer = null, strRemainderAnswer = null; int intQuotientAnswer = 0, intRemainderAnswer = 0, correctRemainderAnswer, correctQuotientAnswer, count = 0, userCorrect = 0, userWrong = 0; Random objRandomNum = new Random(); while (moreData == true) { int op1 = objRandomNum.Next(1, 10); //random operand between [1-9] int op2 = objRandomNum.Next(10, 100); //random operand between [10-99] trySwapNumbers(ref op1, ref op2); //check if op1 < op2 and if so, swap them correctRemainderAnswer = op1 % op2; correctQuotientAnswer = (op1 - correctRemainderAnswer) / op2; Clear(); //print header and question Helpers.printHeader("divide", level); Helpers.printQuestion(op1, op2, ref count, "/"); //get quotient answer and parse it strQuotientAnswer = getQuotientAnswer(); int.TryParse(strQuotientAnswer, out intQuotientAnswer); //invalid data is converted to answer=zero //get remainder answer and parse it strRemainderAnswer = getRemainderAnswer(); int.TryParse(strRemainderAnswer, out intRemainderAnswer); //invalid data is converted to answer=zero //check answer checkAnswer(intQuotientAnswer, intRemainderAnswer, correctQuotientAnswer, correctRemainderAnswer, ref userCorrect, ref userWrong); //ask user if they want another problem moreData = Helpers.checkProceed("division", level); } MathTrainer.DisplayStatistics("DIVISION", level, count, userCorrect, userWrong); return; } //ModerateDivide()
} //EasyAdd() public static void ModerateAdd() { /* This method allows user to practice "moderate" integer addition using one random single-digit number * and one two-digit number, and displays useful statistics at the end. * PARAM: None * RETURN: None */ bool moreData = true; string level = "Moderate"; string strAnswer = null; int intAnswer = 0, correctAnswer, count = 0, userCorrect = 0, userWrong = 0; Random objRandomNum = new Random(); while (moreData == true) { int op1 = objRandomNum.Next(1, 10); //random operand between [1-9] int op2 = objRandomNum.Next(10, 100); //random operand between [10-99] correctAnswer = op1 + op2; Clear(); //print header and question Helpers.printHeader("add", level); Helpers.printQuestion(op1, op2, ref count, "+"); //get answer and parse it strAnswer = Helpers.getUserAnswer(); int.TryParse(strAnswer, out intAnswer); //invalid data is converted to answer=zero //check answer Helpers.checkAnswer(intAnswer, correctAnswer, ref userCorrect, ref userWrong); //ask user if they want another problem moreData = Helpers.checkProceed("addition", level); } MathTrainer.DisplayStatistics("ADDITION", level, count, userCorrect, userWrong); return; } //ModerateAdd()