示例#1
0
        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);
        }
示例#3
0
        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();
        }
示例#4
0
        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);
            }
        }