Menu
Coddy logo textTech

Suchfunktionalität

Teil des Abschnitts Objektorientierte Programmierung der Dart-Journey von Coddy — Lektion 104 von 110.

challenge icon

Aufgabe

Einfach

In der vorherigen Lektion haben Sie eine Library-Klasse mit Ausleih- und Rückgabefunktionalität erstellt. Jetzt fügen wir Suchfunktionen hinzu, damit Benutzer Bücher in der Sammlung der Bibliothek finden können.

Sie werden Ihre Library-Klasse um drei neue Suchmethoden erweitern, die Benutzern helfen, Bücher zu entdecken:

  • book.dart: Lassen Sie Ihre bestehende Book-Klasse unverändert.
  • user.dart: Lassen Sie Ihre bestehende User-Klasse unverändert.
  • library.dart: Fügen Sie Ihrer Library-Klasse drei Suchmethoden hinzu:
    • searchByTitle(String query) - gibt eine List<Book> zurück, die alle Bücher enthält, deren Titel den Abfragestring enthält (unabhängig von Groß- und Kleinschreibung)
    • searchByAuthor(String query) - gibt eine List<Book> zurück, die alle Bücher enthält, deren Autorenname den Abfragestring enthält (unabhängig von Groß- und Kleinschreibung)
    • getAvailableBooks() - gibt eine List<Book> zurück, die nur Bücher enthält, die derzeit zum Ausleihen verfügbar sind
  • main.dart: Demonstrieren Sie die Suchfunktionalität. Erstellen Sie eine Library und fügen Sie vier Bücher hinzu:
    • 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
    Registrieren Sie einen Benutzer (U001, Alice) und lassen Sie ihn das erste Buch ausleihen. Dann:
    1. Suchen Sie nach Büchern mit pragmatic im Titel und geben Sie Title search 'pragmatic': X found aus, wobei X die Anzahl ist
    2. Suchen Sie nach Büchern des Autors david und geben Sie Author search 'david': X found aus
    3. Rufen Sie die verfügbaren Bücher ab und geben Sie Available books: X aus
    4. Geben Sie jedes verfügbare Buch in einer eigenen Zeile aus

Erwartete Ausgabe:

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

Probier es selbst

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

void main() {
  // Erstelle eine Library
  Library library = Library();
  
  // TODO: Füge der Bibliothek vier Bücher hinzu:
  // 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: Registriere einen Benutzer (U001, Alice)
  
  // TODO: Lass den Benutzer das erste Buch ausleihen
  
  // TODO: Suche nach Büchern mit 'pragmatic' im Titel
  // Print: Title search 'pragmatic': X found
  
  // TODO: Suche nach Büchern des Autors 'david'
  // Print: Author search 'david': X found
  
  // TODO: Rufe die verfügbaren Bücher ab und gib aus: Available books: X
  
  // TODO: Gib jedes verfügbare Buch in einer eigenen Zeile aus
}

Alle Lektionen in Objektorientierte Programmierung