static void Main(string[] args) { ICalculatable[] calculatables = new ICalculatable[] { new Customer(), new Student(), new Service(), new Service(), new Customer(), new Employee(), new Product() }; var sum = 0.0; for (int i = 0; i < calculatables.Length; i++) { Console.WriteLine(calculatables[i].GetAmount()); sum += calculatables[i].GetAmount(); } Console.WriteLine("------------------"); Console.WriteLine(sum); Console.ReadKey(); }
/// <summary> /// Creates a new instance of <see cref="CalculatableActivity"/>. /// </summary> /// <param name="calculatable">The calculation to perform.</param> /// <exception cref="ArgumentNullException">Thrown when <paramref name="calculatable"/> is <c>null</c>.</exception> protected CalculatableActivity(ICalculatable calculatable) { if (calculatable == null) { throw new ArgumentNullException(nameof(calculatable)); } this.calculatable = calculatable; }
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(); } }
private void ReducePrint() { Token currentToken; do { currentToken = tokenStream.GetToken(); parsingStack.Push(currentToken); } while (currentToken.Type != Token_type.SEMICOLON); parsingStack.Pop(); // Getting rid of semicolon; ICalculatable expr = ReduceExpression(); var print = new PrintExpression(expr); parsingStack.Push(print); }
private void ReduceVariable() { Token currentToken; do { currentToken = tokenStream.GetToken(); parsingStack.Push(currentToken); } while (currentToken.Type != Token_type.SEMICOLON); parsingStack.Pop(); // Getting rid of semicolon; ICalculatable expr = ReduceExpression(); string id = ((Token)parsingStack.Pop()).Id; var declaration = new VariableDeclaration(id, expr); parsingStack.Push(declaration); }
public void ChangeStrategy(ICalculatable strategy) { this.strategy = strategy; }
public CalculationEngine(ICalculatable script) { _script = script; _scriptParameters = _script.Parameters; }
public PrimitiveCalculator() { this.strategy = new AdditionStrategy(); }
public Vector(ICalculatable <T> iCalc, int n) { this._calculator = iCalc; _vector = new List <T>(n); }
public VariableReassignment(string identifier, ICalculatable expression) { id = identifier; expr = expression; Console.WriteLine("VarReassign usnoethu sanotehu snaotheus nathoesun htaoesnuth asonehtu snaoehusnaoheus nth\nsuanoehusnaoheusnaoe\thansoetuh\nanoeuhanoseu\n"); }
public Vector(ICalculatable <T> iCalc) : this(iCalc, new List <T>()) { }
public Vector(ICalculatable <T> iCalc, IEnumerable <T> collection) { this._calculator = iCalc; _vector = new List <T>(collection); }
public void Add(ICalculatable item) => items.Add(item);
public SumOperation(ICalculatable inner, double value) : base(inner) { Value = value; }
public MultiplyOperation(ICalculatable inner, double value) : base(inner) { Value = value; }
public OperationItem(ICalculatable inner) { this.inner = inner; }
public PrintExpression(ICalculatable expression) { expr = expression; }
public TestCalculatableActivity(ICalculatable calculatable) : base(calculatable) { }
public VariableDeclaration(string identifier, ICalculatable expression) { id = identifier; expr = expression; }