Menu
Coddy logo textTech

Özet - Öğ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 (encapsulation) kavramlarını bir araya getiren bir öğrenci kayıt sistemi oluşturalım. Hassas akademik verileri korurken getter'lar, setter'lar ve hesaplanmış özellikler (computed properties) aracılığıyla kontrollü erişim sağlayan bir Student sınıfı oluşturacaksınız.

Kodunuzu iki dosya halinde 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 (public) bir String name - isimler güncellenebilir
    • Özel (private) bir List<int> _grades - ham not listesi korunmalıdır
    • id, name ve başlangıç not listesini alan bir yapıcı (constructor)
    • Kaç adet notun kaydedildiğini döndüren bir getter gradeCount
    • Tüm notların ortalamasını hesaplayan ve double olarak döndüren bir hesaplanmış getter average (hiç not yoksa 0.0 döndürün)
    • Ortalamaya göre bir harf döndüren hesaplanmış getter letterGrade: 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 ekleyin ve 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 0 döndüren bir getHighestGrade() metodu
    • Öğrencinin akademik özetini gösteren bir displayRecord() metodu
  • main.dart: Öğrenci sınıfınızı içe aktarın ve kapsüllemeyi iş başında gösterin:
    • id değeri 'STU001', ismi 'Emma' ve başlangıç notları [85, 92, 78] olan bir öğrenci oluşturun
    • displayRecord() metodunu çağırın
    • 95 değerinde bir not ekleyin
    • 150 değerinde geçersiz bir not eklemeyi deneyin
    • 88 değerinde bir not 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