הפקת תעודת ציונים
חלק מהיחידה לוגיקה וזרימת תוכנית במסלול ה-PHP של Coddy. שיעור 38 מתוך 68.
אתגר
קליתקבל קלט אחד: אובייקט 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 ספרות אחרי הנקודה העשרונית)
// - הוסף שורה ריקה בין תלמידים (למעט אחרי האחרון)
?>כל השיעורים ביחידה לוגיקה וזרימת תוכנית
1פונקציות מתקדמות
פונקציות אנונימיותסגירות ו-'use'פונקציות חץפונקציות callbackשימוש ב-'call_user_func'פונקציות משתנותהעברה באמצעות הפניהפונקציות רקורסיביותסיכום: מגוון פונקציות4מערכים רב־ממדיים
יצירת מערך דו־ממדיגישה לאיברי מערך דו־ממדישינוי איברי מערך דו־ממדימעבר באמצעות לולאות מקוננותמערכים אסוציאטיביים דו־ממדייםסיכום: תרגיל רשת פשוטה2מניפולציות מתקדמות במערכים
הוספה באמצעות 'array_push'הסרה באמצעות 'array_pop'הוספה לתחילת המערך באמצעות 'array_unshift'הסרה מתחילת המערך באמצעות 'array_shift'מיזוג מערכים ממוספריםמיזוג מערכים אסוציאטיבייםחילוץ באמצעות 'array_slice'בדיקת ערכים באמצעות 'in_array'חיפוש מפתחות באמצעות 'array_search'סיכום: תרגיל רשימת השמעה5פנקס ציונים לתלמידים
הגדרת הפרויקט: מבנה הנתוניםהוספת תלמיד חדשהוספת ציון לתלמידחישוב הממוצע של התלמידמציאת התלמיד המצטייןהפקת תעודת ציונים3מיון מערכים
מיון מערכים עם אינדקסים בסדר עולהמיון מערכים עם אינדקסים בסדר יורדמיון מערכים אסוציאטיביים לפי ערךמיון מערכים אסוציאטיביים לפי מפתחמיון בסדר טבעימיון מותאם אישית באמצעות 'usort'סיכום: מיון טבלת מוביליםתרגלו בעצמכם: קומפיילר PHP אונליין