Menu
CoddyTech

Tekrar - Öğrenci Kayıtları

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

challenge icon

Görev

Kolay

Bu bölümde öğrendiğin tüm kapsülleme kavramlarını bir araya getiren bir öğrenci kayıt sistemi oluşturalım. Getter'lar, setter'lar ve hesaplanan özellikler aracılığıyla kontrollü erişim sağlarken hassas akademik verileri gerektiği gibi koruyan bir Student sınıfı oluşturacaksın.

Kodunu iki dosyaya ayıracaksın:

  • student.dart: Akademik kayıtları uygun kapsüllemeyle yöneten bir Student sınıfı tanımla:
    • Bir final String id — öğrenci kimliği oluşturulduktan sonra asla değişmemelidir
    • Herkese açık bir String name — isimler güncellenebilir
    • Özel bir List<int> _grades — ham not listesi korunmalıdır
    • id, name ve başlangıç not listesini alan bir kurucu
    • Kaydedilmiş not sayısını döndüren bir gradeCount getter'ı
    • Tüm notların ortalamasını hesaplayıp double olarak döndüren bir hesaplanan average getter'ı (hiç not yoksa 0.0 döndür)
    • Ortalamaya göre bir harf döndüren hesaplanan bir letterGrade getter'ı: 90 ve üzeri için 'A', 80-89 için 'B', 70-79 için 'C', 60-69 için 'D' ve 60'ın altı için 'F'
    • Yalnızca 0 ile 100 (dahil) arasındaki notları kabul eden bir addGrade(int grade) yöntemi. Geçerliyse notu ekle ve Grade [grade] added for [name] yazdır. Geçersizse Invalid grade: [grade] yazdır
    • En yüksek notu, hiç not yoksa 0 değerini döndüren bir getHighestGrade() yöntemi
    • Öğrencinin akademik özetini gösteren bir displayRecord() yöntemi
  • main.dart: Öğrenci sınıfını içe aktar ve kapsüllemenin işleyişini göster:
    • Kimliği 'STU001', adı 'Emma' ve başlangıç notları [85, 92, 78] olan bir öğrenci oluştur
    • displayRecord() çağır
    • 95 notunu ekle
    • Geçersiz olan 150 notunu eklemeyi dene
    • 88 notunu ekle
    • displayRecord() çağır
    • Highest grade: [highest] yazdır

displayRecord() yöntemi şu biçimde yazdırmalıdır:

===== Student Record =====
ID: [id]
Name: [name]
Grades Recorded: [gradeCount]
Average: [average]
Letter Grade: [letterGrade]

Beklenen çıktı:

===== Student Record =====
ID: STU001
Name: Emma
Grades Recorded: 3
Average: 85.0
Letter Grade: B
Grade 95 added for Emma
Invalid grade: 150
Grade 88 added for Emma
===== Student Record =====
ID: STU001
Name: Emma
Grades Recorded: 5
Average: 87.6
Letter Grade: B
Highest grade: 95

Kendin dene

import 'student.dart';

void main() {
  // TODO: id değeri 'STU001', adı 'Emma' ve başlangıç notları [85, 92, 78] olan bir öğrenci oluştur
  
  // TODO: displayRecord() fonksiyonunu çağır
  
  // TODO: 95 notunu ekle
  
  // TODO: Geçersiz olan 150 notunu eklemeyi dene
  
  // TODO: 88 notunu ekle
  
  // TODO: displayRecord() fonksiyonunu çağır
  
  // TODO: "Highest grade: [highest]" ifadesini yazdır
}

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

Kendi başına pratik yap: Online Dart derleyicisi