C# Hesap Makinesi

C# ile hesap makinesi yapmak çok kolaydır. Aşağıdaki hesap makinesi uygulaması Visual Studio 2008 kullanılarak C# (.Net Framework 2.0) ile yapılmış basit bir Windows Forms uygulamasıdır.

Aşağıda uygulama tasarım ve çalışma görüntüleri bulunmaktadır:

Hesap Makinesi Uygulaması Tasarımı

Hesap Makinesi Uygulaması

Hesap makinesi uygulamasında dört işlem (toplama, çıkarma, çarpma ve bölme) ve işaret değiştirme işlemleri vardır. 0 ile 9 arasındaki rakam butonları buttonNum_Click fonksiyonu ile, işlem butonları ise buttonIslem_Click fonksiyonu ile tanımlanmıştır. Bu tanımlama ile benzer işi yapan butonlar için ayrı ayrı kod yazımından kurtulunmaktadır. Diğer butonların kendi fonksiyonları vardır.

Aşağıda uygulamanın C# kodları görünmektedir:

using System;
using System.Collections.Generic;
using System.Windows.Forms;
using System.Globalization;

namespace HMakinesi
{
    public partial class Form1 : Form
    {
        enum Islem { IYok, ITop, ICik, ICarp, IBol };
        Islem islem;
        char ds;
        float num1, num2;
        bool nokta;

        public Form1()
        {
            InitializeComponent();
        }

        private void buttonNum_Click(object sender, EventArgs e)
        {
            // 0 ile 9 arasındaki rakam butonlarının fonksiyonu
            Button button = sender as Button;
            if (textBox1.Text == "0")
            { textBox1.Text = button.Text; }
            else
            { textBox1.Text = textBox1.Text + button.Text; }
        }

        private void buttonNokta_Click(object sender, EventArgs e)
        {
            // Küsürat butonu
            Button button = sender as Button;
            if (!nokta)
            {
                if (textBox1.Text == "0" && button.Text != ds.ToString())
                { textBox1.Text = button.Text; }
                else
                { textBox1.Text = textBox1.Text + button.Text; }
            }
            nokta = true;
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            // Windows'un küsüratlar için hangi karakter kullandığı okunuyor
            // Bu ayar bazı ülkeler için nokta iken ülkemiz için virgül
            ds = Convert.ToChar(CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator);
            buttonNokta.Text = ds.ToString(); 
            islem = Islem.IYok;
            nokta = false;
        }

        private void buttonC_Click(object sender, EventArgs e)
        {
            // Sıfırlama butonu
            textBox1.Text = "0"; nokta = false;
        }

        private void buttonIslem_Click(object sender, EventArgs e)
        {
            // Matematiksel işlem butonlarının fonksiyonu
            // Fonksiyonda tuşa göre işlem belirleniyor
            num1 = System.Convert.ToSingle(textBox1.Text);
            Button button = sender as Button;
            if (button.Text == "+") { islem = Islem.ITop; }
            else if (button.Text == "-") { islem = Islem.ICik; }
            else if (button.Text == "/") { islem = Islem.IBol; }
            else if (button.Text == "x") { islem = Islem.ICarp; }
            else islem = Islem.IYok;
            textBox1.Text = "0"; 
            nokta = false;
        }

        private void buttonEsittir_Click(object sender, EventArgs e)
        {
            // Eşittir işlem butonu 
            // Bu fonksiyonda sonuç hesaplanıyor 
            if (islem!=Islem.IYok) {
             float sonuc=0;
             num2=System.Convert.ToSingle(textBox1.Text);
             switch(islem)
             { case Islem.ITop: sonuc = num1 + num2; break;
               case Islem.ICik: sonuc = num1 - num2; break;
               case Islem.ICarp: sonuc = num1 * num2; break;
               case Islem.IBol: 
                   if (num2==0) {MessageBox.Show("Sıfıra bölme hatası", "Hata");}
                   else sonuc = num1 / num2; 
                   break;
             }
             textBox1.Text = sonuc.ToString("F"); 
             nokta = false;
         }
         }

        private void buttonIsaretDegis_Click(object sender, EventArgs e)
        {
            // İşaret değiştirme butonu
            num2 = System.Convert.ToSingle(textBox1.Text);
            num2 *= -1;
            textBox1.Text = num2.ToString("F"); 
        }
    }
}

Uygulamanın çalışabilmesi için en az .Net Framework 2.0 yüklü 32 bit Windows işletim sistemi gereklidir.

Burada bulunan kodu ve uygulamayı dosya halinde kaynaklar sayfasından indirmek için tıklayınız. Aynı sayfada daha fazla kod ve uygulamaya ulaşabilirsiniz.

Reklamlar

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Google+ fotoğrafı

Google+ hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.