Menu
Coddy logo textTech

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ğiniz tüm kapsülleme kavramlarını bir araya getiren bir öğrenci kayıt sistemi oluşturalım. Hassas akademik verileri uygun şekilde korurken getter'lar, setter'lar ve hesaplanan özellikler aracılığıyla kontrollü erişim sağlayan bir Student sınıfı oluşturacaksınız.

Kodunuzu iki dosyada düzenleyeceksiniz:

  • student.dart: Akademik kayıtları uygun kapsülleme ile yöneten bir Student sınıfı tanımlayın:
    • Bir final String id — öğrenci kimliği oluşturulduktan sonra asla değişmemelidir
    • Genel bir String name — isimler güncellenebilir
    • Özel bir List<int> _grades — ham not listesi korunmalıdır
    • Kimliği, ismi ve başlangıç notları listesini alan bir kurucu
    • Kaydedilen notların kaç tane olduğunu döndüren bir gradeCount getter'ı
    • Tüm notların ortalamasını hesaplayıp average olarak döndüren hesaplanmış bir double getter'ı (hiç not yoksa 0.0 döndürün)
    • Ortalamaya göre bir harf döndüren hesaplanmış bir letterGrade getter'ı: 90+ 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) metodu. Geçerliyse notu ekleyip Grade [grade] added for [name] yazdırın. Geçersizse Invalid grade: [grade] yazdırın
    • En yüksek notu döndüren veya hiç not yoksa getHighestGrade() döndüren bir 0 metodu
    • Öğrencinin akademik özetini gösteren bir displayRecord() metodu
  • main.dart: Öğrenci sınıfınızı içe aktarın ve kapsüllemenin uygulamadaki kullanımını gösterin:
    • Kimliği 'STU001', ismi 'Emma' ve başlangıç notları [85, 92, 78] olan bir öğrenci oluşturun
    • displayRecord() metodunu çağırın
    • 95 notunu ekleyin
    • 150 değerindeki geçersiz bir notu eklemeyi deneyin
    • 88 notunu ekleyin
    • displayRecord() metodunu çağırın
    • Highest grade: [highest] yazdırın

displayRecord() metodu şu formatta 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: 'STU001' id'li, 'Emma' isimli ve [85, 92, 78] başlangıç notlarına sahip bir öğrenci oluşturun
  
  // TODO: displayRecord() fonksiyonunu çağırın
  
  // TODO: 95 notunu ekleyin
  
  // TODO: 150 şeklinde geçersiz bir not eklemeyi deneyin
  
  // TODO: 88 notunu ekleyin
  
  // TODO: displayRecord() fonksiyonunu çağırın
  
  // TODO: "Highest grade: [highest]" ifadesini yazdırın
}

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

Kendi başına pratik yap: Online Dart derleyicisi