Quantcast
Channel: Forum Pasja Informatyki - Najnowsze pytania bez odpowiedzi
Viewing all articles
Browse latest Browse all 21942

Kod do oceny - kalkulator

$
0
0
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;

namespace Calculator
{

    public partial class MainWindow : Window
    {

        float newNumber;
        float oldNumber;
        string lastAction;

        public MainWindow()
        {
            InitializeComponent();
        }

        #region Number buttons

        private void number0_Click(object sender, RoutedEventArgs e)
        {
            newNumber *= 10;
            writeNumber.Content = newNumber.ToString();
        }

        private void number1_Click(object sender, RoutedEventArgs e)
        {
            newNumber *= 10;
            newNumber += 1;
            writeNumber.Content = newNumber.ToString();
        }

        private void number2_Click(object sender, RoutedEventArgs e)
        {
            newNumber *= 10;
            newNumber += 2;
            writeNumber.Content = newNumber.ToString();
        }

        private void number3_Click(object sender, RoutedEventArgs e)
        {
            newNumber *= 10;
            newNumber += 3;
            writeNumber.Content = newNumber.ToString();
        }

        private void number4_Click(object sender, RoutedEventArgs e)
        {
            newNumber *= 10;
            newNumber += 4;
            writeNumber.Content = newNumber.ToString();
        }

        private void number5_Click(object sender, RoutedEventArgs e)
        {
            newNumber *= 10;
            newNumber += 5;
            writeNumber.Content = newNumber.ToString();
        }

        private void number6_Click(object sender, RoutedEventArgs e)
        {
            newNumber *= 10;
            newNumber += 6;
            writeNumber.Content = newNumber.ToString();
        }

        private void number7_Click(object sender, RoutedEventArgs e)
        {
            newNumber *= 10;
            newNumber += 7;
            writeNumber.Content = newNumber.ToString();
        }

        private void number8_Click(object sender, RoutedEventArgs e)
        {
            newNumber *= 10;
            newNumber += 8;
            writeNumber.Content = newNumber.ToString();
        }

        private void number9_Click(object sender, RoutedEventArgs e)
        {
            newNumber *= 10;
            newNumber += 9;
            writeNumber.Content = newNumber.ToString();
        }
        #endregion

        #region Function buttons

        private void clear_Click(object sender, RoutedEventArgs e)
        {
            newNumber = 0f;
            oldNumber = 0f;
            displayNumber();
        }

        private void plus_Click(object sender, RoutedEventArgs e)
        {
            oldNumber += newNumber;
            newNumber = 0;
            lastAction = "plus";
            sign.Content = "+";
            displayNumber();
        }

        private void minus_Click(object sender, RoutedEventArgs e)
        {
            oldNumber = oldNumber - newNumber;
            newNumber = 0;
            lastAction = "minus";
            sign.Content = "-";
            displayNumber();
        }

        private void multiply_Click(object sender, RoutedEventArgs e)
        {
            if (oldNumber != 0f)
            {
                oldNumber *= newNumber;
                newNumber = 0;

            }
            else
                oldNumber = newNumber;

            lastAction = "multiply";
            sign.Content = "*";
            displayNumber();
        }

        private void devide_Click(object sender, RoutedEventArgs e)
        {
            if (oldNumber != 0f)
            {
                oldNumber /= newNumber;
                newNumber = 0;
            }
            else
                oldNumber = newNumber;

            lastAction = "devide";
            sign.Content = "/";
            displayNumber();

        }

        private void root_Click(object sender, RoutedEventArgs e)
        {
                newNumber = (float)Math.Sqrt(newNumber);
            displayNumber();
        }

        private void squared_Click(object sender, RoutedEventArgs e)
        {
                newNumber = newNumber * newNumber;
            displayNumber();
        }

        private void equal_Click(object sender, RoutedEventArgs e)
        {

            if (lastAction == "plus") plus_Click(sender, e);
            else if (lastAction == "minus") minus_Click(sender, e);
            else if (lastAction == "multiply") multiply_Click(sender, e);
            else if (lastAction == "devide") devide_Click(sender, e);

            displayNumber();
        }
        #endregion

        #region Multiple call

        private void displayNumber()
        {
            writeNumber.Content = newNumber.ToString();
            lastNumber.Content = oldNumber.ToString();
        }

        #endregion


    }
}

Jakiś czas temu zainteresowałem się C#
Aktualnie jestem na etapie wstępu do aplikacji okienkowych (miałem już "doświadczenia" z pisaniem programów w Unity3D oraz ASP.NET MVC)
Jak oceniacie taki kod? Co można skrócić, co robię źle? Co można poprawić?


Viewing all articles
Browse latest Browse all 21942