Laboratorio di Programmazione - A.A. 2004/05
Esercizio
Realizzare la classe Guardaroba
(vedi esercitazione
2), all'interno del package packg
, facendo uso di una delle
collazione messe a disposizione dal Java Collections Framework
.
Si ricorda che il Guardaroba ha un nome e una collezione di abiti depositati.
Ogni abito consegnato è contrassegnato da un codice (una stringa) che
lo identifica univocamente e la collezione degli abiti depositati nel guardaroba
deve essere mantenuta ordinata rispetto a questo codice. Gli oggetti di tipo
Abito sono rappresentati tramite una classe Java Abito
già definita che si trova in un package packa
, il cui codice
è in packa.
Gli oggetti Guardaroba supportano le seguenti funzionalità:
- crea: che, data una stringa n che rappresenta il nome
del Guardaroba, crea un oggetto Guardaroba con nome n,
che inizialmente non ha alcun abito depositato;
- nome: che restituisce il nome del Guardaroba;
- presente: che, data una stringa c rappresentante il codice
di un abito depositato, restituisce true se il codice c
è associato ad un abito depositato nel Guardaroba, false
altrimenti;
- numeroAbitiDepositati: che restituisce il numero di abiti depositati
nel Guardaroba;
- qualePosizione: che, data una stringa c rappresentante
il codice di un abito depositato, restituisce un intero rappresentante la
posizione dell'abito depositato nella collezione (0 per il primo elemento,
numeroAbitiDepositati-1 per l'ultimo), oppure lancia una eccezione
se tale codice non è presente nel guardaroba. Poiché la collezione
degli abiti depositati deve essere ordinata questo metodo deve soddisfare
la seguente condizione: dati due codici c1 e c2 tali che
c1 precede c2 secondo l'ordine lessicografico delle stringhe,
allora qualePosizione(c1) deve essere minore di qualePosizione(c2).
- qualeCodice: che, dato un intero n rappresentante la posizione
di un abito nella collezione (0 per il primo elemento, numeroAbitiDepositati-1
per l'ultimo), restituisce la stringa corrispondente al codice dell'abito
depositato; se l'indice della posizione è fuori dai limiti si generi
una eccezione;
- qualeAbito: che, data una stringa c rappresentante il
codice di un abito depositato, restituisce l'oggetto
Abito
corrispondente,
oppure lancia una eccezione se tale codice non è presente nel guardaroba;
- consegnaAbito: che, dati un abito a e un codice c,
aggiunge l'informazione nel Guardaroba, mantenendo la collezione
ordinata secondo il codice; se esiste già un abito associato al codice
c, si lanci una eccezione;
- ritiraAbito: che, dato il codice c di un abito, elimina
l'abito dal guardaroba; se il codice non è presente non fa nulla;
Verificare che i clienti della Guardaroba
sviluppati nell'esercitazione
2 funzionino correttamente per questa versione della classe Guardaroba
.