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; } } }
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); }
public IStrategy CreateStrategy(char @operator) { IStrategy strategy = null; switch (@operator) { case '+': strategy = new AdditionStrategy(); break; case '-': strategy = new SubtractionStrategy(); break; case '*': strategy = new MultiplyStrategy(); break; case '/': strategy = new DevideStrategy(); 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; }
public PrimitiveCalculator(AdditionStrategy additionStrategy, SubtractionStrategy subtractionStrategy, MultiplyStrategy multiplyStrategy, DivideStrategy divideStrategy) { this.additionStrategy = additionStrategy; this.subtractionStrategy = subtractionStrategy; this.multiplyStrategy = multiplyStrategy; this.divideStrategy = divideStrategy; this.additionValue = additionStrategy; }
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; } } }
public PrimitiveCalculator() { ICalculationStrategy addition = new AdditionStrategy(); this.calculatorStrategies = new List <ICalculationStrategy> { addition, new SubtractionStrategy(), new MultiplicationStrategy(), new DivisionStrategy() }; this.currentStrategy = addition; }
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); } } }
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 operand = tokens[1][0]; ICalculationStrategy strategy = null; switch (operand) { case '+': strategy = new AdditionStrategy(); break; case '-': strategy = new SubtractionStrategy(); break; case '*': strategy = new MultyplicationStrategy(); break; case '/': strategy = new DivideStrategy(); break; } if (strategy == null) { throw new InvalidOperationException("Invalid Mode!"); } calculator.ChangeStrategy(strategy); } else { int first = int.Parse(firstArg); int second = int.Parse(tokens[1]); int result = calculator.PerformCalculation(first, second); 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() { 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); } } }
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); } } }
static void Main() { PrimitiveCalculator calculator = new PrimitiveCalculator(); string input = Console.ReadLine(); while (input != "End") { string[] commandTokens = input.Split(' ', StringSplitOptions.RemoveEmptyEntries); if (commandTokens[0] == "mode") { ICalculatable strategy = null; switch (commandTokens[1]) { case "+": strategy = new AdditionStrategy(); break; case "-": strategy = new SubtractionStrategy(); break; case "*": strategy = new MultiplyStrategy(); break; case "/": strategy = new DivisionStrategy(); break; } calculator.ChangeStrategy(strategy); } else { int leftOperand = int.Parse(commandTokens[0]); int rightOperand = int.Parse(commandTokens[1]); int result = calculator.PerformCalculation(leftOperand, rightOperand); Console.WriteLine(result); } input = Console.ReadLine(); } }
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); } } }
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()); } } }
public void Run() { string command; while ((command = Console.ReadLine()) != "End") { string[] data = command.Split(); if (data[0] == "mode") { char calculationType = data[1][0]; ICalculationStrategy strategy = null; switch (calculationType) { case '-': strategy = new SubtractionStrategy(); break; case '+': strategy = new AdditionStrategy(); break; case '*': strategy = new MultiplyingStrategy(); break; case '/': strategy = new DivisionStrategy(); break; } this.calculator.ChangeStrategy(strategy); } else { int firstOperand = int.Parse(data[0]); int secondOperand = int.Parse(data[1]); int result = calculator.PerformCalculation(firstOperand, secondOperand); Console.WriteLine(result); } } }
public void Run() { string input; while ((input = Console.ReadLine()) != "End") { string[] inputTokens = input.Split(); if (inputTokens[0] == "mode") { char @operator = inputTokens[1][0]; IStrategy strategy = null; switch (@operator) { case '+': strategy = new AdditionStrategy(); break; case '-': strategy = new SubtractionStrategy(); break; case '*': strategy = new MultiplyingStrategy(); break; case '/': strategy = new DividingStrategy(); break; } this.calculator.ChangeStrategy(strategy); } else { int firstOperand = int.Parse(inputTokens[0]); int secondOperand = int.Parse(inputTokens[1]); Console.WriteLine(this.calculator.PerformCalculation(firstOperand, secondOperand)); } } }
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)}"); } }
public PrimitiveCalculator() { this.additionStrategy = new AdditionStrategy(); this.subtractionStrategy = new SubtractionStrategy(); this.isAddition = true; }