Menu
Coddy logo textTech

Interfejs administratora

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

challenge icon

Wyzwanie

Łatwy

W poprzedniej lekcji dodano funkcję wyszukiwania do klasy Library. Teraz utworzymy interfejs administratora, który pozwoli użytkownikom z odpowiednimi uprawnieniami zarządzać zapasami biblioteki — dodawać nowe książki i usuwać istniejące.

Wprowadzisz nową klasę Admin i rozbudujesz klasę Library o funkcje administracyjne:

  • book.dart: Pozostaw istniejącą klasę Book bez zmian.
  • user.dart: Pozostaw istniejącą klasę User bez zmian.
  • admin.dart: Utwórz nową klasę Admin, która reprezentuje administratorów biblioteki. Administrator ma id (String) i name (String). Nadpisz toString(), aby zwracała Admin [id]: name.
  • library.dart: Dodaj funkcje administracyjne do klasy Library:
    • Dodaj listę do przechowywania zarejestrowanych administratorów
    • registerAdmin(Admin admin) — dodaje administratora do biblioteki
    • addBookAsAdmin(String adminId, Book book) — jeśli administrator istnieje, dodaje książkę i wyświetla adminId added "title". Jeśli administrator nie istnieje, wyświetl Unauthorized.
    • removeBook(String adminId, String isbn) — jeśli administrator i książka istnieją, usuwa książkę z biblioteki i wyświetla adminId removed "title". Jeśli administrator nie istnieje, wyświetl Unauthorized. Jeśli książka nie istnieje, wyświetl Book not found.
    • getBookCount() — zwraca całkowitą liczbę książek w bibliotece
  • main.dart: Zademonstruj interfejs administratora. Utwórz Library i zarejestruj administratora (A001, Sarah Admin). Użyj konta administratora, aby dodać trzy książki:
    • 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
    Wyświetl liczbę książek w formacie Total books: X. Następnie spróbuj dodać książkę, używając niezarejestrowanego identyfikatora administratora A999. Usuń drugą książkę, używając zarejestrowanego administratora. Wyświetl końcową liczbę książek.

Oczekiwany wynik:

A001 added "The Pragmatic Programmer"
A001 added "JavaScript: The Good Parts"
A001 added "Clean Code"
Total books: 3
Unauthorized
A001 removed "JavaScript: The Good Parts"
Total books: 2

Spróbuj swoich sił

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

void main() {
  // TODO: Utwórz Library
  
  // TODO: Utwórz i zarejestruj administratora (A001, Sarah Admin)
  
  // TODO: Użyj administratora, aby dodać trzy książki:
  // - 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
  
  // TODO: Wypisz liczbę książek w postaci "Total books: X"
  
  // TODO: Spróbuj dodać książkę, używając identyfikatora niezarejestrowanego administratora A999
  
  // TODO: Usuń drugą książkę (978-0-596-51774-8), używając zarejestrowanego administratora
  
  // TODO: Wypisz końcową liczbę książek
}

Wszystkie lekcje w sekcji Programowanie obiektowe

Poćwicz samodzielnie: Kompilator Dart online