コード例 #1
0
        /// <summary>
        /// restart aplikacji
        /// </summary>
        /// <param name="res">czy okno ma zostać zresetowane</param>
        private void restart(bool res = true)
        {
            firstNumber = true;

            text = "";

            score = 0;

            lastAction = operacja.none;

            if (res)
            {
                refreshTextLabel();
            }
        }
コード例 #2
0
        /// <summary>
        /// kliknięcie przycisku akcji typu + - itp
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void actionButton(object sender, RoutedEventArgs e)
        {
            string act = (sender as Button).Content.ToString();

            //jeżeli to C
            if (act[0] == 'C')
            {
                restart();
                return;
            }

            //żeby wynik nie można było dodawać,mnożyć etc.
            if (text.Length == 0 && lastAction != operacja.equal)
            {
                return;
            }

            if (firstNumber)
            {
                if (text.Length != 0)
                {
                    score = double.Parse(text);
                }
                else
                {
                    score = 0;
                }

                firstNumber = false;
            }
            else
            {
                var valid = sum();
                if (!valid)
                {
                    return;
                }
            }

            //ustawia ostatnią akcje
            lastAction = (operacja)act[0];

            //czyści zmienną zawierającą liczby kalkulatora
            text = "";

            //ustawia wynik jako widzialny
            textWin.Content = score.ToString();
        }
コード例 #3
0
        /// <summary>
        /// odczytywanie ostatniej operacji
        /// wykonywanie jej
        /// czyszczenie operacji
        /// wywowyłane za każdym kliknięciem przycisku akcji
        /// </summary>
        /// <returns>zwraca czy operacja przebiegła pomyślnie</returns>
        private bool sum()
        {
            double value = double.Parse(textWin.Content.ToString());

            switch (lastAction)
            {
            case operacja.addition:
                score += value;
                break;

            case operacja.subtraction:
                score += -value;
                break;

            case operacja.multiplication:
                score *= value;
                break;

            case operacja.division:
                //sprawdzanie czy nie jest dzielone przez 0
                if (value == 0)
                {
                    textWin.Content = "Nie można dzielić przez 0!";
                    restart(false);
                    return(false);
                }

                score /= value;
                break;

            case operacja.exponentiation:
                score = calc.exponentiation(score, (int)value);
                break;
            }

            //ustawiamy lastAction na pustą akcje
            lastAction = operacja.none;
            return(true);
        }