Пример #1
0
        public void ProcessOperationButton(string opPressed)
        {
            CalculationHistory = string.Empty;
            if (opPressed != "=")
            {
                CalculationHistory += OnScreenDisplay;
            }

            switch (opPressed)
            {
            case "MC":
                MemoryStore     = 0;
                OnScreenDisplay = MemoryStore.ToString();
                break;

            case "MR":
                Operation = opPressed;
                ProcessEqualsButton();
                break;

            case "M+":
                Operation = opPressed;
                ProcessEqualsButton();
                break;

            case "M-":
                Operation = opPressed;
                ProcessEqualsButton();
                break;

            case "=":
                ProcessEqualsButton();
                break;

            case "C":
                Clear();
                break;

            case "CE":
                ClearEntry();
                break;

            case "\u232b":
                if (OnScreenDisplay.Length > 1)
                {
                    OnScreenDisplay = OnScreenDisplay.Remove(OnScreenDisplay.Length - 1, 1);
                }
                else
                {
                    OnScreenDisplay = "0";
                }
                break;

            case ",":
                AddToCalculationHistory(opPressed);
                ProcessDecimalPoint();
                break;

            case "*":
                AddToCalculationHistory(opPressed);
                ProcessDualOperandMathOperator(opPressed);
                break;

            case "/":
                AddToCalculationHistory(opPressed);
                ProcessDualOperandMathOperator(opPressed);
                break;

            case "+":
                AddToCalculationHistory(opPressed);
                ProcessDualOperandMathOperator(opPressed);
                break;

            case "-":
                AddToCalculationHistory(opPressed);
                ProcessDualOperandMathOperator(opPressed);
                break;

            case "\u00b1":
                OnScreenDisplay     = (-double.Parse(OnScreenDisplay)).ToString();
                CalculationHistory  = string.Empty;
                CalculationHistory += OnScreenDisplay;
                break;

            case "%":
                OnScreenDisplay     = (double.Parse(OnScreenDisplay) / 100 * double.Parse(OnScreenDisplay)).ToString();
                CalculationHistory  = string.Empty;
                CalculationHistory += OnScreenDisplay;
                break;

            case "\u221a":
                OnScreenDisplay = ((decimal)Math.Sqrt(double.Parse(OnScreenDisplay))).ToString();
                AddToCalculationHistory(opPressed);
                break;

            case "^2":
                OnScreenDisplay = ((decimal)Math.Pow(double.Parse(OnScreenDisplay), 2)).ToString();
                AddToCalculationHistory(opPressed);
                break;

            case "1/x":
                if (OnScreenDisplay != "0")
                {
                    OnScreenDisplay = ((decimal)(1 / double.Parse(OnScreenDisplay))).ToString();
                }
                else
                {
                    OnScreenDisplay = "Няма деление на нула";
                }
                break;
            }
        }