Testo Es 06072015 D
Testo Es 06072015 D
6 Luglio 2015
PROGRAMMAZIONE
Si scriva un programma per la gestione degli arrivi ad un porto di N moli. La quantità di moli N è definita tramite
una direttiva #define. I moli hanno diverse dimensioni. Le dimensioni (in metri) sono riportate in un file passato
come primo argomento da linea di commando, costituito da N righe. Ogni riga del file ha il seguente formato:
<MOLO> <METRI>
Dove MOLO e METRI sono due numeri interi.
Il programma deve gestire l’arrivo di navi di diverse dimensioni e farle attraccare al molo più adatto alle sue
dimensioni. Il programma deve chiedere tramite console il nome e la dimensione della prossima nave da far
attraccare. Il nome della nave è una stringa di massimo 20 caratteri senza spazi e la dimensione è un intero.
Dopo ogni attracco, il programma deve continuare a chiedere una nuova nave da attraccare, fino al ricevimento
della stringa “QUIT” o al momento in cui tutti i moli sono occupati.
Il molo in cui la nave può attraccare non può essere più piccolo della dimensione della nave stessa ma può essere
più grande. Tuttavia il programma deve allocare la nave sul molo libero che abbia una lunghezza con minima
differenza rispetto a quella della nave. In ogni molo può attraccare una sola nave. In caso non esista alcun molo che
possa ospitare la nave il programma deve segnalarlo con il messaggio “Nessun molo delle dimensioni
adatte disponibile: cambiare porto”.
In caso di moli tutti occupati il programma deve mandare un messaggio su console “Moli pieni” e terminare.
Al termine dell’esecuzione il programma deve salvare su un secondo file specificato come secondo argomento sulla
linea di comando la situazione degli attracchi per ogni molo, ovvero il numero del molo e il nome della nave
attraccata. Non salvare nel file d’uscita le informazioni relative ai moli presso cui non sono presenti navi attraccate.
File attracchi.txt:
Molo 0 Zebra
Molo 1 Tempesta
Molo 2 Iceberg
Molo 3 Fortunale