Ejemplo n.º 1
0
        public IStra CreateStrategy(char operatorType)
        {
            IStra strategy = null;

            switch (operatorType)
            {
            case '+':
                strategy = new AdditionStrategy();
                break;

            case '-':
                strategy = new SubtractionStrategy();
                break;

            case '*':
                strategy = new MultiplicationStrategy();
                break;

            case '/':
                strategy = new DivisionStrategy();
                break;
            }

            return(strategy);
        }
Ejemplo n.º 2
0
        static void Main(string[] args)
        {
            while (true)
            {
                Console.WriteLine("What do you want to do?");
                Console.WriteLine("(1) Look Around");
                Console.WriteLine("(2) Buy Animal");
                Console.WriteLine("(3) Pet Dog");
                Console.WriteLine("(4) Steal Animal");
                var    operation = Console.ReadLine();
                double numberOne;
                double numberTwo;
                ICalculationStrategy strat;

                Console.WriteLine("Enter the first number:");
                numberOne = Convert.ToDouble(Console.ReadLine());
                Console.WriteLine("Enter the second number:");
                numberTwo = Convert.ToDouble(Console.ReadLine());
                bool reset = false;

                switch (operation)
                {
                case "1":
                    strat = new AdditionStrategy();
                    break;

                case "2":
                    strat = new SubtractionStrategy();
                    break;

                case "3":
                    strat = new MultiplicationStrategy();
                    break;

                case "4":
                    strat = new DivisionStrategy();
                    break;

                default:
                    Console.WriteLine("Please select a valid operation");
                    reset = true;
                    strat = new AdditionStrategy();
                    break;
                }

                if (reset)
                {
                    continue;
                }

                var calc = new Calculation(strat);
                calc.CalculationInterface(numberOne, numberTwo);

                Console.WriteLine("Do you wish to continue? 'y'/'n'");
                if (Console.ReadLine().ToLower() != "y")
                {
                    break;
                }
            }
        }
Ejemplo n.º 3
0
        private static IStrategy CreateStrategy(AdditionStrategy additionStrategy, char @operator)
        {
            IStrategy strategy = null;

            switch (@operator)
            {
            case '+':
                strategy = additionStrategy;
                break;

            case '-':
                strategy = new SubtractionStrategy();
                break;

            case '*':
                strategy = new MultiplicationStrategy();
                break;

            case '/':
                strategy = new DivisionStrategy();
                break;
            }

            return(strategy);
        }
 public PrimitiveCalculator()
 {
     this.additionStrategy       = new AdditionStrategy();
     this.subtractionStrategy    = new SubtractionStrategy();
     this.multiplicationStrategy = new MultiplicationStrategy();
     this.divisionStrategy       = new DivisionStrategy();
     this.operation = Operation.Addition;
 }
Ejemplo n.º 5
0
        static void Main(string[] args)
        {
            while (true)
            {
                Console.WriteLine("What operation would you like to perform? ('+', '-', '*', '/')");
                var    operation = Console.ReadLine();
                double numberOne;
                double numberTwo;
                ICalculationStrategy strat;

                Console.WriteLine("Enter the first number:");
                numberOne = Convert.ToDouble(Console.ReadLine());
                Console.WriteLine("Enter the second number:");
                numberTwo = Convert.ToDouble(Console.ReadLine());
                bool reset = false;

                switch (operation)
                {
                case "+":
                    strat = new AdditionStrategy();
                    break;

                case "-":
                    strat = new SubtractionStrategy();
                    break;

                case "*":
                    strat = new MultiplicationStrategy();
                    break;

                case "/":
                    strat = new DivisionStrategy();
                    break;

                default:
                    Console.WriteLine("Please select a valid operation");
                    reset = true;
                    strat = new AdditionStrategy();
                    break;
                }

                if (reset)
                {
                    continue;
                }

                var calc = new Calculation(strat);
                calc.CalculationInterface(numberOne, numberTwo);

                Console.WriteLine("Do you wish to continue? 'y'/'n'");
                if (Console.ReadLine().ToLower() != "y")
                {
                    break;
                }
            }
        }
