예제 #1
0
        static void Main(string[] args)
        {
            try
            {
                var inputconverter = new InputConverter();
                var caclulator     = new CalculateEngine();
                Console.WriteLine("Enter a number");
                double firstnumber = inputconverter.ConvertToNumeric(Console.ReadLine());
                Console.WriteLine("Enter an operator");
                string operation = Console.ReadLine();
                Console.WriteLine("Enter a number");
                double secondnumber = inputconverter.ConvertToNumeric(Console.ReadLine());
                double result       = caclulator.Calculate(operation, firstnumber, secondnumber);

                ConsoleKeyInfo cki;

                do
                {
                    firstnumber = result;
                    Console.WriteLine("\nEnter an operator");
                    cki = Console.ReadKey();

                    if (cki.Key == ConsoleKey.OemPlus)
                    {
                        break;
                    }
                    Console.WriteLine("\nEnter a number");
                    secondnumber = inputconverter.ConvertToNumeric(Console.ReadLine());

                    operation = Convert.ToString(cki.Key);

                    result = caclulator.Calculate(operation, result, secondnumber);
                } while (true);



                Console.WriteLine(" " + result);
            }
            catch (Exception ex)
            {
                //TODO:strat logging Exception
                Console.WriteLine(ex.Message);
            }
        }
예제 #2
0
        static void Main(string[] args)
        {
            bool   continueProgram = true;
            string strRestart;

            do
            {
                try
                {
                    InputConverter   inputConverter   = new InputConverter();
                    CalculatorEngine calculatorEngine = new CalculatorEngine();

                    // Prompt for and receive equation
                    Console.Write(Constants.PromptForFirstNumber);
                    double dblNum1 = inputConverter.ConvertToNumeric(Console.ReadLine());
                    Console.Write(Constants.PromptForSecondNumber);
                    double dblNum2 = inputConverter.ConvertToNumeric(Console.ReadLine());
                    Console.Write(Constants.PromptForOperator);
                    string operation = Console.ReadLine();

                    // Call Calculate function
                    double result = calculatorEngine.Calculate(operation, dblNum1, dblNum2);

                    // Write result
                    Console.WriteLine(result);
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message);
                }
                finally
                {
                    // Ask if user wants to restart program
                    do
                    {
                        Console.Write(Constants.PromptForRestartingProgram);
                        strRestart = Console.ReadLine();
                    } while (!strRestart.Equals(Constants.InputToRestartProgram, StringComparison.OrdinalIgnoreCase) && !strRestart.Equals(Constants.InputToStopProgram, StringComparison.OrdinalIgnoreCase));
                    // Set boolean based on user's input
                    continueProgram = strRestart.Equals(Constants.InputToRestartProgram, StringComparison.OrdinalIgnoreCase);
                }
            } while (continueProgram);
        }