İlginizi Çekebilir
C# Eğitimleri
  1. Ana Sayfa
  2. C Sharp

C# Hesap Makinesi Yapma – Proje Kodları ile

C Sharp Hesap Makinesi Projesinin, Drive 'dan indirme linki yazının sonundadır.

C# Hesap Makinesi Yapma – Proje Kodları ile
+ - 0

Merhaba, ne yazsam diye düşünürken en temek uygulamalardan biri olan C# Hesap Makinesi Yapma dersinin sitemde olmadığını fark ettim. Bu yüzden hemen bir tane hazırlayıp yayınlamak istedim. Elbette proje olarak Drive ‘dan indirme linki ile birlikte vereceğim.

C# Hesap Makinesi Yapma – Proje Kodları ile

Çok basit bir uygulama olduğundan dolayı ders kısa olacak arkadaşlar. Öncelikle tasarımın ekran görüntüsünü atayım.

C# Hesap Makinesi Yapma

Tasarım bu şekilde. İnternet üzerinde sıklıkla karşılaştıklarınızın dışında ek olarak işlem geçmişi olsun diye yapılan işlemleri bir listbox’a aldım. Kodlarımızda internette gördüğünüz projelere nazaran çook daha kısa. Çünkü burada C# Event Kullanımı Detaylı İnceleme dersimdeki, Birden Fazla Nesnede Tek Event başlığındaki işlemi de uyguladım. C sharp ta basit hesap makinesi yapalım.

C Sharp Hesap Makinesi Kodları

Kodları önce parça parça verip açıklayacağım. En altta proje indirme linki olacak… Neyi neden, nasıl yaptığımızı bilelim.

        private void btn__Click(object sender, EventArgs e)
        {
            Button btn = sender as Button;

            if (txt_islem.Text == "0" || txt_islem.Text == null || txt_islem.Text == "Uygulanamaz")
                txt_islem.Text = btn.Text;
            else
                txt_islem.Text = txt_islem.Text + btn.Text;
        }

Tek tek her sayı butonuna özel bir click eventi olmasını istemiyoruz. Tek eventte işimizi çözelim.

Burada tek bir event oluşturduk. Eventteki ilk satır, button tıklandığında, tıklanılmış olan button’u, tanımladığımız button değişkenine atamasını yapar. Bunu da parametrelerindeki sender sayesinde yapabiliyoruz.

Button’ların text özelliklerinde sayıları zaten yazdığı için, elle 1, 2, 3 yazmamıza gerek yok. Button ‘da yazan sayıları kullanıyoruz. Eğer siz böyle değil uzun yoldan gitmek isterseniz;

  • Buttona tıklayıp click eventini oluşturun.
  • Yukarıdaki kodu kopyalayın.
  • btn.Text yazan yere, ilgili butondaki sayıyı çift tırnak içinde yazın. Örn “1”, “2”

Şimdi işlemlerin (bölme, çıkarma, çarpma, toplama) button click eventine gelelim. Yukarıdaki ile aynı şekilde yaptım.

        private void btn_islemler_Click(object sender, EventArgs e)
        {
            Button btn = sender as Button;
            ilk_sayi = Convert.ToDouble(txt_islem.Text);
            txt_islem.Text = null;
            islem = btn.Text;
        }

Aynı şekilde ayrı ayrı yapmak istiyorsanız, buttonların click eventine gelip, yukarıdaki kodu yapıştırıp btn.Text yazan yere işlemin işaretini çift tırnaklar arasında yazın. Örn. “/”, “+”

NOT: Ayrı ayrı button click eventleri istiyorsanız, yukarıdaki kodu yapıştırdıktan sonra sender as Button; satırını silin.

Temizleme ( C ) ve virgül button’ları eventleri…

        private void btn_temizle_Click(object sender, EventArgs e)
        {
            txt_islem.Text = null;
            listBox1.Items.Clear();
        }
        private void btn_virgul_Click(object sender, EventArgs e)
        {
            txt_islem.Text = txt_islem.Text + ",";
        }

