Si vuole realizzare un sistema informativo per gestire un concessionario. Il concessionario vende
diverse tipologie di vetture; in particolare le tipologie possibili sono: automobile, motocicletta e veicolo
commerciale. Di una vettura interessa conoscere la targa e il costo. Di un auto interessa conoscere la
marca e la cilindrata. Inoltre un’auto `e dotata di una lista di optionals. Ciascun optional `e identificato
mediante un codice, un nome ed un prezzo. Di una moto interessa conoscere la targa e se il motore `e
a due oppure a quattro tempi. Di un veicolo commerciale interessa la portate. Ciascuna vettura pu`o
essere acquistata da un cliente. Un cliente `e identificato da un codice fiscale, un nome, un cognome e
una data di nascita. Un cliente pu`o, eventualmente, comprare pi`u vetture.
Con riferimento allo scenario sopra descritto, si chiede di risolvere i seguenti punti:
² Modellare in Java lo scenario sopra descritto. Dotare ciascuna delle classi individuate in fase di
analisi di un costruttore. Dotare ciascuna delle classi dei metodi di accesso giudicati opportuni.
² Scrivere una funzione che, data un’auto, restituisca il numero di optional di cui `e dotata.
² Scrivere una funzione che, dato un cliente C, restituisca la spesa storica di C, ovvero la somma
che C ha globalmente speso per comprare veicoli nel passato.
² Scrivere una funzione che riceve in ingresso un intero x e un’auto A e restituisce true se l’auto
A ha solo optional di costo maggiore di x.
² Scrivere una funzione che, data un’auto, calcoli l’optional pi`u costoso associato a quell’auto.
² Scrivere una funzione che, dati due clienti C1 e C2 e un intero y, restituisca true se e solo se C1
e C2 hanno comprato veicoli di costo inferiore a y.



