Menu
Coddy logo textTech

Generare una pagella

Fa parte della sezione Logica e flusso del percorso PHP di Coddy. Lezione 38 di 68.

challenge icon

Sfida

Facile

Riceverai un input: un oggetto JSON che rappresenta il registro dei voti degli studenti. Il registro usa i nomi degli studenti come chiavi; per ogni studente sono presenti un "id" e un array "grades" contenente i punteggi dei test.

Leggi l’input, converti la stringa JSON in un array del registro dei voti e genera una pagella formattata per tutti gli studenti. Per ogni studente, mostra il nome, l’ID dello studente, tutti i singoli voti e la media dei voti arrotondata a 2 cifre decimali.

Formatta l’output esattamente come segue:

  • Stampa ===== REPORT CARD ===== come intestazione
  • Per ogni studente, stampa:
    • Student: [name]
    • ID: [student_id]
    • Grades: [grade1], [grade2], [grade3], ... (tutti i voti separati da virgole e spazi)
    • Average: [average] (arrotondata a 2 cifre decimali)
    • Una riga vuota dopo ogni studente (tranne l’ultimo)

Formato dell’input: Una riga contenente un oggetto JSON che rappresenta il registro dei voti (esempio: {"Alice":{"id":101,"grades":[85,92,78]},"Bob":{"id":102,"grades":[90,88,95]},"Charlie":{"id":103,"grades":[76,84,89]}})

Output previsto: Una pagella formattata che mostra le informazioni di ogni studente: nome, ID, tutti i voti e la media calcolata

Provalo tu

<?php
// Leggi l'input JSON
$input = trim(fgets(STDIN));

// Converti JSON in un array
$gradebook = (array)json_decode($input, true);

// Stampa l'intestazione
echo "===== REPORT CARD =====\n";

// TODO: Scrivi il tuo codice qui sotto
// Scorri ogni studente in gradebook
// Per ogni studente:
//   - Stampa il suo nome
//   - Stampa il suo ID
//   - Stampa tutti i suoi voti
//   - Calcola e stampa la sua media (arrotondata a 2 cifre decimali)
//   - Aggiungi una riga vuota tra gli studenti (tranne dopo l'ultimo)

?>

Tutte le lezioni di Logica e flusso

Esercitati da solo: Compilatore PHP online