Esempio n. 1
0
        private void bEqual_Click(object sender, EventArgs e)
        {                                                            /*Först vill jag extrahera tal från strängen. Jag skappade en float vecktor som ska innehålla numrar som vi har mattat i vår mini räknare*/
            input = tbscreen.Text;
            string[] numbersArray = input.Split('+', '-', '*', '/'); // en ny vecktor av typ sträng med tal skapades efter jag delade input när det finns öperatörer +,-,*,/

            float[] SplitedNumbers = new float[numbersArray.Length]; //konvertarar alla tal av typ sträng i ett ny vektor SplitedNumbers av typ float

            for (int i = 0; i < numbersArray.Length; i++)
            {
                SplitedNumbers[i] = float.Parse(numbersArray[i]);
            }

            /*Nästa steg är att extrahera öperatörer + - * / från input sträng och lägga dem i ett ny lista oper av typ char.
             * Detta gör jag genom itterera genom input vektor. Om en element i input innerhåller en av öperatör tecken då lägga man öperatörer i lista oper*/

            string      operatorTecken = "+-*/";
            List <char> oper           = new List <char>();

            for (int j = 0; j < input.Length; j++)
            {
                if (operatorTecken.Contains(input[j]))
                {
                    oper.Add(input[j]);
                }
            }

            /* Här börjar jag att räkna med hjälp av klassen Calculator. Först startat jag ackumulators värde som är den första nummer i vecktor SplittedNumbers,
             * och instansiera MyCalc objekt. Därefter itererar jag genom vektor av numrar (SplitedNumbers) med position 1 och genom öperatörer (oper).
             * Eftersom vektor av tal är alltid store än vecktor av öperatörer med 1. Därför när man har tal på position 1 det motsvarar tecken på position 0 (i-1).
             * På detta sätt kan jag se vilket tal som motsvarar vilken operatör. */

            n      = SplitedNumbers[0];
            MyCalc = new Calculator(n);
            for (int i = 1; i < SplitedNumbers.Length; i++) //vi börjar med i=1, så vi se
            {
                tecken = oper[i - 1];
                n      = SplitedNumbers[i];

                if (tecken == '+')  //Om öperatör är + då ska man summera den nummer som motsvarar position av +
                {
                    MyCalc.Sum(n);
                }
                if (tecken == '-')
                {
                    MyCalc.Sub(n);
                }
                if (tecken == '*')
                {
                    MyCalc.Mul(n);
                }
                if (tecken == '/')
                {
                    MyCalc.Div(n);
                }

                result = MyCalc.execute();
            }

            tbscreen.Text = "= " + result.ToString();
        }