Şimdi geldik eşittir ( = ) butonunun eventine…

        private void btn_esittir_Click(object sender, EventArgs e)
        {
            double ikinci_sayi = 0;
            double sonuc = 0;
            ikinci_sayi = Convert.ToDouble(txt_islem.Text);
            double eski_ilk_sayi = 0;
            switch (islem)
            {
                case "+":
                    sonuc = (ilk_sayi + ikinci_sayi);
                    txt_islem.Text = Convert.ToString(sonuc);
                    eski_ilk_sayi = ilk_sayi;
                    ilk_sayi = sonuc;
                    listBox1.Items.Add(eski_ilk_sayi + " + " + ikinci_sayi + " = " + sonuc);
                    break;
                case "-":
                    sonuc = (ilk_sayi - ikinci_sayi);
                    txt_islem.Text = Convert.ToString(sonuc);

                    listBox1.Items.Add(eski_ilk_sayi + " - " + ikinci_sayi + " = " + sonuc);
                    ilk_sayi = sonuc;
                    break;
                case "*":
                    sonuc = (ilk_sayi * ikinci_sayi);
                    txt_islem.Text = Convert.ToString(sonuc);
                    eski_ilk_sayi = ilk_sayi;
                    listBox1.Items.Add(eski_ilk_sayi + " * " + ikinci_sayi + " = " + sonuc);
                    ilk_sayi = sonuc;
                    break;
                case "/":
                    if (ikinci_sayi == 0)
                    {
                        txt_islem.Text = "Uygulanamaz";
                        eski_ilk_sayi = ilk_sayi;
                        listBox1.Items.Add(eski_ilk_sayi + " / " + ikinci_sayi + " = Uygulanamaz");
                    }
                    else
                    {
                        sonuc = (ilk_sayi / ikinci_sayi);
                        txt_islem.Text = Convert.ToString(sonuc);
                        listBox1.Items.Add(eski_ilk_sayi + " / " + ikinci_sayi + " = " + sonuc);
                        ilk_sayi = sonuc;
                    }
                    break;
            }
        }

Burada İf yerine Switch Case kullandım. İsterseniz İf else ‘ye çevirebilirsiniz.

  • İlk olarak kullanacağımız değişkenleri tanımladık
  • Switch Case ile son tıklanan operatörün işlemini yapıyoruz.
  • sonuç değişkeninde eski ve yeni sayıları son seçilen işleme göre gerekli işlemi yapıyoruz.
  • Eski ilk sayı, ikinci sayı ve çıkan sonucu listbox’a yazıyoruz.
  • Bölme işlemine geldiğimizde bir sıkıntımız var. Biliyorsunuz bir sayıyı sıfıra bölemezsiniz. Yani 6/0 sonuçsuz bir işlemdir. Bu yüzden işlem bölme işlemi ise ve ikinci sayı 0 ise textbox’a “Uygulamaz” yazdırıyoruz. İkinci sayı 0 değilse işlemi yapıyoruz.

Evet arkadaşlar, C# Hesap Makinesi Yapma dersimiz bu kadardı.

C Sharp Eğitim Seti eğitimi sayfasına gitmek için tıklayınız. Derslerime özel olarak hazırladığım Github Projeme buradan ulaşabilirsiniz…  Projeyi indirmek istiyorsanız Drive linkine tıklaaybilirsiniz.

459. yazı bitti.

Bu yazıya tepkiniz ne oldu?

Yazar Hakkında

Lise Ağ Sistemleri ve Yönetimi bölümü, üniversite Bilgisayar Programcılığı bölümü Ön Lisans, Yönetim Bilişim Sistemleri Lisans öğrenimi aldım. Askerlik görevimi tamamladım. Uzmanlık alanım; C# ve SQL Programlama dilleri ile müşteri odaklı, kullanıcı dostu ERP ve CRM gibi sistemleri geliştirmektir. Ayrıca şuanda PHP ve MYSQL alanında projeler geliştirmekteyim. C++, Phyton, Xamarin, MVC gibi konuları öğrenmek ve kendimi geliştirme çabası içerisindeyim. Discord için: https://discord.gg/FBxZeHu9

Değerli yorumlarınızı bekliyorum. :)