Ejemplo n.º 6
0
        static void Main(string[] args)
        {
            while (true)
            {
                Console.WriteLine("What du you want to do?");
                Console.WriteLine("Buy an animal (1)");
                Console.WriteLine("Sell an animal (2)");
                Console.WriteLine("Kidnapp an animal (3)");
                Console.WriteLine("Just looking at animals (4)");
                var     costumer = Console.ReadLine();
                string  typeOfAnimal;
                Ianimal strat;

                Console.WriteLine("Enter the first number:");
                typeOfAnimal = Console.ReadLine();

                bool reset = false;

                switch (costumer)
                {
                case "1":
                    strat = new AdditionStrategy();
                    break;

                case "2":
                    strat = new SubtractionStrategy();
                    break;

                case "3":
                    strat = new MultiplicationStrategy();
                    break;

                case "4":
                    strat = new DivisionStrategy();
                    break;

                default:
                    Console.WriteLine("Please select a valid operation");
                    reset = true;
                    strat = new AdditionStrategy();
                    break;
                }

                if (reset)
                {
                    continue;
                }

                Console.WriteLine("Do you wish to continue? 'y'/'n'");
                if (Console.ReadLine().ToLower() != "y")
                {
                    break;
                }
            }
        }
Ejemplo n.º 7
0
        static void Main(string[] args)
        {
            PrimitiveCalculator calculator = new PrimitiveCalculator(new AdditionStrategy());

            string input;

            while ((input = Console.ReadLine()) != "End")
            {
                string[] tokens   = input.Split();
                string   firstArg = tokens[0];

                if (firstArg == "mode")
                {
                    char @operator = tokens[1][0];
                    ICalculationStrategy strategy = null;

                    if (@operator == '+')
                    {
                        strategy = new AdditionStrategy();
                    }
                    else if (@operator == '-')
                    {
                        strategy = new SubtractionStrategy();
                    }
                    else if (@operator == '/')
                    {
                        strategy = new DivisionStrategy();
                    }
                    else if (@operator == '*')
                    {
                        strategy = new MultiplicationStrategy();
                    }

                    if (strategy == null)
                    {
                        throw new ArgumentException("Invalid mode");
                    }

                    calculator.ChangeStrategy(strategy);
                }
                else
                {
                    int firstOperand  = int.Parse(tokens[0]);
                    int secondOperand = int.Parse(tokens[1]);

                    int result = calculator.PerformCalculation(firstOperand, secondOperand);

                    Console.WriteLine(result);
                }
            }
        }
        public static void Main()
        {
            var calculator = new PrimitiveCalculator();

            var input = Console.ReadLine()
                        .Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);

            while (!input[0].Equals("End"))
            {
                if (input[0].Equals("mode"))
                {
                    switch (input[1][0])
                    {
                    case '/':
                        IStrategy division = new DivisionStrategy();
                        calculator.ChangeStrategy(division);
                        break;

                    case '*':
                        IStrategy multiply = new MultiplicationStrategy();
                        calculator.ChangeStrategy(multiply);
                        break;

                    case '+':
                        IStrategy addition = new AdditionStrategy();
                        calculator.ChangeStrategy(addition);
                        break;

                    case '-':
                        IStrategy subtraction = new SubtractionStrategy();
                        calculator.ChangeStrategy(subtraction);
                        break;

                    default:
                        throw new InvalidOperationException("Invalid operator!");
                    }
                }
                else
                {
                    int firstOperand  = int.Parse(input[0]);
                    int secondOperand = int.Parse(input[1]);
                    int result        = calculator.PerformCalculation(firstOperand, secondOperand);
                    Console.WriteLine(result);
                }

                input = Console.ReadLine()
                        .Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
            }
        }
Ejemplo n.º 9
0
    static void Main()
    {
        ICalculationStrategy calcStartegy = new AdditionStrategy();
        PrimitiveCalculator  calculator   = new PrimitiveCalculator(calcStartegy);

        string input = "";

        while ((input = Console.ReadLine()) != "End")
        {
            string[] args = input.Split();

            if (args[0] == "mode")
            {
                ICalculationStrategy calculationStrategy = null;

                switch (args[1])
                {
                case "+":
                    calculationStrategy = new AdditionStrategy();
                    break;

                case "-":
                    calculationStrategy = new SubtractionStrategy();
                    break;

                case "*":
                    calculationStrategy = new MultiplicationStrategy();
                    break;

                case "/":
                    calculationStrategy = new DivisionStrategy();
                    break;
                }

                if (calculationStrategy != null)
                {
                    calculator.ChangeStrategy(calculationStrategy);
                }
            }
            else
            {
                int firstOperand  = int.Parse(args[0]);
                int secondOperand = int.Parse(args[1]);
                int result        = calculator.PerformCalculation(firstOperand, secondOperand);
                Console.WriteLine(result);
            }
        }
    }