Esempio n. 2
0
        static void Main(string[] args)
        {
            double     input1           = 0;
            double     input2           = 0;
            double     input3           = 0;
            bool       inputCheck       = false;
            int        userInput        = 0;
            string     userInputConvert = "";
            Calculator Calculatron      = new Calculator();

            while (inputCheck == false)
            {
                Console.WriteLine("Welcome to Calculatron!");
                Console.WriteLine("1) Add two numbers");
                Console.WriteLine("2) Subtract two numbers");
                Console.WriteLine("3) Multiply two numbers");
                Console.WriteLine("4) Divide two numbers");
                Console.WriteLine("5) Square one number");
                Console.WriteLine("6) Square root of a number");
                Console.WriteLine("7) Advanced: Write a simple equation (ex. 2 + 2)");
                Console.WriteLine("0) Exit");
                Console.WriteLine("");

                Console.Write("Choose an option: ");
                userInput = Int32.Parse(Console.ReadLine());
                if (userInput == 0)
                {
                    Console.WriteLine();
                    Console.WriteLine("Thanks for using Calculatron!");
                    inputCheck = true;
                }
                else if (userInput == 1)
                {
                    try
                    {
                        Console.Write("Please enter the numbers seperated by a space: ");
                        userInputConvert = Console.ReadLine();
                        input1           = double.Parse(userInputConvert.Split(" ")[0]);
                        input2           = double.Parse(userInputConvert.Split(" ")[1]);
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine("Incorrect input: Try again.");
                        Console.WriteLine("");
                        Console.Write("Please enter the numbers seperated by a space: ");
                        userInputConvert = Console.ReadLine();
                        input1           = double.Parse(userInputConvert.Split(" ")[0]);
                        input2           = double.Parse(userInputConvert.Split(" ")[1]);
                    }
                    double inputSum = Calculatron.Sum(input1, input2);

                    Console.WriteLine($"The result of adding {input1} and {input2} is {inputSum}");
                    Console.WriteLine("");
                    System.Threading.Thread.Sleep(2000);
                    Console.WriteLine("Press any key to continue...");
                    Console.ReadLine();
                }
                else if (userInput == 2)
                {
                    try
                    {
                        Console.Write("Please enter the numbers seperated by a space: ");
                        userInputConvert = Console.ReadLine();
                        input1           = double.Parse(userInputConvert.Split(" ")[0]);
                        input2           = double.Parse(userInputConvert.Split(" ")[1]);
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine("Incorrect input: Try again.");
                        Console.WriteLine("");
                        Console.Write("Please enter the numbers seperated by a space: ");
                        userInputConvert = Console.ReadLine();
                        input1           = double.Parse(userInputConvert.Split(" ")[0]);
                        input2           = double.Parse(userInputConvert.Split(" ")[1]);
                    }

                    double inputSub = Calculatron.Sub(input1, input2);

                    Console.WriteLine($"The result of subtraction {input1} and {input2} is {inputSub}");
                    Console.WriteLine("");
                    System.Threading.Thread.Sleep(2000);
                    Console.WriteLine("Press any key to continue...");
                    Console.ReadLine();
                }
                else if (userInput == 3)
                {
                    try
                    {
                        Console.Write("Please enter the numbers seperated by a space: ");
                        userInputConvert = Console.ReadLine();
                        input1           = double.Parse(userInputConvert.Split(" ")[0]);
                        input2           = double.Parse(userInputConvert.Split(" ")[1]);
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine("Incorrect input: Try again.");
                        Console.WriteLine("");
                        Console.Write("Please enter the numbers seperated by a space: ");
                        userInputConvert = Console.ReadLine();
                        input1           = double.Parse(userInputConvert.Split(" ")[0]);
                        input2           = double.Parse(userInputConvert.Split(" ")[1]);
                    }

                    double inputMult = Calculatron.Mult(input1, input2);

                    Console.WriteLine($"The result of multiplying {input1} and {input2} is {inputMult}");
                    Console.WriteLine("");
                    System.Threading.Thread.Sleep(2000);
                    Console.WriteLine("Press any key to continue...");
                    Console.ReadLine();
                }
                else if (userInput == 4)
                {
                    try
                    {
                        Console.Write("Please enter the numbers seperated by a space: ");
                        userInputConvert = Console.ReadLine();
                        input1           = double.Parse(userInputConvert.Split(" ")[0]);
                        input2           = double.Parse(userInputConvert.Split(" ")[1]);
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine("Incorrect input: Try again.");
                        Console.WriteLine("");
                        Console.Write("Please enter the numbers seperated by a space: ");
                        userInputConvert = Console.ReadLine();
                        input1           = double.Parse(userInputConvert.Split(" ")[0]);
                        input2           = double.Parse(userInputConvert.Split(" ")[1]);
                    }
                    double inputDiv = Calculatron.Div(input1, input2);

                    Console.WriteLine($"The result of dividing {input1} and {input2} is {inputDiv}");
                    Console.WriteLine("");
                    System.Threading.Thread.Sleep(2000);
                    Console.WriteLine("Press any key to continue...");
                    Console.ReadLine();
                }
                else if (userInput == 5)
                {
                    try
                    {
                        Console.Write("Please enter the number to be squared: ");
                        userInputConvert = Console.ReadLine();
                        input3           = double.Parse(userInputConvert);
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine("Incorrect input: Try again.");
                        Console.WriteLine("");
                        Console.Write("Please enter the number to be squared: ");
                        userInputConvert = Console.ReadLine();
                        input3           = double.Parse(userInputConvert);
                    }

                    double inputSquare = Calculatron.Square(input3);
                    Console.WriteLine($"The square of {input3} is {inputSquare}");
                    Console.WriteLine("");
                    System.Threading.Thread.Sleep(2000);
                    Console.WriteLine("Press any key to continue...");
                    Console.ReadLine();
                }
                else if (userInput == 6)
                {
                    try
                    {
                        Console.Write("Please enter the number to get the square root of: ");
                        userInputConvert = Console.ReadLine();
                        input3           = double.Parse(userInputConvert);
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine("Incorrect input: Try again.");
                        Console.WriteLine("");
                        Console.Write("Please enter the number to get the square root of: ");
                        userInputConvert = Console.ReadLine();
                        input3           = double.Parse(userInputConvert);
                    }

                    double inputSqr = Calculatron.SquareRoot(input3);
                    Console.WriteLine($"The square root of {input3} is {inputSqr}");
                    Console.WriteLine("");
                    System.Threading.Thread.Sleep(2000);
                    Console.WriteLine("Press any key to continue...");
                    Console.ReadLine();
                }
                else if (userInput == 7)
                {
                    string op = "";
                    try
                    {
                        Console.Write("Please enter your equation with spaces between each number and the operators: ");
                        userInputConvert = Console.ReadLine();
                        input1           = double.Parse(userInputConvert.Split(" ")[0]);
                        input2           = double.Parse(userInputConvert.Split(" ")[2]);
                        op = userInputConvert.Split(" ")[1];
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine("Incorrect input: Try again.");
                        Console.WriteLine("");
                        Console.Write("Please enter your equation with spaces between each number and the operators: ");
                        userInputConvert = Console.ReadLine();
                        input1           = double.Parse(userInputConvert.Split(" ")[0]);
                        input2           = double.Parse(userInputConvert.Split(" ")[2]);
                        op = userInputConvert.Split(" ")[1];
                    }
                    double answer = 0;
                    if (op == "+")
                    {
                        answer = Calculatron.Sum(input1, input2);
                    }
                    else if (op == "-")
                    {
                        answer = Calculatron.Sub(input1, input2);
                    }
                    else if (op == "*")
                    {
                        answer = Calculatron.Mult(input1, input2);
                    }
                    else if (op == "/")
                    {
                        answer = Calculatron.Div(input1, input2);
                    }
                    Console.WriteLine($"The answer to your question is {answer}");
                    Console.WriteLine("");
                    System.Threading.Thread.Sleep(2000);
                    Console.WriteLine("Press any key to continue...");
                    Console.ReadLine();
                }
                else
                {
                    Console.WriteLine("Incorrect Input: Try again!");
                    System.Threading.Thread.Sleep(3000);
                }
            }
        }