Ein Zeugnis erstellen
Teil des Abschnitts Logik & Ablauf der PHP-Journey von Coddy — Lektion 38 von 68.
Aufgabe
EinfachSie erhalten eine Eingabe: ein JSON-Objekt, das das Notenbuch der Schüler darstellt. Das Notenbuch verwendet die Namen der Schüler als Schlüssel, wobei jeder Schüler eine "id" und ein "grades"-Array mit seinen Testergebnissen hat.
Lesen Sie die Eingabe, konvertieren Sie den JSON-String in ein Notenbuch-Array und erstellen Sie ein formatiertes Zeugnis für alle Schüler. Zeigen Sie für jeden Schüler den Namen, die Schüler-ID, alle einzelnen Noten und die auf 2 Dezimalstellen gerundete Durchschnittsnote an.
Formatieren Sie die Ausgabe exakt wie folgt:
- Geben Sie
===== REPORT CARD =====als Kopfzeile aus - Geben Sie für jeden Schüler Folgendes aus:
Student: [name]ID: [student_id]Grades: [grade1], [grade2], [grade3], ...(alle Noten getrennt durch Kommas und Leerzeichen)Average: [average](gerundet auf 2 Dezimalstellen)- Eine Leerzeile nach jedem Schüler (außer nach dem letzten)
Eingabeformat: Eine Zeile, die ein JSON-Objekt enthält, das das Notenbuch darstellt (Beispiel: {"Alice":{"id":101,"grades":[85,92,78]},"Bob":{"id":102,"grades":[90,88,95]},"Charlie":{"id":103,"grades":[76,84,89]}})
Erwartete Ausgabe: Ein formatiertes Zeugnis, das die Informationen jedes Schülers mit Name, ID, allen Noten und dem berechneten Durchschnitt anzeigt
Probier es selbst
<?php
// JSON-Eingabe lesen
$input = trim(fgets(STDIN));
// JSON in Array umwandeln
$gradebook = (array)json_decode($input, true);
// Kopfzeile ausgeben
echo "===== REPORT CARD =====\n";
// TODO: Schreiben Sie Ihren Code unten
// Durchlaufen Sie jeden Schüler im Notenbuch
// Für jeden Schüler:
// - Geben Sie den Namen aus
// - Geben Sie die ID aus
// - Geben Sie alle Noten aus
// - Berechnen und geben Sie den Durchschnitt aus (auf 2 Dezimalstellen gerundet)
// - Fügen Sie eine Leerzeile zwischen den Schülern ein (außer nach dem letzten)
?>Alle Lektionen in Logik & Ablauf
1Fortgeschrittene Funktionen
Anonyme FunktionenClosures und 'use'Arrow FunctionsCallback-FunktionenVerwendung von 'call_user_func'VariablenfunktionenReferenzübergabeRekursive FunktionenRückblick: Funktions-Medley4Mehrdimensionale Arrays
Ein 2D-Array erstellenZugriff auf 2D-Array-ElementeÄndern von 2D-Array-ElementenIterieren mit verschachtelten Schleifen2D assoziative ArraysZusammenfassung: Einfache Gitter-Übung2Fortgeschrittene Array-Manipulationen
Hinzufügen mit 'array_push'Entfernen mit 'array_pop'Hinzufügen mit 'array_unshift'Entfernen mit 'array_shift'Indizierte Arrays zusammenführenAssoziative Arrays zusammenführenExtrahieren mit 'array_slice'Werte mit 'in_array'Schlüssel mit 'array_search'Rückblick: Playlist-Übung3Arrays sortieren
Indizierte Arrays aufsteigend sortierenIndizierte Arrays absteigend sortierenAssoziative Arrays nach Wert sortierenAssoziative Arrays nach Schlüssel sortierenNatürliche SortierungBenutzerdefiniertes Sortieren mit 'usort'Recap: Leaderboard-Sortierung