Ejemplo n.º 10
0
    public static void Main()
    {
        string input = Console.ReadLine();
        var    calc  = new PrimitiveCalculator();

        while (input != "End")
        {
            string[] data = input.Split();

            int num1;
            if (int.TryParse(data[0], out num1))
            {
                int num2   = int.Parse(data[1]);
                int result = calc.PerformCalculation(num1, num2);
                Console.WriteLine(result);
            }
            else
            {
                char @operator = Convert.ToChar(data[1]);
                switch (@operator)
                {
                case '+':
                    IStrategy addition = new AdditionStrategy();
                    calc.ChangeStrategy(addition);
                    break;

                case '-':
                    IStrategy subtraction = new SubtractionStrategy();
                    calc.ChangeStrategy(subtraction);
                    break;

                case '*':
                    IStrategy multiplication = new MultiplicationStrategy();
                    calc.ChangeStrategy(multiplication);
                    break;

                case '/':
                    IStrategy division = new DivisionStrategy();
                    calc.ChangeStrategy(division);
                    break;

                default:
                    throw new InvalidOperationException("Invalid operator!");
                }
            }
            input = Console.ReadLine();
        }
    }
Ejemplo n.º 11
0
        static void Main(string[] args)
        {
            var calculator = new PrimitiveCalculator();

            string input;

            while ((input = Console.ReadLine()) != "End")
            {
                string[] inputArgs = input.Split();

                if (inputArgs[0] == "mode")
                {
                    char @operator = inputArgs[1][0];

                    ICalculationStrategy strategy = null;

                    switch (@operator)
                    {
                    case '+':
                        strategy = new AdditionStrategy();
                        break;

                    case '-':
                        strategy = new SubtractionStrategy();
                        break;

                    case '*':
                        strategy = new MultiplicationStrategy();
                        break;

                    case '/':
                        strategy = new DivisionStrategy();
                        break;
                    }

                    calculator.ChangeStrategy(strategy);
                }
                else
                {
                    int firstOperand  = int.Parse(inputArgs[0]);
                    int secondOperand = int.Parse(inputArgs[1]);

                    int result = calculator.PerformCalculation(firstOperand, secondOperand);

                    Console.WriteLine(result);
                }
            }
        }
Ejemplo n.º 12
0
    private void ExecuteCommands()
    {
        string input = string.Empty;

        while (!(input = this.reader.ReadLine()).Equals("End"))
        {
            string[] cmdArgs = input.Split(' ');

            if (cmdArgs[0].Equals("mode"))
            {
                ICalculationStrategy strategy = null;

                switch (cmdArgs[1])
                {
                case "+":
                    strategy = new AdditionStrategy();
                    break;

                case "-":
                    strategy = new SubtractionStrategy();
                    break;

                case "*":
                    strategy = new MultiplicationStrategy();
                    break;

                case "/":
                    strategy = new DivisionStrategy();
                    break;

                default:
                    break;
                }

                this.calculator.ChangeStrategy(strategy);
            }
            else
            {
                int firstOperand  = int.Parse(cmdArgs[0]);
                int secondOperand = int.Parse(cmdArgs[1]);

                int result = this.calculator.PerformCalculation(firstOperand, secondOperand);
                this.writer.WriteLine(result.ToString());
            }
        }
    }
Ejemplo n.º 13
0
    static void Main(string[] args)
    {
        ICalculator calculator = new Calculator(new AdditionStrategy());

        string input;

        while ((input = Console.ReadLine()) != "End")
        {
            var tokens = input.Split();

            if (tokens[0] == "mode")
            {
                char @operator = Char.Parse(tokens[1]);
                ICalculationStrategy strategy = null;

                switch (@operator)
                {
                case '+':
                    strategy = new AdditionStrategy();
                    break;

                case '-':
                    strategy = new SubtractionStrategy();
                    break;

                case '*':
                    strategy = new MultiplicationStrategy();
                    break;

                case '/':
                    strategy = new DivisionStrategy();
                    break;
                }

                calculator.ChangeStrategy(strategy);
            }
            else
            {
                int left  = int.Parse(tokens[0]);
                int right = int.Parse(tokens[1]);

                int result = calculator.PerformCalculation(left, right);
                Console.WriteLine(result);
            }
        }
    }
