Laboratorio di Programmazione - A.A. 2004/05
Esercitazione 1
Parte 1.
Si vogliono gestire i prestiti di giochi di ludoteche.
Di un oggetto Ludoteca
sono di interesse il nome della Ludoteca (una stringa), l'insieme dei
giochi disponibili in essa e le persone a cui sono stati prestati.
Di ogni gioco sono di interesse le seguenti informazioni:
- il nome (una stringa);
- la fascia di etą per cui il gioco č adatto (due interi, di
cui uno rappresenta l'etą minima e l'altro l'etą
massima per cui il gioco č adatto).
La classe Gioco
č fornita nel file Gioco.java.
Di ogni persona sono di interesse le seguenti informazioni:
- il nome (una stringa);
- gli estremi di un documento (una stringa).
La classe Persona
č fornita nel file Persona.java.
Gli oggetti Ludoteca supportano le seguenti funzionalitą:
- crea: che, data una stringa n che rappresenta il nome
della Ludoteca, crea un oggetto Ludoteca con nome
n, che inizialmente non ha alcun gioco disponibile;
- nome: che restituisce il nome della Ludoteca;
- presente: che, dato un gioco g (oggetto della classe
Gioco
), restituisce
true se il gioco g č disponibile nella
Ludoteca, false altrimenti;
- chiHaIlGioco: che dato un gioco g, restituisce
la persona a cui č stato prestato, oppure
null
se il
gioco non č stato prestato;
- numeroGiochi: che restituisce il numero di giochi nella
Ludoteca;
- numeroGiochiPrestati: che restituisce il numero di giochi nella
Ludoteca che sono stati prestati;
- aggiungiGioco: che, dato un gioco g, lo aggiunge a
quelli della Ludoteca;
- eliminaGioco: che, dato un gioco g, lo elimina
da quelli della Ludoteca; se il gioco non
č presente non fa nulla;
- prestaGioco: che, dato un gioco g e una persona
p, presta il gioco alla persona, se questo esiste e se non č
gią in prestito; altrimenti lancia una eccezione;
- restituisciGioco: che, dato un gioco g,
restituisce il gioco, se questo esiste ed č in prestito,
altrimenti lancia una eccezione;
- tuttiIGiochi: che restituisce un
array di giochi contenente i tutti i giochi presenti nella
Ludoteca.
Parte 2.
Realizzare la classe ServiziLudoteca
, contenente il
metodo statico
giochiInComune
, cliente della classe Ludoteca
che,
dati
- un oggetto lt della classe
Ludoteca
,
- due interi e1 ed e2 che rappresentano due etą,
- il nome fout di un file,
scrive sul file fout, un gioco per riga, le informazioni (nome e
fascia di etą) relative ai giochi non in prestito in lt,
che sono adatti sia alle persone di etą e1 che alle persone di
etą e2.
Parte 3.
Scrivere una classe cliente di Ludoteca
e
ServiziLudoteca
, contenente un metodo main
,
che utilizzi tutte le funzionalitą delle due classi.