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

خاصية البحث

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

challenge icon

التحدي

سهل

في الدرس السابق، قمت ببناء فئة Library مع وظائف الاستعارة والإرجاع. الآن دعنا نضيف إمكانيات البحث حتى يتمكن المستخدمون من العثور على الكتب في مجموعة المكتبة.

ستقوم بتحسين فئة Library الخاصة بك بثلاث طرق بحث جديدة تساعد المستخدمين على اكتشاف الكتب:

  • book.dart: احتفظ بفئة Book الحالية دون تغيير.
  • user.dart: احتفظ بفئة User الحالية دون تغيير.
  • library.dart: أضف ثلاث طرق بحث إلى فئة Library الخاصة بك:
    • searchByTitle(String query) - تُرجع List<Book> تحتوي على جميع الكتب التي يتضمن عنوانها سلسلة الاستعلام (غير حساس لحالة الأحرف)
    • searchByAuthor(String query) - تُرجع List<Book> تحتوي على جميع الكتب التي يتضمن اسم مؤلفها سلسلة الاستعلام (غير حساس لحالة الأحرف)
    • getAvailableBooks() - تُرجع List<Book> تحتوي فقط على الكتب المتاحة حالياً للاستعارة
  • main.dart: قم بتوضيح وظيفة البحث. أنشئ Library وأضف أربعة كتب:
    • 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
    • 978-0-20-161622-4، The Pragmatic Programmer، Andrew Hunt
    قم بتسجيل مستخدم (U001، Alice) واجعله يستعير الكتاب الأول. ثم:
    1. ابحث عن الكتب التي تحتوي على pragmatic في العنوان واطبع Title search 'pragmatic': X found حيث X هو العدد
    2. ابحث عن الكتب للمؤلف david واطبع Author search 'david': X found
    3. احصل على الكتب المتاحة واطبع Available books: X
    4. اطبع كل كتاب متاح في سطر مستقل

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

U001 borrowed "The Pragmatic Programmer"
Title search 'pragmatic': 2 found
Author search 'david': 1 found
Available books: 3
[978-0-596-51774-8] JavaScript: The Good Parts by Douglas Crockford
[978-0-13-235088-4] Clean Code by Robert Martin
[978-0-20-161622-4] The Pragmatic Programmer by Andrew Hunt

جرّب بنفسك

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

void main() {
  // إنشاء Library
  Library library = Library();
  
  // TODO: أضف أربعة كتب إلى المكتبة:
  // 1. 978-0-13-468599-1, The Pragmatic Programmer, David Thomas
  // 2. 978-0-596-51774-8, JavaScript: The Good Parts, Douglas Crockford
  // 3. 978-0-13-235088-4, Clean Code, Robert Martin
  // 4. 978-0-20-161622-4, The Pragmatic Programmer, Andrew Hunt
  
  // TODO: تسجيل مستخدم (U001, Alice)
  
  // TODO: اجعل المستخدم يستعير الكتاب الأول
  
  // TODO: ابحث عن كتب تحتوي على 'pragmatic' في العنوان
  // طباعة: Title search 'pragmatic': X found
  
  // TODO: ابحث عن كتب للمؤلف 'david'
  // طباعة: Author search 'david': X found
  
  // TODO: احصل على الكتب المتاحة واطبع: Available books: X
  
  // TODO: اطبع كل كتاب متاح في سطر منفصل
}

جميع دروس Object Oriented Programming