Menu
Coddy logo textTech

Herausforderung: Notensortierer

Teil des Abschnitts Logik & Ablauf der Dart-Journey von Coddy — Lektion 63 von 65.

challenge icon

Aufgabe

Einfach

Erstellen Sie ein umfassendes Notenverwaltungssystem für Schüler, das Schülerdaten aus einer Map verarbeitet, bestandene Schüler filtert und diese alphabetisch organisiert. Diese Herausforderung kombiniert Map-Iteration, bedingte Filterung, Listenoperationen und Sortierung.

Ihnen wird die folgende Eingabe zur Verfügung gestellt:

  • Ein JSON-String, der eine Map von Schülernamen (Keys) und deren Testergebnissen (Values) darstellt

Der JSON-String wird wie folgt aussehen: {"Alice": 85, "Bob": 45, "Charlie": 92, "Diana": 58, "Eve": 76, "Frank": 39, "Grace": 88}

Ihre Aufgabe ist es:

  1. Den JSON-String mit geeigneten Dart-Methoden in eine Map zu parsen
  2. Eine leere Liste namens passingStudents zu erstellen, um die Namen der Schüler zu speichern, die bestanden haben
  3. Die Map zu iterieren und die Namen der Schüler, die 60 oder mehr Punkte erreicht haben, zur Liste passingStudents hinzuzufügen
  4. Die Liste passingStudents alphabetisch mit der Methode sort() zu sortieren
  5. Die Gesamtzahl der Schüler, die an der Prüfung teilgenommen haben, im exakten Format auszugeben: Total students: X
  6. Die Anzahl der Schüler, die bestanden haben, im exakten Format auszugeben: Students who passed: X
  7. Die Anzahl der Schüler, die nicht bestanden haben, im exakten Format auszugeben: Students who failed: X
  8. Die bestandenen Schüler in alphabetischer Reihenfolge auszugeben, jeden in einer neuen Zeile, im exakten Format: Passing student: [name]
  9. Falls keine Schüler bestanden haben, geben Sie aus: No students passed the exam

Ihr Programm sollte eine ordnungsgemäße Map-Iteration, bedingte Logik zum Filtern von Daten basierend auf der Bestehensgrenze von 60, Listenmanipulation und Sortieroperationen demonstrieren. Die Ausgabe muss exakt dem oben angegebenen Format entsprechen, wobei die bestandenen Schüler in alphabetischer Reihenfolge aufgeführt werden.

Probier es selbst

import 'dart:io';
import 'dart:convert';

void main() {
  // Die JSON-String-Eingabe lesen
  String? jsonString = stdin.readLineSync();
  
  // Den JSON-String in eine Map parsen
  Map<String, dynamic> studentGrades = jsonDecode(jsonString!);
  
  // Eine leere Liste erstellen, um bestandene Schüler zu speichern
  List<String> passingStudents = [];
  
  // TODO: Schreiben Sie Ihren Code unten
  // 1. Iterieren Sie durch die Map und filtern Sie Schüler, die 60 oder mehr Punkte erreicht haben
  // 2. Fügen Sie die Namen der bestandenen Schüler der Liste passingStudents hinzu
  // 3. Sortieren Sie die Liste passingStudents alphabetisch
  // 4. Berechnen und drucken Sie die erforderlichen Statistiken
  // 5. Geben Sie die bestandenen Schüler im angegebenen Format aus
  
  // Die Ergebnisse ausgeben (durch Ihre Implementierung ersetzen)
  print("Total students: ");
  print("Students who passed: ");
  print("Students who failed: ");
  // Bestandene Schüler oder die Nachricht "No students passed the exam" ausgeben
}

Alle Lektionen in Logik & Ablauf