Menu
Coddy logo textTech

הפקת תעודת ציונים

חלק מהיחידה לוגיקה וזרימת תוכנית במסלול ה-PHP של Coddy. שיעור 38 מתוך 68.

challenge icon

אתגר

קל

יתקבל קלט אחד: אובייקט JSON שמייצג את ספר הציונים של התלמידים. בספר הציונים, שמות התלמידים משמשים כמפתחות, ולכל תלמיד יש מערך "id" ומערך "grades" שמכיל את ציוני המבחנים שלו.

קראו את הקלט, המירו את מחרוזת ה-JSON למערך של ספר ציונים, והפיקו תעודת ציונים מעוצבת לכל התלמידים. עבור כל תלמיד, הציגו את שמו, את מזהה התלמיד, את כל הציונים הנפרדים שלו ואת ממוצע הציונים שלו, מעוגל ל-2 ספרות אחרי הנקודה העשרונית.

עצבו את הפלט בדיוק כך:

  • הדפיסו את ===== REPORT CARD ===== ככותרת
  • עבור כל תלמיד, הדפיסו:
    • Student: [name]
    • ID: [student_id]
    • Grades: [grade1], [grade2], [grade3], ... (כל הציונים מופרדים בפסיקים וברווחים)
    • Average: [average] (מעוגל ל-2 ספרות אחרי הנקודה העשרונית)
    • שורה ריקה אחרי כל תלמיד (למעט האחרון)

פורמט הקלט: שורה אחת שמכילה אובייקט JSON המייצג את ספר הציונים (לדוגמה: {"Alice":{"id":101,"grades":[85,92,78]},"Bob":{"id":102,"grades":[90,88,95]},"Charlie":{"id":103,"grades":[76,84,89]}})

הפלט הצפוי: תעודת ציונים מעוצבת שמציגה את המידע של כל תלמיד, כולל שמו, המזהה שלו, כל הציונים והממוצע שחושב

נסו בעצמכם

<?php
// קרא את קלט ה-JSON
$input = trim(fgets(STDIN));

// המר את JSON למערך
$gradebook = (array)json_decode($input, true);

// הדפס את הכותרת
echo "===== REPORT CARD =====\n";

// TODO: כתוב את הקוד שלך למטה
// עבור על כל תלמיד ב-gradebook
// עבור כל תלמיד:
//   - הדפס את שמו
//   - הדפס את ה-ID שלו
//   - הדפס את כל הציונים שלו
//   - חשב והדפס את הממוצע שלו (מעוגל ל-2 ספרות אחרי הנקודה העשרונית)
//   - הוסף שורה ריקה בין תלמידים (למעט אחרי האחרון)

?>

כל השיעורים ביחידה לוגיקה וזרימת תוכנית

תרגלו בעצמכם: קומפיילר PHP אונליין