Una libreria vuole informatizzare la catalogazione e la vendita dei

Transcript

Una libreria vuole informatizzare la catalogazione e la vendita dei
Una libreria vuole informatizzare la catalogazione e la vendita dei suoi libri che conserva in
scaffali divisi in spazi numerati: ogni scaffale ha un suo codice ed ha un numero massimo
di libri che dipende da come è fatto lo scaffale.
Di ogni libro si vuole rilevare il titolo, l’autore o un massimo di due autori se ce ne sono di
più, l’editore (Mondadori, Giunti, …), l’argomento (sono ammessi 5 valori: scolastico,
fantasy, manuale, romanzo, vari), il numero di pagine ed il costo.
Il commesso dispone i libri negli scaffali, e vuole che il programma lo aiuti a velocizzare il
suo lavoro, e quindi il programma deve fornire le seguenti possibilità:
1. inserire un nuovo scaffale: assegna un codice allo scaffale, indica quanti
posti
2. inserire un nuovo libro: digitati i dati del libro il programma deve segnalare in
quale scaffale e in quale posizione mettere il libro: se tutti gli scaffali sono
pieni, allora il programma si blocca e chiede la creazione di un nuovo scaffale
3. cercare un libro in base a titolo ed autori dando scaffale e posizione del libro
(se ci sono più libri uguali si deve fornire l’elenco delle posizioni e il nome
dell’editore. NB due libri sono uguali se hanno stesso titolo e stessi autori
4. togliere un libro – da usare in caso di vendita del libro: dato codice scaffale e
posizione si libera il posto che potrà essere utilizzato per metterci un altro
libro
5. avere l’elenco dei libri in base all’argomento
6. avere l’elenco dei libri di un autore
7. avere l’elenco dei libri che contengono nel titolo una certa parola
classe Libro
costruttore – ci sono tre costruttori in overload: uno riceve titolo, un autore e il numero
di pagine, uno titolo ed un solo autore, ed uno titolo e due autori. I costruttori impostano i
parametri ricevuti nelle variabili globali e mettono il valore di default alle altre variabili: “”
(stringa vuota) ai campi di tipo string e 0 ai valori numerici.
ITIS A. Volta –esercizi java– Flavia Lollis
1
stessoLibro(lib Libro) – il metodo riceve in input un libro, e confronta i suoi campi con
quelli del libro ricevuto per stabilire se è uguale a se stesso o meno (due libri sono uguali
se hanno stesso titolo e stessi autori ).
classe Scaffale
costruttore – riceve in input il codice dello scaffale ed il numeri di posti che ha; imposta i
parametri ricevuti nelle variabili globali e mette il valore di default alle altre variabili: “”
(stringa vuota) ai campi di tipo string e 0 ai valori numerici.
cercaLibro(lib Libro) – con questo metodo si chiede allo scaffale di verificare se il libro
passatogli è presente nello scaffale: il metodo scorre il vettore dei suoi libri ed usando il
metodo stessoLibro della classe Libro verifica la presenza o meno del libro richiesto
addLibro(lib Libro) – con questo metodo si chiede allo scaffale di aggiungere il libro
passatogli: il metodo scorre il vettore dei suoi libri e se trova un posto libero ci mette il
libro ricevuto e restituisce la posizione in cui è stato inserito, se invece non trova posti
liberi restituisce il valore -1
togliLibro(pos int) – con questo metodo si chiede allo scaffale di togliere il libro che si
trova nella posizione indicata dal parametro: il metodo restituisce l’oggetto e imposta a
null il vettore nella posizione indicata.
classe Libreria
main() – gestisce un ciclo che si interrompe a richiesta dell’utente nel quale propone il
menù e gestisce le richieste dell’utente.
ITIS A. Volta –esercizi java– Flavia Lollis
2