Menu
Coddy logo textTech

Rückblick – Schülerdatensätze

Teil des Abschnitts Objektorientierte Programmierung der Dart-Journey von Coddy — Lektion 35 von 110.

challenge icon

Aufgabe

Einfach

Lassen Sie uns ein System für Schülerdatensätze erstellen, das alle Konzepte der Kapselung zusammenführt, die Sie in diesem Kapitel gelernt haben. Sie werden eine Student-Klasse erstellen, die sensible akademische Daten ordnungsgemäß schützt und gleichzeitig kontrollierten Zugriff über Getter, Setter und berechnete Eigenschaften bietet.

Sie werden Ihren Code in zwei Dateien organisieren:

  • student.dart: Definieren Sie eine Student-Klasse, die akademische Datensätze mit ordnungsgemäßer Kapselung verwaltet:
    • Ein final String id - die Schüler-ID sollte sich nach der Erstellung niemals ändern
    • Ein öffentlicher String name - Namen können aktualisiert werden
    • Eine private List<int> _grades - die rohe Notenliste sollte geschützt sein
    • Ein Konstruktor, der die id, den Namen und eine initiale Liste von Noten entgegennimmt
    • Ein Getter gradeCount, der zurückgibt, wie viele Noten aufgezeichnet wurden
    • Ein berechneter Getter average, der den Durchschnitt aller Noten berechnet und als double zurückgibt (geben Sie 0.0 zurück, wenn keine Noten vorhanden sind)
    • Ein berechneter Getter letterGrade, der eine Note als Buchstaben basierend auf dem Durchschnitt zurückgibt: 'A' für 90+, 'B' für 80-89, 'C' für 70-79, 'D' für 60-69 und 'F' für unter 60
    • Eine Methode addGrade(int grade), die nur Noten zwischen 0 und 100 (einschließlich) akzeptiert. Wenn gültig, fügen Sie die Note hinzu und geben Sie Grade [grade] added for [name] aus. Wenn ungültig, geben Sie Invalid grade: [grade] aus
    • Eine Methode getHighestGrade(), die die höchste Note zurückgibt, oder 0, wenn keine Noten vorhanden sind
    • Eine Methode displayRecord(), die die akademische Zusammenfassung des Schülers anzeigt
  • main.dart: Importieren Sie Ihre Student-Klasse und demonstrieren Sie die Kapselung in Aktion:
    • Erstellen Sie einen Schüler mit der id 'STU001', dem Namen 'Emma' und den initialen Noten [85, 92, 78]
    • Rufen Sie displayRecord() auf
    • Fügen Sie eine Note von 95 hinzu
    • Versuchen Sie, eine ungültige Note von 150 hinzuzufügen
    • Fügen Sie eine Note von 88 hinzu
    • Rufen Sie displayRecord() auf
    • Geben Sie Highest grade: [highest] aus

Die Methode displayRecord() sollte in diesem Format drucken:

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

Erwartete Ausgabe:

===== 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

Probier es selbst

import 'student.dart';

void main() {
  // TODO: Erstelle einen Studenten mit der ID 'STU001', dem Namen 'Emma' und den Anfangsnoten [85, 92, 78]
  
  // TODO: Rufe displayRecord() auf
  
  // TODO: Füge eine Note von 95 hinzu
  
  // TODO: Versuche, eine ungültige Note von 150 hinzuzufügen
  
  // TODO: Füge eine Note von 88 hinzu
  
  // TODO: Rufe displayRecord() auf
  
  // TODO: Gib "Highest grade: [highest]" aus
}

Alle Lektionen in Objektorientierte Programmierung