예제 #1
0
        static void Main(string[] args)
        {
            string     inputNumOne, inputNumTwo, inputOperator; //Variáveis do programa
            Calculator Calc = new Calculator();                 //Declarando Calculadora

            while (true)
            {
                Console.Clear();
                Calc.printStart();

                Calc.printHistory(); //Imprime histórico, se existente

                Console.WriteLine("Para começar, digite a operação desejada:");
                Console.WriteLine("Operações disponíveis:\n + (Soma), - (Subtração), / (Divisão)\n * (Multiplicação), ^ (Potêcia)\n % (Resto da Divisão)");
                Console.WriteLine("Digite . para encerrar o programa");

                do
                {
                    Console.Write("Digite a opção desejada: ");
                    inputOperator = Console.ReadLine();       //Recebendo operador
                } while (!Calc.checkOperator(inputOperator)); //Validação do operador

                if (inputOperator == ".")                     //Verifica se operador é '.': encerra o programa
                {
                    return;
                }

                do
                {
                    Console.Write("Digite o primeiro número: ");
                    inputNumOne = Console.ReadLine();     //Recebendo primeiro número
                } while (!Calc.checkNumber(inputNumOne)); //Validação do primeiro número

                do
                {
                    Console.Write("Digite o segundo número: ");
                    inputNumTwo = Console.ReadLine();           //Recebendo segundo número
                } while (!Calc.checkNumber(inputNumTwo));       //Validação do segundo número

                if (inputOperator == "/" && inputNumTwo == "0") //Verifica se existe divisão por 0
                {
                    Console.Clear();
                    Console.WriteLine("Não é possível dividir por ZERO! - Encerrando programa.");
                }
                else
                {
                    //Realiza o cálculo e apresenta o resultado
                    Console.WriteLine("O resultado da operação é:");
                    Console.WriteLine(inputNumOne + " " + inputOperator + " " + inputNumTwo + " = " + Calc.calcOperation(Convert.ToDecimal(inputNumOne), Convert.ToDecimal(inputNumTwo), inputOperator));
                }

                //Adiciona valore ao histórico dentro da classe
                Calc.histNumOne.Add(Convert.ToDecimal(inputNumOne));
                Calc.histNumTwo.Add(Convert.ToDecimal(inputNumTwo));
                Calc.histOperator.Add(inputOperator);

                Calc.sessionID += 1;

                Console.WriteLine("Digite qualquer coisa para continuar na Calculadora\nDigite . para encerrar o programa");
                inputOperator = Console.ReadLine(); //Reutilizando variável para dar continuidade ao programa.

                if (inputOperator == ".")           //Verifica se operador é '.': encerra o programa
                {
                    return;
                }
            }
        }