Gestione Biblioteca

Italian only

Definire una classe Biblioteca i cui oggetti rappresentano una biblioteca nel seguente modo:

  1. una biblioteca e` caratterizzata dal patrimonio librario, ovvero dall'insieme dei libri a disposizione per il prestito agli utenti. Naturalmente, un certo libro puo` essere presente nel patrimonio librario di una biblioteca in piu` copie, quindi ad ogni libro e` associato il numero di copie disponibili (semplicemente un intero);
  2. una biblioteca e` caratterizzata inoltre dallo stato dei prestiti dei libri del proprio patrimonio agli utenti: si tratta quindi dell'associazione tra un utente U e l'insieme non vuoto dei libri che U ha attualmente in prestito. Si noti quindi che lo stato dei prestiti include un'associazione per un utente U quando U ha almeno un libro attualmente in prestito (pertanto lo stato dei prestiti non include associazioni per utenti che non hanno attualmente libri in prestito).

Dotare la classe Biblioteca di una interfaccia pubblica che permetta la gestione del patrimonio librario e dello stato dei prestiti. Non vi sono requisiti obbligatori, si chiede di usare il buon senso comune. Alcuni esempi (non vincolanti) possono essere:

  1. Funzionalita` di interrogazione, inserimento, rimozione e aggiornamento per il patrimonio librario. Ad esempio, funzionalita` per ottenere: i libri scritti da un certo autore, il numero di copie disponibili di un certo libro, i libri pubblicati in un certo intervallo di anni, etc.
  2. Funzionalita` di interrogazione, inserimento, rimozione ed aggiornamento per lo stato dei prestiti. Ad esempio, funzionalita` per ottenere: i libri che un certo utente ha in prestito, se un certo libro ha ancora delle copie disponibili per il prestito, gli utenti che hanno n > 0 libri in prestito, concessione di un nuovo libro in prestito ad un utente, restituzione di un libro in prestito da parte di un utente, etc.
  3. Metodi di gestione per l'input/output da file del patrimonio librario e/o dello stato dei prestiti.

Come noto, una biblioteca universitaria e` una biblioteca un po' speciale perche` alcuni libri del patrimonio librario non sono disponibili per il prestito (ma solo per la consultazione in loco nella biblioteca: nella realta` possono essere, ad esempio, i libri di testo usati nei corsi). Si chiede quindi di definire una classe BibliotecaUniversitaria derivata da Biblioteca i cui oggetti rappresentano una biblioteca universitaria caratterizzata quindi nel seguente modo:

  1. Il patrimonio librario e lo stato dei prestiti della biblioteca universitaria sono rappresentati tramite il sottooggetto di tipo Biblioteca.
  2. L'insieme di libri del patrimonio librario non disponibili per il prestito deve essere opportunamente rappresentato da BibliotecaUniversitaria.

Come al solito, si chiede quindi di ridefinire le funzionalita` ereditate da Biblioteca il cui comportamento debba essere adattato a BibliotecaUniversitaria: ad esempio, per una biblioteca universitaria non tutte le richieste di prestito possono essere soddisfatte e quindi il comportamento della funzionalita` di concessione di un nuovo libro in prestito ad un utente deve essere aggiornata.

Inoltre, si chiede di dotare la classe BibliotecaUniversitaria di funzionalita` specifiche per la gestione di una biblioteca universitaria: ad esempio, funzionalita` per la gestione dei libri non disponibili per il prestito.

Attenzione: il seguente progetto e` da ritenersi un "progetto didattico", che attualmente non prevede manutenimento e di cui non si da` alcuna garanzia in termini di reale funzionamento.

Screeshots






Downloads

Source code (.tar.gz, 131 KB, C++, GNU LGP licence)

[Situation: 802.11 enable notebook in a parking area recording] By late afternoon, the hard disk will be full of valuable goodies. Theoretically, this leakage is not supposed to happen. Theoretically, people are not supposed to rob banks, either. — Andrew S. Tanenbaum


free counters