static void Main(string[] args) { stack = new Stack(); adder = new Operators.Adder(); subtractor = new Operators.Subtructor(); multiplier = new Operators.Multiplier(); divider = new Operators.Divider(); resultPresenter = new Operators.ResultPresenter(); CalculatorApp calculator = new CalculatorApp(stack, adder, subtractor, divider, multiplier, resultPresenter); }
static void Main(string[] args) { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); stack = new Stack(); adder = new Operators.Adder(); subtractor = new Operators.Subtractor(); multiplier = new Operators.Multiplier(); divider = new Operators.Divider(); resultPresenter = new Operators.ResultPresenter(); operand = new Operand.Operand(); calc = new CalculatorGUI.CalculatorGUI(stack, adder, subtractor, divider, multiplier, resultPresenter, operand); Application.Run(calc); }
public CalculatorGUI(Stack stack, Operators.Adder adder, Operators.Subtractor subtractor, Operators.Divider divider, Operators.Multiplier multiplier, Operators.ResultPresenter resultPresenter, Operand.Operand operand) { this.stack = stack; this.adder = adder; this.subtractor = subtractor; this.multiplier = multiplier; this.divider = divider; this.operand = operand; this.Text = "RPN Calculator"; this.MaximizeBox = false; this.MinimizeBox = false; this.FormBorderStyle = FormBorderStyle.FixedSingle; InitializeComponent(); }
public CalculatorApp(Stack stack, Operators.Adder adder, Operators.Subtructor subtructor, Operators.Divider divider, Operators.Multiplier multiplier, Operators.ResultPresenter resultPresenter) { // console version Console.WriteLine("Welcome to RPN Calculator in C sharp.\nPlease enter a string in the manner shown:\n1 (Enter) 5 (Enter) + (Enter)."); Console.WriteLine("To finish your expression just type EXT."); while ((expression = Console.ReadLine()) != "EXT") { switch (expression) { case "+": adder.operate(stack); break; case "-": subtructor.operate(stack); break; case "/": divider.operate(stack); break; case "*": multiplier.operate(stack); break; default: if (int.TryParse(expression, out number)) { stack.Push(number); } else { continue; } break; } } Console.WriteLine("The result is:\t"); foreach (Object element in stack) // must be one if correct { Console.Write(element); } }