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

واجهة المسؤول

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

challenge icon

التحدي

سهل

في الدرس السابق، قمت بإضافة وظيفة البحث إلى فئة Library الخاصة بك. الآن دعنا ننشئ واجهة مسؤول (admin) تسمح للمستخدمين المتميزين بإدارة مخزون المكتبة - إضافة كتب جديدة وإزالة الكتب الموجودة.

ستقوم بتقديم فئة Admin جديدة وتعزيز Library الخاصة بك بقدرات إدارية:

  • book.dart: احتفظ بفئة Book الحالية دون تغيير.
  • user.dart: احتفظ بفئة User الحالية دون تغيير.
  • admin.dart: أنشئ فئة Admin جديدة تمثل مسؤولي المكتبة. يمتلك المسؤول id (String) و name (String). قم بإعادة كتابة (Override) لـ toString() لتعيد Admin [id]: name.
  • library.dart: أضف وظائف إدارية إلى فئة Library الخاصة بك:
    • أضف قائمة لتخزين المسؤولين المسجلين
    • registerAdmin(Admin admin) - يضيف مسؤولاً إلى المكتبة
    • addBookAsAdmin(String adminId, Book book) - إذا كان المسؤول موجوداً، يضيف الكتاب ويطبع adminId added "title". إذا لم يكن المسؤول موجوداً، يطبع Unauthorized.
    • removeBook(String adminId, String isbn) - إذا كان المسؤول موجوداً والكتاب موجوداً، يزيل الكتاب من المكتبة ويطبع adminId removed "title". إذا لم يكن المسؤول موجوداً، يطبع Unauthorized. إذا لم يكن الكتاب موجوداً، يطبع Book not found.
    • getBookCount() - يعيد إجمالي عدد الكتب في المكتبة
  • main.dart: قم باستعراض واجهة المسؤول. أنشئ Library وقم بتسجيل مسؤول (A001، Sarah Admin). استخدم المسؤول لإضافة ثلاثة كتب:
    • 978-0-13-468599-1، The Pragmatic Programmer، David Thomas
    • 978-0-596-51774-8، JavaScript: The Good Parts، Douglas Crockford
    • 978-0-13-235088-4، Clean Code، Robert Martin
    اطبع عدد الكتب بتنسيق Total books: X. ثم حاول إضافة كتاب باستخدام معرف مسؤول غير مسجل A999. قم بإزالة الكتاب الثاني باستخدام المسؤول المسجل. اطبع العدد النهائي للكتب.

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

A001 added "The Pragmatic Programmer"
A001 added "JavaScript: The Good Parts"
A001 added "Clean Code"
Total books: 3
Unauthorized
A001 removed "JavaScript: The Good Parts"
Total books: 2

جرّب بنفسك

import 'book.dart';
import 'user.dart';
import 'library.dart';
import 'admin.dart';

void main() {
  // TODO: إنشاء مكتبة (Library)
  
  // TODO: إنشاء وتسجيل مسؤول (A001, Sarah Admin)
  
  // TODO: استخدام المسؤول لإضافة ثلاثة كتب:
  // - 978-0-13-468599-1, The Pragmatic Programmer, David Thomas
  // - 978-0-596-51774-8, JavaScript: The Good Parts, Douglas Crockford
  // - 978-0-13-235088-4, Clean Code, Robert Martin
  
  // TODO: طباعة عدد الكتب بصيغة "Total books: X"
  
  // TODO: محاولة إضافة كتاب باستخدام معرف مسؤول غير مسجل A999
  
  // TODO: إزالة الكتاب الثاني (978-0-596-51774-8) باستخدام المسؤول المسجل
  
  // TODO: طباعة العدد النهائي للكتب
}

جميع دروس Object Oriented Programming