Generowanie świadectwa
Część sekcji Logika i przepływ programu ścieżki PHP w Coddy. Lekcja 38 z 68.
Wyzwanie
ŁatwyOtrzymasz jedno wejście: obiekt JSON reprezentujący dziennik ocen uczniów. W dzienniku ocen jako klucze używane są imiona i nazwiska uczniów, a każdy uczeń ma "id" oraz tablicę "grades" zawierającą wyniki testów.
Odczytaj wejście, przekształć ciąg JSON w tablicę dziennika ocen i wygeneruj sformatowaną kartę ocen dla wszystkich uczniów. Dla każdego ucznia wyświetl jego imię i nazwisko, identyfikator ucznia, wszystkie poszczególne oceny oraz średnią ocen zaokrągloną do 2 miejsc po przecinku.
Sformatuj wyjście dokładnie w następujący sposób:
- Wypisz
===== REPORT CARD =====jako nagłówek - Dla każdego ucznia wypisz:
Student: [name]ID: [student_id]Grades: [grade1], [grade2], [grade3], ...(wszystkie oceny oddzielone przecinkami i spacjami)Average: [average](zaokrąglona do 2 miejsc po przecinku)- Pusty wiersz po każdym uczniu (z wyjątkiem ostatniego)
Format wejścia: Jeden wiersz zawierający obiekt JSON reprezentujący dziennik ocen (przykład: {"Alice":{"id":101,"grades":[85,92,78]},"Bob":{"id":102,"grades":[90,88,95]},"Charlie":{"id":103,"grades":[76,84,89]}})
Oczekiwane wyjście: Sformatowana karta ocen zawierająca informacje o każdym uczniu: imię i nazwisko, identyfikator, wszystkie oceny oraz obliczoną średnią
Spróbuj swoich sił
<?php
// Odczytaj dane wejściowe JSON
$input = trim(fgets(STDIN));
// Przekształć JSON w tablicę
$gradebook = (array)json_decode($input, true);
// Wypisz nagłówek
echo "===== REPORT CARD =====\n";
// TODO: Napisz swój kod poniżej
// Przejdź przez każdego ucznia w gradebook
// Dla każdego ucznia:
// - Wypisz jego imię
// - Wypisz jego ID
// - Wypisz wszystkie jego oceny
// - Oblicz i wypisz jego średnią (zaokrągloną do 2 miejsc po przecinku)
// - Dodaj pusty wiersz między uczniami (z wyjątkiem ostatniego)
?>Wszystkie lekcje w sekcji Logika i przepływ programu
1Zaawansowane funkcje
Funkcje anonimoweDomknięcia i „use”Funkcje strzałkoweFunkcje zwrotneUżywanie „call_user_func”Funkcje zmiennePrzekazywanie przez referencjęFunkcje rekurencyjnePowtórka: przegląd funkcji4Tablice wielowymiarowe
Tworzenie tablicy 2DDostęp do elementów tablicy 2DModyfikowanie elementów tablicy 2DIterowanie z użyciem zagnieżdżonych pętliAsocjacyjne tablice 2DPodsumowanie: ćwiczenie z prostą siatką2Zaawansowane operacje na tablicach
Dodawanie za pomocą 'array_push'Usuwanie za pomocą 'array_pop'Dodawanie za pomocą 'array_unshift'Usuwanie za pomocą 'array_shift'Łączenie tablic indeksowanychŁączenie tablic asocjacyjnychWyodrębnianie za pomocą 'array_slice'Wyszukiwanie wartości za pomocą 'in_array'Wyszukiwanie kluczy za pomocą 'array_search'Podsumowanie: ćwiczenie z playlistą5Dziennik ocen uczniów
Konfiguracja projektu: struktura danychDodawanie nowego uczniaDodawanie oceny uczniowiObliczanie średniej uczniaWyszukiwanie ucznia z najwyższą ocenąGenerowanie świadectwa3Sortowanie tablic
Sortowanie tablic indeksowanych rosnącoSortowanie tablic indeksowanych malejącoSortowanie tablic asocjacyjnych według wartościSortowanie tablic asocjacyjnych według kluczaSortowanie w kolejności naturalnejSortowanie niestandardowe za pomocą 'usort'Podsumowanie: sortowanie tabeli wynikówPoćwicz samodzielnie: Kompilator PHP online