Costruire una lampadina che possa essere nello

annuncio pubblicitario
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
Scarica