Herausforderung: Notensortierer
Teil des Abschnitts Logik & Ablauf der Dart-Journey von Coddy — Lektion 63 von 65.
Aufgabe
EinfachErstellen 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:
- Den JSON-String mit geeigneten Dart-Methoden in eine Map zu parsen
- Eine leere Liste namens
passingStudentszu erstellen, um die Namen der Schüler zu speichern, die bestanden haben - Die Map zu iterieren und die Namen der Schüler, die 60 oder mehr Punkte erreicht haben, zur Liste
passingStudentshinzuzufügen - Die Liste
passingStudentsalphabetisch mit der Methodesort()zu sortieren - Die Gesamtzahl der Schüler, die an der Prüfung teilgenommen haben, im exakten Format auszugeben:
Total students: X - Die Anzahl der Schüler, die bestanden haben, im exakten Format auszugeben:
Students who passed: X - Die Anzahl der Schüler, die nicht bestanden haben, im exakten Format auszugeben:
Students who failed: X - Die bestandenen Schüler in alphabetischer Reihenfolge auszugeben, jeden in einer neuen Zeile, im exakten Format:
Passing student: [name] - 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
1Fortgeschrittene Listenmanipulation
Listen-Eigenschaften: first & lastListen-Status: isEmpty & isNotEmptyEine Liste umkehrenHinzufügen zu einer Liste: insertElemente aus Liste entfernen: removeWhereSuchen in einer Liste: indexOfEine Liste sortierenEine Liste mischenZusammenfassung – Listen-Organizer4Fortgeschrittene Map-Manipulation
Über eine Map iterierenPrüfen auf Schlüssel und WerteMap-Eigenschaften: keys & valuesBedingtes Hinzufügen: putIfAbsentEinträge aus einer Map entfernenVerschachtelte MapsRückblick – Inventar-Update7Fortgeschrittene Funktionen
Anonyme FunktionenFunktionen als Argumente übergebenClosures verstehenEinführung in die RekursionRekursive Funktion: CountdownRekursive Funktion: FakultätZusammenfassung – List Processor10Abschluss-Herausforderungen
Herausforderung: NotensortiererHerausforderung: VokalzählerHerausforderung: FizzBuzz2Funktionale Listenoperationen
Transformieren mit 'map'Filtern mit 'where''.toList()' verwendenBedingungen prüfen mit 'any'Bedingungen mit 'every'Suchen mit 'firstWhere'Zusammenfassung – Datenfilterung3Sets
Was ist ein Set?Ein Set erstellenHinzufügen und Entfernen in SetsPrüfen auf Elemente in einem SetEine Liste in ein Set umwandelnSet-VereinigungSet-SchnittmengeSet-DifferenzRückblick – Einzigartige Gästeliste