Menu
Coddy logo textTech

Funcionalidad de búsqueda

Parte de la sección Programación Orientada a Objetos del Journey de Dart de Coddy — lección 104 de 110.

challenge icon

Desafío

Fácil

En la lección anterior, construiste una clase Library con funcionalidad de préstamo y devolución. Ahora vamos a añadir capacidades de búsqueda para que los usuarios puedan encontrar libros en la colección de la biblioteca.

Mejorarás tu clase Library con tres nuevos métodos de búsqueda que ayudan a los usuarios a descubrir libros:

  • book.dart: Mantén tu clase Book existente sin cambios.
  • user.dart: Mantén tu clase User existente sin cambios.
  • library.dart: Añade tres métodos de búsqueda a tu clase Library:
    • searchByTitle(String query) - devuelve una List<Book> que contiene todos los libros cuyo título contiene la cadena de consulta (sin distinguir entre mayúsculas y minúsculas)
    • searchByAuthor(String query) - devuelve una List<Book> que contiene todos los libros cuyo nombre de autor contiene la cadena de consulta (sin distinguir entre mayúsculas y minúsculas)
    • getAvailableBooks() - devuelve una List<Book> que contiene solo los libros que están actualmente disponibles para préstamo
  • main.dart: Demuestra la funcionalidad de búsqueda. Crea una Library y añade cuatro libros:
    • 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
    Registra un usuario (U001, Alice) y haz que tome prestado el primer libro. Luego:
    1. Busca libros con pragmatic en el título e imprime Title search 'pragmatic': X found donde X es el recuento
    2. Busca libros por el autor david e imprime Author search 'david': X found
    3. Obtén los libros disponibles e imprime Available books: X
    4. Imprime cada libro disponible en su propia línea

Salida esperada:

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

Pruébalo tú mismo

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

void main() {
  // Crear una Library
  Library library = Library();
  
  // TODO: Agregar cuatro libros a la biblioteca:
  // 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: Registrar un usuario (U001, Alice)
  
  // TODO: Hacer que el usuario pida prestado el primer libro
  
  // TODO: Buscar libros con 'pragmatic' en el título
  // Imprimir: Title search 'pragmatic': X found
  
  // TODO: Buscar libros por el autor 'david'
  // Imprimir: Author search 'david': X found
  
  // TODO: Obtener los libros disponibles e imprimir: Available books: X
  
  // TODO: Imprimir cada libro disponible en su propia línea
}

Todas las lecciones de Programación Orientada a Objetos