Menu
Coddy logo textTech

Özet - Öğrenci Kayıtları

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

challenge icon

Görev

Kolay

Bu bölümde öğrendiğin tüm kapsülleme tekniklerini bir araya getiren bir öğrenci kayıt sistemi oluşturalım. Öğrenci verilerinin uygun şekilde korunduğu, notların doğrulandığı ve belirli bilgilerin oluşturulduktan sonra değiştirilemez kaldığı güvenli bir sistem oluşturacaksın.

Kodunu iki dosya arasında düzenleyeceksin:

  • Student.cs: Uygun kapsüllemeyi gösteren bir Student sınıfını Records ad alanında oluştur. Öğrencinin şunlara sahip olması gerekir:
    • Herkese açık olan, ancak yalnızca oluşturulurken ayarlanabilen bir readonly alanı Name (string)
    • Öğrenci kimliği için özel bir readonly alan (string) — bu alana dışarıdan hiçbir zaman doğrudan erişilememelidir
    • Notları depolamak için özel bir liste (tamsayılar)
    • Tüm notların ortalamasını hesaplayıp döndüren veya hiç not yoksa Average döndüren, herkese açık salt okunur bir özellik 0
    • Yalnızca 0 ile 100 (dahil) arasındaki notları kabul eden herkese açık bir yöntem AddGrade(int grade) — geçersiz notlar sessizce yok sayılmalıdır
    • Kaydedilmiş kaç geçerli not olduğunu döndüren herkese açık bir yöntem GetGradeCount()
    • GetStudentInfo() biçiminde bir dize döndüren herkese açık bir yöntem "{Name} (ID: {last 4 characters of student ID})" — kimliğin yalnızca maskelenmiş bir sürümünü nasıl gösterdiğine dikkat et!
    Yapıcı, adı ve öğrenci kimliğini bu sırayla kabul etmelidir.
  • Program.cs: Ana dosyanda bir öğrenci oluştur ve kapsüllemenin nasıl çalıştığını göstermek için birkaç not ekle. Geçerli notların kabul edildiğini, geçersiz notların reddedildiğini ve ortalamanın doğru hesaplandığını göstereceksin.

Beş girdi alacaksın:

  • Öğrenci adı
  • Öğrenci kimliği (en az 4 karakter)
  • Eklenilecek ilk not (tamsayı)
  • Eklenilecek ikinci not (tamsayı, -5 veya 150 gibi geçersiz olabilir)
  • Eklenilecek üçüncü not (tamsayı)

Çıktıyı şu biçimde yazdır:

{GetStudentInfo() result}
Grades recorded: {GetGradeCount()}
Average: {Average}

Örneğin girdiler Emma Wilson, STU12345, 85, 150 ve 90 ise çıktı şu şekilde olmalıdır:

Emma Wilson (ID: 2345)
Grades recorded: 2
Average: 87.5

150 değerindeki geçersiz notun sessizce reddedildiğine ve bu nedenle yalnızca iki notun kaydedildiğine dikkat et. Öğrenci kimliği korunur — dış kod, kimliğin tamamını hiçbir zaman göremez; yalnızca GetStudentInfo() aracılığıyla maskelenmiş sürümü görebilir. Ad okunabilir ancak değiştirilemezdir. Sağlam ve iyi korunan bir sınıf oluşturmak için kapsüllemenin birlikte çalışması işte budur!

Kendin dene

using System;
using Records;

class Program
{
    public static void Main(string[] args)
    {
        // Girdileri oku
        string name = Console.ReadLine();
        string studentId = Console.ReadLine();
        int grade1 = Convert.ToInt32(Console.ReadLine());
        int grade2 = Convert.ToInt32(Console.ReadLine());
        int grade3 = Convert.ToInt32(Console.ReadLine());

        // TODO: name ve studentId ile bir Student nesnesi oluşturun

        // TODO: AddGrade metodunu kullanarak her üç notu da ekleyin

        // TODO: Çıktıyı istenen formatta yazdırın:
        // {GetStudentInfo() sonucu}
        // Grades recorded: {GetGradeCount()}
        // Average: {Average}
    }
}

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

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