示例#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);
        }
示例#2
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);
            }
        }