Menu
Coddy logo textTech

System wypożyczania

Część sekcji Programowanie obiektowe ścieżki Dart w Coddy. Lekcja 103 z 110.

challenge icon

Wyzwanie

Łatwy

W poprzedniej lekcji utworzyłeś klasy Book i User z podstawowymi właściwościami. Teraz czas zbudować kompletny system wypożyczania z klasą Library, która zarządza całym procesem wypożyczania.

Utworzysz nowy plik i zaktualizujesz istniejące pliki, aby zaimplementować logikę wypożyczania:

  • book.dart: Zachowaj istniejącą klasę Book z polami isbn, title, author, isAvailable i metodą toString().
  • user.dart: Zachowaj istniejącą klasę User z polami id, name, borrowedBooks i metodą toString().
  • library.dart: Utwórz nową klasę Library, która zarządza książkami i użytkownikami. Powinna mieć dwie listy: jedną dla books i jedną dla users. Dodaj metody, które:
    • addBook(Book book) — dodają książkę do kolekcji biblioteki
    • registerUser(User user) — dodają użytkownika do biblioteki
    • borrowBook(String isbn, String userId) — wyszukują książkę i użytkownika, a następnie, jeśli książka istnieje, jest dostępna i użytkownik istnieje, oznaczają książkę jako niedostępną, dodają ją do wypożyczonych książek użytkownika i wyświetlają userId borrowed "title". Jeśli książka nie istnieje, wyświetlają Book not found. Jeśli książka nie jest dostępna, wyświetlają Book not available. Jeśli użytkownik nie istnieje, wyświetlają User not found.
    • returnBook(String isbn, String userId) — wyszukują książkę i użytkownika, a następnie, jeśli oboje istnieją i użytkownik ma tę książkę, oznaczają ją jako dostępną, usuwają ją z wypożyczonych książek użytkownika i wyświetlają userId returned "title". Jeśli książka nie istnieje, wyświetlają Book not found. Jeśli użytkownik nie istnieje, wyświetlają User not found.
  • main.dart: Zaimportuj wszystkie pliki i pokaż działanie systemu wypożyczania. Utwórz obiekt Library, dodaj dwie książki (978-0-13-468599-1, The Pragmatic Programmer, David Thomas oraz 978-0-596-51774-8, JavaScript: The Good Parts, Douglas Crockford) i zarejestruj jednego użytkownika (U001, Alice Johnson). Następnie:
    1. Wypożycz pierwszą książkę dla Alice
    2. Spróbuj ponownie wypożyczyć tę samą książkę (powinno się nie udać)
    3. Wypożycz drugą książkę dla Alice
    4. Wyświetl Alice, aby pokazać liczbę wypożyczonych przez nią książek
    5. Zwróć pierwszą książkę
    6. Ponownie wyświetl Alice, aby pokazać zaktualizowaną liczbę

Oczekiwany wynik:

U001 borrowed "The Pragmatic Programmer"
Book not available
U001 borrowed "JavaScript: The Good Parts"
User U001: Alice Johnson (2 books borrowed)
U001 returned "The Pragmatic Programmer"
User U001: Alice Johnson (1 books borrowed)

Spróbuj swoich sił

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

void main() {
  // TODO: Utwórz instancję Library
  
  // TODO: Utwórz dwie książki:
  // - Książka 1: isbn '978-0-13-468599-1', title 'The Pragmatic Programmer', author 'David Thomas'
  // - Książka 2: isbn '978-0-596-51774-8', title 'JavaScript: The Good Parts', author 'Douglas Crockford'
  
  // TODO: Dodaj obie książki do biblioteki
  
  // TODO: Utwórz użytkownika z id 'U001' i imieniem i nazwiskiem 'Alice Johnson'
  
  // TODO: Zarejestruj użytkownika w bibliotece
  
  // TODO: Wypożycz pierwszą książkę dla Alice
  
  // TODO: Spróbuj ponownie wypożyczyć tę samą książkę (powinno się nie udać z komunikatem 'Book not available')
  
  // TODO: Wypożycz drugą książkę dla Alice
  
  // TODO: Wyświetl Alice, aby pokazać liczbę wypożyczonych przez nią książek
  
  // TODO: Zwróć pierwszą książkę
  
  // TODO: Wypisz Alice ponownie, aby pokazać zaktualizowaną liczbę wypożyczonych książek
}

Wszystkie lekcje w sekcji Programowanie obiektowe

Poćwicz samodzielnie: Kompilator Dart online