Menu
Coddy logo textTech

Funzionalità di ricerca

Fa parte della sezione Programmazione orientata agli oggetti del percorso Dart di Coddy. Lezione 104 di 110.

challenge icon

Sfida

Facile

Nella lezione precedente, hai creato una classe Library con funzionalità per prendere in prestito e restituire libri. Ora aggiungiamo funzionalità di ricerca, così gli utenti possono trovare i libri nella collezione della biblioteca.

Arricchirai la classe Library con tre nuovi metodi di ricerca che aiutano gli utenti a trovare libri:

  • book.dart: mantieni invariata la classe Book esistente.
  • user.dart: mantieni invariata la classe User esistente.
  • library.dart: aggiungi tre metodi di ricerca alla classe Library:
    • searchByTitle(String query) - restituisce una List<Book> contenente tutti i libri il cui titolo include la stringa di ricerca (senza distinzione tra maiuscole e minuscole)
    • searchByAuthor(String query) - restituisce una List<Book> contenente tutti i libri il cui autore include la stringa di ricerca (senza distinzione tra maiuscole e minuscole)
    • getAvailableBooks() - restituisce una List<Book> contenente solo i libri attualmente disponibili per il prestito
  • main.dart: mostra il funzionamento della ricerca. Crea una Library e aggiungi quattro libri:
    • 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 utente (U001, Alice) e fagli prendere in prestito il primo libro. Poi:
    1. Cerca i libri con pragmatic nel titolo e stampa Title search 'pragmatic': X found, dove X è il numero di risultati
    2. Cerca i libri dell'autore david e stampa Author search 'david': X found
    3. Recupera i libri disponibili e stampa Available books: X
    4. Stampa ciascun libro disponibile su una riga separata

Output previsto:

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

Provalo tu

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

void main() {
  // Crea una Library
  Library library = Library();
  
  // TODO: Aggiungi quattro libri alla 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: Registra un utente (U001, Alice)
  
  // TODO: Fai prendere in prestito il primo libro all'utente
  
  // TODO: Cerca libri con 'pragmatic' nel titolo
  // Stampa: Title search 'pragmatic': X trovati
  
  // TODO: Cerca libri dell'autore 'david'
  // Stampa: Author search 'david': X trovati
  
  // TODO: Ottieni i libri disponibili e stampa: Available books: X
  
  // TODO: Stampa ogni libro disponibile su una riga separata
}

Tutte le lezioni di Programmazione orientata agli oggetti

Esercitati da solo: Compilatore Dart online