نظرة عامة على المشروع
جزء من قسم المنطق وتدفق العمليات في رحلة Ruby على Coddy — الدرس 48 من 56.
ستقوم ببناء نظام سجلات طلاب صغير كمجموعة من الطرق (methods) التي تشترك جميعها في هاش متداخل (nested hash) واحد. يختلف هذا النظام في شكله عن مدير المكتبة (Library Manager)، حيث لا توجد حلقة قائمة (menu loop) هذه المرة، بل مجرد دوال (functions) ستستمر في توسيعها.
توجد الحالة في هاش (hash) واحد على المستوى الأعلى:
student_records = {}سيتم فهرسة كل إدخال بالاسم، مع قيمة hash تتضمن عمر الطالب ودرجاته ودوراته الدراسية:
{
"Alice" => { age: 20, grades: [], courses: ["Math", "Physics"] }
}يضيف كل درس طريقة واحدة تعمل على هذا الـ hash: add_student، add_grade، average_grade، list_by_course، top_students.
التحدي
مبتدئقم بتهيئة hash فارغ باسم student_records في الجزء العلوي من ملفك. ثم قم بطباعته باستخدام inspect لكي يرى الاختبار:
{}هذه هي المهمة بأكملها، هذا الدرس يقوم فقط بإعداد الحالة المشتركة لكل ما يلي.
ورقة مرجعية
يستخدم نظام سجلات الطلاب تجزئة (hash) متداخلة واحدة كحالة مشتركة:
student_records = {}
يتم ربط كل إدخال باسم الطالب مع تجزئة تحتوي على age و grades و courses:
{
"Alice" => { age: 20, grades: [], courses: ["Math", "Physics"] }
}استخدم inspect لطباعة محتويات التجزئة:
puts student_records.inspectجرّب بنفسك
# TODO: قم بتهيئة student_records = {} وقم بطباعته باستخدام inspect
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس المنطق وتدفق العمليات
1السلاسل النصية بعمق
نظرة عامة على دوال السلاسل النصيةتضمين النصوص (String Interpolation)التكرار عبر السلاسل النصيةالتقسيم والربط (Split و Join)مراجعة - نساج النصوص4Blocks و Procs و Lambdas
ما هو الـ Block؟do..end مقابل الأقواس { }الكلمة المفتاحية yieldمعاملات الـ BlockProcs و Lambdasمراجعة - Custom Iterator مخصص7Hashes - الجزء الثاني
Hash.new مع القيم الافتراضيةالتكرار عبر الـ Hashesالـ Hashes المتداخلةالدمج والتحويلمراجعة - عداد التكرار10مشروع - سجلات الطلاب
نظرة عامة على المشروعإضافة طالب5قوة الـ Enumerable
Select و Rejectتسلسل MapReduce / Injectcount، all?، any?، none?group_by و partitionsort_by، min_by، max_byمراجعة - Data Pipeline