Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

فئات الكتاب والمستخدم

جزء من قسم Object Oriented Programming في رحلة Dart على Coddy — الدرس 102 من 110.

challenge icon

التحدي

سهل

في الدرس السابق، قمت بإنشاء فئة Book بخصائص أساسية وطريقة toString(). الآن حان الوقت لتوسيع نظام المكتبة الخاص بك عن طريق إضافة فئة User لتمثيل أعضاء المكتبة الذين يمكنهم استعارة الكتب.

ستحتاج إلى إنشاء ملف جديد وتحديث ملفاتك الحالية:

  • book.dart: قم بتحسين فئة Book الحالية عن طريق إضافة خاصية isAvailable (boolean) والتي تكون قيمتها الافتراضية true. سيقوم هذا بتتبع ما إذا كان الكتاب متاحاً للاستعارة أم لا.
  • user.dart: أنشئ فئة User جديدة لتمثيل أعضاء المكتبة. يجب أن يكون لكل مستخدم id (String)، و name (String)، وقائمة borrowedBooks تحتوي على كائنات من نوع Book. قم بتضمين منشئ (constructor) يقوم بتهيئة المعرف (id) والاسم (name)، مع قائمة فارغة للكتب المستعارة. قم بإعادة كتابة (Override) لـ toString() لتعيد التنسيق User [id]: name (X books borrowed) حيث X هو عدد الكتب المستعارة.
  • main.dart: قم باستيراد ملفي الكتاب والمستخدم. أنشئ كتاباً بالرقم الدولي المعياري (ISBN) '978-0-13-468599-1'، والعنوان 'The Pragmatic Programmer'، والمؤلف 'David Thomas'. أنشئ مستخدماً بالمعرف 'U001' والاسم 'Alice Johnson'. اطبع الكتاب، ثم اطبع ما إذا كان متاحاً باستخدام التنسيق 'Available: true' أو 'Available: false'. اطبع المستخدم. ثم أضف الكتاب إلى قائمة الكتب المستعارة الخاصة بالمستخدم، واجعل قيمة isAvailable للكتاب false، واطبع المستخدم مرة أخرى لإظهار عدد الكتب المحدث.

هذا يؤسس العلاقة بين الكتب والمستخدمين التي ستعتمد عليها عند تنفيذ نظام الاستعارة الكامل في الدرس القادم!

المخرجات المتوقعة:

[978-0-13-468599-1] The Pragmatic Programmer by David Thomas
Available: true
User U001: Alice Johnson (0 books borrowed)
User U001: Alice Johnson (1 books borrowed)

جرّب بنفسك

import 'book.dart';
// TODO: استيراد user.dart

void main() {
  // TODO: إنشاء كتاب بـ ISBN '978-0-13-468599-1'، وعنوان 'The Pragmatic Programmer'، ومؤلف 'David Thomas'
  
  // TODO: إنشاء مستخدم بـ id 'U001' واسم 'Alice Johnson'
  
  // TODO: طباعة الكتاب
  
  // TODO: طباعة ما إذا كان الكتاب متاحاً باستخدام التنسيق: Available: true/false
  
  // TODO: طباعة المستخدم
  
  // TODO: إضافة الكتاب إلى قائمة borrowedBooks الخاصة بالمستخدم
  
  // TODO: تعيين قيمة isAvailable للكتاب إلى false
  
  // TODO: طباعة المستخدم مرة أخرى لإظهار عدد الكتب المحدث
}

جميع دروس Object Oriented Programming