Esame laboratorio di programmazione - Compito A
Parte I
Un territorio è stato diviso in zone, che a sua volta
possono essere composte da altre zone più piccole. Il
tuo compito è quello di realizzare delle classi che
servono a rappresentare queste zone. Vanno in particolare
rappresentate le seguenti classi:
- Zona
- una zona, che può essere solo o una zona semplice
oppure una zona composta
- ZonaSemplice
- di una zona semplice si vogliono rappresentare la sua
superfice (un reale) e l'insieme di edifici che si trovano
all'interno di essa
- Edificio
- di un edificio si rappresentano le sue coordinate (x,y)
e la sua altezza
- ZonaComposta
- una zona composta è composta da altre zone, che
possono essere sia semplici che composte
Queste classi vanno messe in un package geo. Tutte
le classi devono essere incapsulate e i loro oggetti non
modificabili. Specificare dove si ammettono valori nulli (se
si ammettono). Vanno realizzati i seguenti metodi in tutte
le classi:
- costruttore e metodi get
- metodi standard toString, equals,
hashCode e clone (che realizza la
clonazione profonda)
Parte II
In una classe al di fuori del package inserire i seguenti
metodi:
- static boolean verificaDivisioni(Zona z)
- verifica che in una zona composta che si trova
all'interno di una zona composta che si trova all'interno di
una zona composta non contenga a sua volta delle zone composte
- static int valore(Zona z, Map<Edificio, Integer> a)
- data una zona e un assegnamento che dice quanto valgono
gli edifici, questo metodo calcola il valore totale degli
edifici della zona