Ejemplo n.º 14
0
    static void Main()
    {
        PrimitiveCalculator calculator  = new PrimitiveCalculator();
        IStrategy           newStrategy = new AdditionStrategy();
        string input = Console.ReadLine();

        while (input != "End")
        {
            string[] commandInfo = input.Split();
            if (commandInfo[0] == "mode")
            {
                switch (commandInfo[1][0])
                {
                case '+':
                    newStrategy = new AdditionStrategy();
                    break;

                case '-':
                    newStrategy = new SubtractionStrategy();
                    break;

                case '/':
                    newStrategy = new DivisionStrategy();
                    break;

                case '*':
                    newStrategy = new MultiplicationStrategy();
                    break;
                }
                calculator.ChangeStrategy(newStrategy);
            }
            else
            {
                int result = calculator.PerformCalculation(int.Parse(commandInfo[0]), int.Parse(commandInfo[1]));
                Console.WriteLine(result);
            }
            input = Console.ReadLine();
        }
    }
        public void ChangeStrategy(char strategyType)
        {
            ICalculationStrategy strategy = null;

            if (strategyType == '+')
            {
                strategy = new AdditionStrategy();
            }
            else if (strategyType == '-')
            {
                strategy = new SubtractionStrategy();
            }
            else if (strategyType == '*')
            {
                strategy = new MultiplicationStrategy();
            }
            else if (strategyType == '/')
            {
                strategy = new DivisionStrategy();
            }

            this.calculationStrategy = strategy;
        }
Ejemplo n.º 16
0
        static void Main(string[] args)
        {
            List <string> mathOperatorList = new List <string>()
            {
                "+", "-", "/", "*"
            };

            while (true)
            {
                //Output of all available math types the program can run
                Console.WriteLine("What kind of math would you like to do?");
                foreach (string mathOperator in mathOperatorList)
                {
                    Console.Write($"\"{mathOperator}\" ");
                }

                //User inputs type of math that is to be used, if its not valid, a reset will be done
                var typeOfMath = Console.ReadLine().ToString();
                if (!mathOperatorList.Contains(typeOfMath))
                {
                    Console.WriteLine("\nNot a valid input, please try again!\n");
                    continue;
                }

                //User inputs numbers that is to be calculated
FaultyInput:
                string numberInputOne;
                string numberInputTwo;
                Console.WriteLine("Input the first number");
                numberInputOne = Console.ReadLine();
                Console.WriteLine("Input the second number");
                numberInputTwo = Console.ReadLine();
                if (!Regex.IsMatch(numberInputOne, "^(-?)(0|([1-9][0-9]*))(\\.[0-9]+)?$") || !Regex.IsMatch(numberInputTwo, "^(-?)(0|([1-9][0-9]*))(\\.[0-9]+)?$"))
                {
                    Console.WriteLine($"One or both of you inputs were not valid please try again\nInput one: {numberInputOne}\nInput two: {numberInputTwo}");
                    goto FaultyInput;
                }
                double firstNum = Convert.ToDouble(numberInputOne);
                Console.WriteLine("Input the second number");
                double secondNum = Convert.ToDouble(numberInputTwo);

                ICalculationStrategy mathStrategy = new DefaultStrategy();

                switch (typeOfMath)
                {
                case "+":
                    mathStrategy = new AdditionStrategy();
                    break;

                case "-":
                    mathStrategy = new SubtractionStrategy();
                    break;

                case "/":
                    mathStrategy = new DivisionStrategy();
                    break;

                case "*":
                    mathStrategy = new MultiplicationStrategy();
                    break;

                default:
                    break;
                }

                //Inputs are calculated
                var calculate = new Calculation(mathStrategy);

                Console.WriteLine($"The result is: {calculate.CalculationInterface(firstNum, secondNum)}");
            }
        }