Menu
Coddy logo textTech

Özet - Şekil Hesaplayıcı

Coddy'nin C# Journey'sinin Nesne Yönelimli Programlama bölümünün bir parçası. Ders 30 / 70.

challenge icon

Görev

Kolay

Arayüzler ve çok biçimlilik hakkında öğrendiğin her şeyi bir araya getiren bir şekil hesaplayıcı oluşturalım. Farklı şekillerin ortak bir arayüz üzerinden aynı şekilde işlenebildiği ve çalışma zamanı çok biçimliliğinin gücünü gösteren bir sistem oluşturacaksın.

Kodunu dört dosyaya ayıracaksın:

  • IShape.cs: IShape ad alanında Shapes adlı bir arayüz tanımla. Her şekil, alanını hesaplayabilmeli ve kendisini açıklayabilmelidir. İki metot bildir: CalculateArea() döndüren double ve GetDescription() döndüren string.
  • Circle.cs: Circle ad alanında Shapes arayüzünü uygulayan bir IShape sınıfı oluştur. Bir dairenin, kurucusu aracılığıyla ayarlanan bir Radius özelliği (double) vardır. Alan formülü Math.PI * Radius * Radius şeklindedir. Açıklama "Circle with radius {Radius}" döndürmelidir.
  • Rectangle.cs: Rectangle ad alanında Shapes arayüzünü uygulayan bir IShape sınıfı oluştur. Bir dikdörtgenin, kurucusu aracılığıyla ayarlanan Width ve Height özellikleri (her ikisi de double) vardır. Alan, genişlik ile yüksekliğin çarpımına eşittir. Açıklama "Rectangle {Width}x{Height}" döndürmelidir.
  • Program.cs: Ana dosyanda, girdi değerlerini kullanarak bir daire ve bir dikdörtgen oluştur; ardından bunları IShape referanslarından oluşan bir dizide sakla. Dizi üzerinde döngü kur ve her şekil için açıklamasını, ardından iki ondalık basamağa yuvarlanmış alanını yazdır. Bu, tamamen farklı şekilleri aynı arayüz üzerinden nasıl işleyebileceğini gösterir!

Üç girdi alacaksın:

  • Daire yarıçapı (double)
  • Dikdörtgen genişliği (double)
  • Dikdörtgen yüksekliği (double)

Her şekil için çıktıyı şu formatta yazdır:

{GetDescription() result}
Area: {CalculateArea() rounded to 2 decimal places}

Örneğin girdiler 5, 4 ve 6 ise çıktı şu şekilde olmalıdır:

Circle with radius 5
Area: 78.54
Rectangle 4x6
Area: 24.00

Döngünün bir daireyle mi yoksa dikdörtgenle mi çalıştığını bilmesine gerek olmadığına dikkat et - döngü yalnızca arayüz metotlarını çağırır ve geri kalanını çok biçimliliğe bırakır. Arayüzlere programlamanın zarafeti budur!

Kendin dene

using System;
using Shapes;

class Program
{
    public static void Main(string[] args)
    {
        // Giriş değerlerini oku
        double circleRadius = Convert.ToDouble(Console.ReadLine());
        double rectWidth = Convert.ToDouble(Console.ReadLine());
        double rectHeight = Convert.ToDouble(Console.ReadLine());
        
        // TODO: Verilen yarıçap ile bir Circle nesnesi oluşturun
        
        // TODO: Verilen genişlik ve yükseklik ile bir Rectangle nesnesi oluşturun
        
        // TODO: Her iki şekli de içeren bir IShape dizisi oluşturun
        
        // TODO: Dizi boyunca döngü kurun ve her şekil için:
        // - GetDescription() kullanarak açıklamayı yazdırın
        // - "Area: " ve ardından 2 ondalık basamağa yuvarlanmış CalculateArea() değerini yazdırın
    }
}

Nesne Yönelimli Programlama bölümündeki tüm dersler

Kendi başına pratik yap: Online C# derleyicisi