Esame laboratorio di programmazione - Compito A

Parte I

Vanno realizzate dell classi che rappresentino dati relativi ad una rete fognaria. Si suppone che le condutture si colleghino fra loro soltanto ai pozzetti. Ogni pozzetto ha una sola conduttura di uscita. Si realizzino le seguenti classi:

Conduttura
per ogni conduttura vengono memorizzate la lunghezza e il pozzetto di partenza e di arrivo; si usa il valore null come pozzetto di uscita per indicare che la conduttura scarica al di fuori della rete
Pozzetto
per ogni pozzetto vengono rappresentate le sue coordinate (due interi), l'insieme delle condutture entranti e la (singola) conduttura uscente
Allaccio
un allaccio è un punto in cui la fognatura di un edificio si collega alla rete fognaria; esisono due tipi di allacci, ma in ogni caso va memorizzato l'indirizzo (una stringa) dell'edificio
AllaccioConduttura
è un allaccio che è stato fatto su una conduttura; va memorizzata la conduttura e il punto di allaccio in termini di distanza dall'inizio della conduttura
AllaccioPozzetto
è un allaccio su un pozzetto; in questo caso va memorizzato soltanto il pozzetto

Queste classi vanno messe in un package fogna. Tutte le classi devono essere incapsulate e i loro oggetti non modificabili. Non sono ammessi valori nulli. Vanno realizzati i seguenti metodi in tutte le classi:

Parte II

In una classe al di fuori del package inserire i seguenti metodi:

static int lunghezza(Allaccio a)
dato un allaccio, calcolare qual'è la distanza da esso all'uscita delle rete fognaria (somma delle lunghezze delle condutture)
static int lunghezzaTotale(Conduttura c)
data una conduttura di uscita, calcolare la lunghezza totale delle condutture della rete che scarica attraverso essa