public static void Main() { // Calculator Console.WriteLine("+++++++++++++++++++++++++++"); Console.WriteLine("+++++++ CALCULATOR ++++++++"); Console.WriteLine("+++++++++++++++++++++++++++"); Console.WriteLine("\t+ - Add"); Console.WriteLine("\t- - Subtract"); Console.WriteLine("\t* - Multiply"); Console.WriteLine("\t/ - Divide"); Console.WriteLine("\t% - Modulo"); // We repeat operations until the users enters other that Y or y bool repeat; // We create an object from the Class Calculator // before entering inside the loop Calculator calculator = new Calculator(); do { String firstNumberString; bool isNumber; // We loop until the user enters a valid number // The user is allowed to enter "." for example 34.54 // If the user enters for example 34.54. it is not // a valid double number, it will be rejected do { isNumber = true; Console.WriteLine("Enter the First Number: "); firstNumberString = Console.ReadLine(); firstNumberString = firstNumberString.Trim(); if (firstNumberString.Substring(0, 1) == "-") { firstCharIsNegativeForFirstNumber = true; } else { firstCharIsNegativeForFirstNumber = false; } isNumber = checkValidityOfNumber(firstNumberString, isNumber, firstCharIsNegativeForFirstNumber); } while (isNumber == false); String operation = ""; // We loop until the user enters a valid operator // Anything except "+" or "-" or "*" or "/" or "%" is not accepted do { Console.WriteLine("Enter A Valid Operator: "); operation = Console.ReadLine(); } while (operation != "+" && operation != "-" && operation != "*" && operation != "/" && operation != "%"); String secondNumberString; // We check the number validity of the second entered number do { isNumber = true; Console.WriteLine("Enter The Second Number: "); secondNumberString = Console.ReadLine(); secondNumberString = secondNumberString.Trim(); if (secondNumberString.Substring(0, 1) == "-") { firstCharIsNegativeForSecondNumber = true; } else { firstCharIsNegativeForSecondNumber = false; } isNumber = checkValidityOfNumber(secondNumberString, isNumber, firstCharIsNegativeForSecondNumber); } while (isNumber == false); // firstNumberString and secondNumberString are converted to double to // make operations double firstNumberDouble = Double.Parse(firstNumberString); double secondNumberDouble = Double.Parse(secondNumberString); //if (firstCharIsNegativeForFirstNumber) //{ // firstNumberDouble = -firstNumberDouble; //} //if (firstCharIsNegativeForSecondNumber) //{ // secondNumberDouble = -secondNumberDouble; //} double result; String resultDivision; result = calculator.DoOperation(firstNumberDouble, secondNumberDouble, operation); resultDivision = calculator.getMessageDivideByZero(); if (!resultDivision.Trim().Equals("")) { Console.WriteLine(resultDivision); } else { Console.WriteLine("Result: "); Console.WriteLine(result); } String anotherOp; Console.WriteLine("Another Operation?: Y Or y for Yes or enter to quit: "); anotherOp = Console.ReadLine(); if (anotherOp == "Y" || anotherOp == "y") { repeat = true; } else { calculator.Finish(); repeat = false; } } while (repeat == true);