Menu
Coddy logo textTech

Interfaccia amministratore

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

challenge icon

Sfida

Facile

Nella lezione precedente, hai aggiunto la funzionalità di ricerca alla tua classe Library. Ora creiamo un'interfaccia di amministrazione che consenta agli utenti privilegiati di gestire l'inventario della biblioteca, aggiungendo nuovi libri e rimuovendo quelli esistenti.

Introdurrai una nuova classe Admin e arricchirai la tua Library con funzionalità amministrative:

  • book.dart: mantieni invariata la classe Book esistente.
  • user.dart: mantieni invariata la classe User esistente.
  • admin.dart: crea una nuova classe Admin che rappresenta gli amministratori della biblioteca. Un amministratore ha un id (String) e un name (String). Sovrascrivi toString() in modo che restituisca Admin [id]: name.
  • library.dart: aggiungi funzionalità amministrative alla tua classe Library:
    • Aggiungi una lista per memorizzare gli amministratori registrati
    • registerAdmin(Admin admin) - aggiunge un amministratore alla biblioteca
    • addBookAsAdmin(String adminId, Book book) - se l'amministratore esiste, aggiunge il libro e stampa adminId added "title". Se l'amministratore non esiste, stampa Unauthorized.
    • removeBook(String adminId, String isbn) - se l'amministratore esiste e il libro esiste, rimuove il libro dalla biblioteca e stampa adminId removed "title". Se l'amministratore non esiste, stampa Unauthorized. Se il libro non esiste, stampa Book not found.
    • getBookCount() - restituisce il numero totale di libri nella biblioteca
  • main.dart: mostra l'interfaccia di amministrazione. Crea una Library e registra un amministratore (A001, Sarah Admin). Usa l'amministratore per aggiungere tre 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
    Stampa il numero dei libri nel formato Total books: X. Poi prova ad aggiungere un libro con l'id di un amministratore non registrato A999. Rimuovi il secondo libro usando l'amministratore registrato. Stampa il numero finale dei libri.

Output previsto:

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

Provalo tu

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

void main() {
  // TODO: Crea una Library
  
  // TODO: Crea e registra un admin (A001, Sarah Admin)
  
  // TODO: Usa l'admin per aggiungere tre 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
  
  // TODO: Stampa il numero di libri nel formato "Total books: X"
  
  // TODO: Prova ad aggiungere un libro con l'id admin A999 non registrato
  
  // TODO: Rimuovi il secondo libro (978-0-596-51774-8) usando l'admin registrato
  
  // TODO: Stampa il numero finale di libri
}

Tutte le lezioni di Programmazione orientata agli oggetti

Esercitati da solo: Compilatore Dart online