Costruire una lampadina che possa essere nello

Si vuole simulare il funzionamento della cassa per il pagamento del pedaggio all’entrata di
un tunnel lungo 25 km, la cui entrata è vietata ai camion che trasportano liquidi
infiammabili, alle moto con cilindrata inferiore a 125 cc. Pertanto prima di emettere il
ticket, bisogna verificare che il veicolo che si è presentato alla cassa possa entrare nel
tunnel: se l’accesso è negato, il veicolo dovrà percorrere la strada alternativa che però è
lunga 90 km.
I veicoli pagano importi diversi:
1. le moto ammesse (cilindrata > 125) pagano 7 euro
2. le automobili pagano 12 euro
3. i camper pagano 2 euro per ogni metro di lunghezza
4. i camion pagano 5 euro a tonnellata di peso
Scrivere il codice del programma che permetta di far pagare il pedaggio ai veicoli che
arrivano: quando un veicolo arriva alla cassa il cassiere deve scegliere il tipo di veicolo
arrivato tra moto, automobile, camper e camion in base al seguente diagramma delle
classi, creando in modo casuale le caratteristiche dei veicoli (cilindrata per le moto,
lunghezza per il camper, peso (2 - 12) e trasporto liquidi infiammabili (0-1)….).
Classe Cassa:
menu() = Deve gestire in un ciclo che termina a richiesta dell’utente le funzionalità
richieste e precisamente:
Fondazione ITS A. Volta – linguaggi – Flavia Lollis
1

Arrivo veicolo – viene scelto il tipo di veicolo arrivato e richiesti i dati caratterizzanti
(oppure creati in modo casuale) e si richiede l’emissione del ticket chiamando il
metodo emettiTicket
 uscita
emettiTicket(Veicolo ve) – si deve verificare se il veicolo arrivato è ammesso al tunnel,
se lo è si calcola l’importo da pagare calcolato in base al tipo di veicolo, altrimenti si rifiuta
l’accesso al tunnel.
Classe Veicolo
Veicolo() : costruttore senza parametri;
calcolaPedaggio() - metodo vuoto che restituisce un importo nullo; le classi figlie
faranno override di questo metodo
accessoOK() - il metodo è vuoto e restituisce un boolean impostato a false; le classi figlie
faranno override di questo metodo
Classe Automobile:
Automobile(): costruttore senza parametri che crea un’automobile che non né a gas né
elettrica.
Automobile(int g, int e): costruttore che ha come parametri i flag per indicare se
l’automobile è a gas o elettrica
calcPedaggio() : in base a quanto è stato definito per le automobili calcola il pedaggio
da pagare e restituisce l’importo
accessoOK() - il metodo restituisce il valore true perché tutte le automobili sono
ammesse
Classe Moto:
Moto(): costruttore senza parametri che crea una moto la cui cilindrata è un numero
casuale tra 50 e 600.
Moto(int c): costruttore che ha come parametro la cilindrata della moto
calcPedaggio() : in base a quanto è stato definito per le moto calcola il pedaggio da
pagare e restituisce l’importo
accessoOK() - il metodo restituisce il valore true se la cilindrata > 125, altrimenti false
Classe Camper:
Camper(): costruttore senza parametri che crea un camper la cui lunghezza è un numero
casuale tra 4 e 9.
Camper(int l): costruttore che ha come parametro la lunghezza del camper
calcPedaggio() : in base a quanto è stato definito per i camper calcola il pedaggio da
pagare e restituisce l’importo
accessoOK() - il metodo restituisce il valore true perché tutti i camper sono ammessi
Fondazione ITS A. Volta – linguaggi – Flavia Lollis
2
Classe Camion:
Camion(): costruttore senza parametri che crea un camion il cui peso è un numero
casuale tra 2 e 20.
Camion(int p): costruttore che ha come parametro il peso del camion
calcPedaggio() : in base a quanto è stato definito per i camion calcola il pedaggio da
pagare e restituisce l’importo
accessoOK() - il metodo restituisce il valore true entrambi i flag sono = 0, altrimenti false
Fondazione ITS A. Volta – linguaggi – Flavia Lollis
3