Simulazione traffico marittimo: Scrivete un programma per la

Transcript

Simulazione traffico marittimo: Scrivete un programma per la
NOME:
MATR.:
LA CASCIA
PROVA 1
Simulazione traffico marittimo:
Scrivete un programma per la simulazione del traffico marittimo nello stretto di Messina. Nello
stretto possono transitare natanti di vario tipo e in particolare: navi mercantili (che a loro volta
possono essere petroliere e portacontainer) e navi passeggeri (traghetti o navi da crociera).
Si supponga che tutti i natanti siano caratterizzati da un codice univoco di 10 caratteri e abbiano
una posizione (in coordinate cartesiane), una velocità (espressa in nodi), una direzione (un angolo
fra 0 e 359), e delle dimensioni (lunghezza e larghezza). I natanti si dividono in navi mercantili e
navi passeggeri.
Le navi mercantili sono inoltre caratterizzate dal valore del carico trasportato in euro mentre le navi
passeggeri dal numero di passeggeri a bordo. Le navi mercantili possono essere a loro volta
petroliere, caratterizzate dal tipo di combustibile trasportato (una stringa) e dalla quantità in
tonnellate, o navi portacontainer caratterizzate dal numero di container, dal peso totale del carico
e dall’altezza massima del carico sul ponte.
Le navi passeggeri possono essere navi traghetto, caratterizzate dal numero di auto, di camion e
di vagoni ferroviari trasportati, o navi da crociera caratterizzate dal numero di cabine di I, di II e di
III classe.
Tutti i natanti devono avere un metodo Avanza(), che aggiorna le coordinate in base alla velocità e
alla direzione e un metodo polimorfo Modifica() che permette la modifica di tutti i parametri.
Scrivete una gerarchia di classi al cui livello più alto c’è la classe astratta Natante e ai livelli
inferiori le varie tipologie di natanti. Riportate la suddetta gerarchia anche in forma grafica.
Scrivete una classe Simulatore che, attraverso un suo metodo, permette di invocare il metodo
Avanza() di tutti i natanti presenti nello stretto. La classe Simulatore deve anche permettere di
modificare i parametri dei vari natanti. L’individuazione dei natanti da modificare avverrà mediante
l’inserimento di due coppie di coordinate che individuano un rettangolo. Per tutti i natanti che si
trovano dentro il rettangolo verrà invocato il metodo Modifica() che interattivamente da la
possibilità all’utente di modificare i parametri.
Utilizzate le classi di cui sopra in un programma che crea un oggetto Simulatore, gestisce
l’interazione con l’utente mediante un menu per inserimento, eliminazione o modifica natanti, e
periodicamente invoca il metodo del simulatore che fa avanzare tutti i natanti.
Prevedete nella classe simulatore anche un metodo per la verifica e prevenzione di collisioni.
PROGRAMMAZIONE A.A. 2002-2003
PROVA DEL 21/01/03
LA CASCIA
PROVA 1