Menu
Coddy logo textTech

Gerando um Boletim

Parte da seção Lógica & Fluxo do Journey de PHP da Coddy — lição 38 de 68.

challenge icon

Desafio

Fácil

Você receberá uma entrada: um objeto JSON representando o boletim escolar dos alunos. O boletim usa os nomes dos alunos como chaves, sendo que cada aluno possui um "id" e um array de "grades" contendo suas notas de testes.

Leia a entrada, converta a string JSON em um array de boletim e gere um boletim formatado para todos os alunos. Para cada aluno, exiba seu nome, ID do aluno, todas as notas individuais e sua nota média arredondada para 2 casas decimais.

Formate a saída exatamente da seguinte forma:

  • Imprima ===== REPORT CARD ===== como o cabeçalho
  • Para cada aluno, imprima:
    • Student: [name]
    • ID: [student_id]
    • Grades: [grade1], [grade2], [grade3], ... (todas as notas separadas por vírgulas e espaços)
    • Average: [average] (arredondado para 2 casas decimais)
    • Uma linha em branco após cada aluno (exceto o último)

Formato de entrada: Uma linha contendo um objeto JSON representando o boletim (exemplo: {"Alice":{"id":101,"grades":[85,92,78]},"Bob":{"id":102,"grades":[90,88,95]},"Charlie":{"id":103,"grades":[76,84,89]}})

Saída esperada: Um boletim formatado mostrando as informações de cada aluno com seu nome, ID, todas as notas e a média calculada

Experimente você mesmo

<?php
// Lê a entrada JSON
$input = trim(fgets(STDIN));

// Converte JSON para array
$gradebook = (array)json_decode($input, true);

// Imprime o cabeçalho
echo "===== REPORT CARD =====\n";

// TODO: Escreva seu código abaixo
// Percorra cada aluno no boletim (gradebook)
// Para cada aluno:
//   - Imprima o nome dele
//   - Imprima o ID dele
//   - Imprima todas as suas notas
//   - Calcule e imprima a média (arredondada para 2 casas decimais)
//   - Adicione uma linha em branco entre os alunos (exceto após o último)

?>

Todas as lições de Lógica & Fluxo