Menu
Coddy logo textTech

Функционал поиска

Часть раздела Объектно-ориентированное программирование путешествия по 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();
  
  // 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: Вывести каждую доступную книгу на отдельной строке
}

Все уроки раздела Объектно-ориентированное программирование