Menu
Coddy logo textTech

Funcionalidade de Busca

Parte da seção Programação Orientada a Objetos do Journey de Dart da Coddy — lição 104 de 110.

challenge icon

Desafio

Fácil

Na lição anterior, você construiu uma classe Library com funcionalidades de empréstimo e devolução. Agora, vamos adicionar recursos de busca para que os usuários possam encontrar livros na coleção da biblioteca.

Você aprimorará sua classe Library com três novos métodos de busca que ajudam os usuários a descobrir livros:

  • book.dart: Mantenha sua classe Book existente inalterada.
  • user.dart: Mantenha sua classe User existente inalterada.
  • library.dart: Adicione três métodos de busca à sua classe Library:
    • searchByTitle(String query) - retorna uma List<Book> contendo todos os livros cujo título contém a string de consulta (insensível a maiúsculas e minúsculas)
    • searchByAuthor(String query) - retorna uma List<Book> contendo todos os livros cujo nome do autor contém a string de consulta (insensível a maiúsculas e minúsculas)
    • getAvailableBooks() - retorna uma List<Book> contendo apenas os livros que estão atualmente disponíveis para empréstimo
  • main.dart: Demonstre a funcionalidade de busca. Crie uma Library e adicione quatro livros:
    • 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
    Registre um usuário (U001, Alice) e faça com que ele pegue o primeiro livro emprestado. Então:
    1. Busque por livros com pragmatic no título e imprima Title search 'pragmatic': X found onde X é a contagem
    2. Busque por livros pelo autor david e imprima Author search 'david': X found
    3. Obtenha os livros disponíveis e imprima Available books: X
    4. Imprima cada livro disponível em sua própria linha

Saída 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

Experimente você mesmo

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

void main() {
  // Criar uma Library
  Library library = Library();
  
  // TODO: Adicionar quatro livros à 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 um usuário (U001, Alice)
  
  // TODO: Fazer com que o usuário pegue o primeiro livro emprestado
  
  // TODO: Pesquisar por livros com 'pragmatic' no título
  // Print: Title search 'pragmatic': X found
  
  // TODO: Pesquisar por livros do autor 'david'
  // Print: Author search 'david': X found
  
  // TODO: Obter livros disponíveis e imprimir: Available books: X
  
  // TODO: Imprimir cada livro disponível em sua própria linha
}

Todas as lições de Programação Orientada a Objetos