إنشاء تقرير الدرجات
جزء من قسم Logic & Flow في رحلة PHP على Coddy — الدرس 38 من 68.
التحدي
سهلستتلقى مدخلاً واحداً: كائن JSON يمثل سجل درجات الطلاب. يستخدم سجل الدرجات أسماء الطلاب كمفاتيح، حيث يمتلك كل طالب "id" ومصفوفة "grades" تحتوي على درجات اختباراتهم.
اقرأ المدخلات، وقم بتحويل سلسلة JSON إلى مصفوفة سجل درجات، وقم بإنشاء بطاقة تقرير منسقة لجميع الطلاب. لكل طالب، اعرض اسمه، ومعرف الطالب الخاص به، وجميع الدرجات الفردية، ومتوسط درجاته مقرباً إلى منزلتين عشريتين.
قم بتنسيق المخرجات تماماً كما يلي:
- اطبع
===== REPORT CARD =====كعنوان رأسي - لكل طالب، اطبع:
Student: [name]ID: [student_id]Grades: [grade1], [grade2], [grade3], ...(جميع الدرجات مفصولة بفاصلة ومسافة)Average: [average](مقرباً إلى منزلتين عشريتين)- سطر فارغ بعد كل طالب (باستثناء الطالب الأخير)
تنسيق المدخلات: سطر واحد يحتوي على كائن 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: اكتب كودك أدناه
// حلقة تكرارية لكل طالب في سجل الدرجات
// لكل طالب:
// - طباعة اسمهم
// - طباعة معرفهم (ID)
// - طباعة جميع درجاتهم
// - حساب وطباعة متوسطهم (مقرباً إلى منزلتين عشريتين)
// - إضافة سطر فارغ بين الطلاب (باستثناء الأخير)
?>جميع دروس Logic & Flow
1الدوال المتقدمة
الدوال المجهولةالـ Closures وكلمة 'use'دوال السهمدوال الـ Callbackاستخدام 'call_user_func'دوال المتغيراتالتمرير بالمرجعالدوال العوديةمراجعة: مزيج الدوال4المصفوفات متعددة الأبعاد
إنشاء مصفوفة ثنائية الأبعادالوصول إلى عناصر المصفوفة ثنائية الأبعادتعديل عناصر المصفوفة ثنائية الأبعادالتكرار باستخدام الحلقات المتداخلةالمصفوفات الترابطية ثنائية الأبعادمراجعة: تمرين الشبكة البسيطة2معالجة المصفوفات المتقدمة
الإضافة باستخدام 'array_push'الحذف باستخدام 'array_pop'الإضافة باستخدام 'array_unshift'الحذف باستخدام 'array_shift'دمج المصفوفات المفهرسةدمج المصفوفات الترابطيةالاستخراج باستخدام 'array_slice'القيم باستخدام 'in_array'المفاتيح باستخدام 'array_search'مراجعة: تمرين قائمة التشغيل5سجل درجات الطلاب
إعداد المشروع: هيكل البياناتإضافة طالب جديدإضافة درجة لطالبحساب متوسط الطالبإيجاد الطالب المتفوقإنشاء تقرير الدرجات3ترتيب المصفوفات
ترتيب المصفوفات المفهرسة تصاعدياًترتيب المصفوفات المفهرسة تنازلياًترتيب المصفوفات الترابطية حسب القيمةترتيب المصفوفات الترابطية حسب المفتاحالترتيب بالترتيب الطبيعيالترتيب المخصص باستخدام 'usort'مراجعة: ترتيب لوحة المتصدرين