Umut D.

Umut D.

Powered by Jekyll & Github

  • Programlar

  • alan-cevre-hesaplayici

    Lise ve üniversitelerdeki bilgisayar ve onunla ilgili bölümlerde Nesneye Yönelik Programlama derslerinde (Java, C++, C# hiç fark etmez) mutlaka örnek verilen bir konu alan hesaplama. Özellikle metotlar konularında fazlasıyla kolaylaşan bu hesap türü ile ilgili basit bir program yazmak istedim güneşli çarşamba gününde.

    Soyut sınıf (Abstract Class) ve Polymorphism (Çok Biçimlilik) ile alan ve çevre hesaplamalarının üstesinden gelmek ve işimi kolaylaştırmak aklımdan geçti. Çok biçimlilik ile sahiden işler çok kolaylaştı. Tabi bu arada dönüştürme işlemlerim kolaylaşsın diye bir tane genişleme metodu eklemeyi ihmal etmedim. İşte bunlar hep tembellik. Bu nedenle işlemlerin üstünde görülen ToDouble(true) metodu ben buradayım diye bağırıyor. Her şey bir yana özellikle ödev için buraya gelenlere fikir verecek cinsten bir çalışma oldu. Hayrını görün. Yaptım Oldu. Büyükşehir çalışıyor. Sakın ola program kodları çok uzamış goygoyu yapmayın. Programa ileride yeni şekil ekleyince görürüm sizi. Hiç efor sarf etmeden eklemeyi yapınca anlarsınız Çok Biçimliliğin gücünü. Programın o çok ama çok bilindik özelliklerine gelecek olursak;

    • Üçgenin alan, kare, dikdörtgen ve çemberin alan ve çevre hesaplarını yapabilme.
    Alan Çevre Hesaplayıcı
    Versiyon Durum
    Alan Çevre Hesaplayıcı (Proje)
    Lisans Arşiv
    MD5: db9bb3f02ba88b2bf72a9b39c31b459b MD5: ffbd4d7c2598e4aca1505808ab10da58
    Boyut: 46 KB Boyut: 259 KB
    Gereksinimler: .Net Framework 4.0 Gereksinimler: .Net Framework 4.0
    Platform: Microsoft Windows Programlama Dili: C#
    İndir: Link İndir: Link

    Ek : Hesaplamaların nasıl yapıldığını görmeye gelenler için Geometri.cs ve bu sınıftan kalıtım alınan sınıflardaki kodlar:

    using System.Text;
    
    namespace Alan_Cevre_Hesaplayici.Geometri
    {
        public abstract class Geometri
        {
            public double Alan { get; set; }
            public double Cevre { get; set; }
            public StringBuilder Bilgi { get; set; } = new StringBuilder();
    
            protected abstract void Formul();
            public abstract StringBuilder Sonuc();
        }
    }
    
    using System;
    using System.Text;
    
    namespace Alan_Cevre_Hesaplayici.Geometri
    {
        public class Cember : Geometri
        {
            private readonly double _yaricap;
    
            public Cember(string yaricap)
            {
                _yaricap = yaricap.ToDouble();
            }
    
            protected override void Formul()
            {
                Cevre = 2 * Math.PI * _yaricap;
                Alan = Math.PI * Math.Pow(_yaricap, 2);
            }
    
            public override StringBuilder Sonuc()
            {
                Formul();
    
                Bilgi.AppendLine(@"Çemberin Alanı (cm) = " + Alan.ToString("##.####"));
                Bilgi.Append(@"Çemberin cevresi (cm) = " + Cevre.ToString("##.####"));
                return Bilgi;
            }
        }
    }
    
    using System.Text;
    
    namespace Alan_Cevre_Hesaplayici.Geometri
    {
        public class Dikdortgen : Geometri
        {
            private readonly double _kisaKenar;
            private readonly double _uzunKenar;
    
            public Dikdortgen(string kisaKenar, string uzunKenar)
            {
                _kisaKenar = kisaKenar.ToDouble();
                _uzunKenar = uzunKenar.ToDouble();
            }
    
            protected override void Formul()
            {
                Cevre = (_kisaKenar + _uzunKenar) * 2;
                Alan = _kisaKenar * _uzunKenar;
            }
    
            public override StringBuilder Sonuc()
            {
                Formul();
    
                Bilgi.AppendLine(@"Dikdörtgenin Alanı (cm) = " + Alan);
                Bilgi.Append(@"Dikdörtgenin Çevresi (cm) = " + Cevre);
                return Bilgi;
            }
        }
    }
    
    using System;
    using System.Text;
    
    namespace Alan_Cevre_Hesaplayici.Geometri
    {
        public class Kare : Geometri
        {
            private readonly double _kareKenar;
    
            public Kare(string kareKenar)
            {
                _kareKenar = kareKenar.ToDouble();
            }
    
            protected override void Formul()
            {
                Cevre = _kareKenar * 4;
                Alan = Math.Pow(_kareKenar, 2);
            }
    
            public override StringBuilder Sonuc()
            {
                Formul();
    
                Bilgi.AppendLine(@"Karenin Alanı (cm) = " + Alan);
                Bilgi.Append(@"Karenin Çevresi (cm) = " + Cevre);
                return Bilgi;
            }
        }
    }
    
    using System.Text;
    
    namespace Alan_Cevre_Hesaplayici.Geometri
    {
        public class Ucgen : Geometri
        {
            private readonly double _yukseklik;
            private readonly double _ucgenKenar;
    
            public Ucgen(string ucgenKenar, string yukseklik)
            {
                _ucgenKenar = ucgenKenar.ToDouble();
                _yukseklik = yukseklik.ToDouble();
            }
    
            protected override void Formul()
            {
                Alan = _ucgenKenar * _yukseklik / 2;
            }
    
            public override StringBuilder Sonuc()
            {
                Formul();
    
                Bilgi.Append(@"Üçgenin Alanı (cm) = " + Alan);
                return Bilgi;
            }
        }
    }