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); }
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; } } }
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; }
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; } } }
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; } } }
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); } }
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); } } }
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(); } }
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); } } }
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()); } } }
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); } } }
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; }
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)}"); } }