Menu
Coddy logo textTech

Generar un Reporte de Calificaciones

Parte de la sección Lógica y Flujo del Journey de PHP de Coddy — lección 38 de 68.

challenge icon

Desafío

Fácil

Recibirás una entrada: un objeto JSON que representa el libro de calificaciones de los estudiantes. El libro de calificaciones utiliza los nombres de los estudiantes como claves, y cada estudiante tiene un "id" y un arreglo de "grades" que contiene sus puntuaciones de exámenes.

Lee la entrada, convierte la cadena JSON en un arreglo de libro de calificaciones y genera un boletín de calificaciones formateado para todos los estudiantes. Para cada estudiante, muestra su nombre, ID de estudiante, todas las calificaciones individuales y su promedio redondeado a 2 decimales.

Formatea la salida exactamente de la siguiente manera:

  • Imprime ===== REPORT CARD ===== como encabezado
  • Para cada estudiante, imprime:
    • Student: [name]
    • ID: [student_id]
    • Grades: [grade1], [grade2], [grade3], ... (todas las calificaciones separadas por comas y espacios)
    • Average: [average] (redondeado a 2 decimales)
    • Una línea en blanco después de cada estudiante (excepto el último)

Formato de entrada: Una línea que contiene un objeto JSON que representa el libro de calificaciones (ejemplo: {"Alice":{"id":101,"grades":[85,92,78]},"Bob":{"id":102,"grades":[90,88,95]},"Charlie":{"id":103,"grades":[76,84,89]}})

Salida esperada: Un boletín de calificaciones formateado que muestra la información de cada estudiante con su nombre, ID, todas las calificaciones y el promedio calculado

Pruébalo tú mismo

<?php
// Leer la entrada JSON
$input = trim(fgets(STDIN));

// Convertir JSON a array
$gradebook = (array)json_decode($input, true);

// Imprimir el encabezado
echo "===== REPORT CARD =====\n";

// TODO: Escribe tu código a continuación
// Recorrer cada estudiante en el libro de calificaciones
// Para cada estudiante:
//   - Imprimir su nombre
//   - Imprimir su ID
//   - Imprimir todas sus calificaciones
//   - Calcular e imprimir su promedio (redondeado a 2 decimales)
//   - Añadir una línea en blanco entre estudiantes (excepto después del último)

?>

Todas las lecciones de Lógica y Flujo