Générer un bulletin de notes
Fait partie de la section Logique & Flux du Journey PHP de Coddy — leçon 38 sur 68.
Défi
FacileVous recevrez une entrée : un objet JSON représentant le carnet de notes des étudiants. Le carnet de notes utilise les noms des étudiants comme clés, chaque étudiant ayant un "id" et un tableau "grades" contenant leurs scores aux tests.
Lisez l'entrée, convertissez la chaîne JSON en un tableau de carnet de notes et générez un bulletin scolaire formaté pour tous les étudiants. Pour chaque étudiant, affichez son nom, son identifiant d'étudiant, toutes ses notes individuelles et sa note moyenne arrondie à 2 décimales.
Formatez la sortie exactement comme suit :
- Affichez
===== REPORT CARD =====comme en-tête - Pour chaque étudiant, affichez :
Student: [name]ID: [student_id]Grades: [grade1], [grade2], [grade3], ...(toutes les notes séparées par des virgules et des espaces)Average: [average](arrondi à 2 décimales)- Une ligne vide après chaque étudiant (sauf le dernier)
Format d'entrée : Une ligne contenant un objet JSON représentant le carnet de notes (exemple : {"Alice":{"id":101,"grades":[85,92,78]},"Bob":{"id":102,"grades":[90,88,95]},"Charlie":{"id":103,"grades":[76,84,89]}})
Sortie attendue : Un bulletin scolaire formaté montrant les informations de chaque étudiant avec son nom, son ID, toutes ses notes et la moyenne calculée
Essayez vous-même
<?php
// Lire l'entrée JSON
$input = trim(fgets(STDIN));
// Convertir le JSON en tableau
$gradebook = (array)json_decode($input, true);
// Afficher l'en-tête
echo "===== REPORT CARD =====\n";
// À FAIRE : Écrivez votre code ci-dessous
// Parcourir chaque étudiant dans le carnet de notes
// Pour chaque étudiant :
// - Afficher leur nom
// - Afficher leur identifiant
// - Afficher toutes leurs notes
// - Calculer et afficher leur moyenne (arrondie à 2 décimales)
// - Ajouter une ligne vide entre les étudiants (sauf après le dernier)
?>Toutes les leçons de Logique & Flux
1Fonctions avancées
Fonctions anonymesClosures et 'use'Fonctions fléchéesFonctions de rappelUtilisation de 'call_user_func'Fonctions variablesPassage par référenceFonctions récursivesRécapitulatif : Mélange de fonctions4Tableaux multidimensionnels
Créer un tableau 2DAccéder aux éléments d'un tableau 2DModifier les éléments d'un tableau 2DItérer avec des boucles imbriquéesTableaux associatifs 2DRécapitulatif : Exercice de grille simple2Manipulations avancées de tableaux
Ajouter avec 'array_push'Supprimer avec 'array_pop'Ajouter avec 'array_unshift'Supprimer avec 'array_shift'Fusionner des tableaux indexésFusionner des tableaux associatifsExtraire avec 'array_slice'Valeurs avec 'in_array'Clés avec 'array_search'Récapitulatif : Exercice Playlist5Carnet de notes des élèves
Configuration du projet : Structure de donnéesAjouter un nouvel élèveAjouter une note à un élèveCalculer la moyenne d'un élèveTrouver le meilleur élèveGénérer un bulletin de notes3Tri des tableaux
Trier les tableaux indexés par ordre croissantTrier les tableaux indexés par ordre décroissantTrier les tableaux associatifs par valeurTrier les tableaux associatifs par cléTri par ordre naturelTri personnalisé avec 'usort'Récapitulatif : Tri d'un classement