appello

Transcript

appello
Linguaggi di Programmazione II (6-7)
Prova scritta Giugno 2005
Cognome e Nome:
Numero di Matricola:
S. La Torre e B. Masucci
Spazio riservato alla correzione
1
/10
2
/10
3
/70
totale
/90
1) [10 punti] Descrivere la classe Object e i suoi metodi. Fornire un esempio di sottoclasse
di Object sovrascrivendo i metodi toString, equals e clone.
2) [10 punti] Descrivere brevemente il concetto di polimorfismo e la sua realizzazione in Java.
Dare un breve esempio sull’uso del polimorfismo.
3)
[70 punti totali]
a. [15 punti] Definire la classe PolizzaBase per assicurazioni auto comprendenti la
sola responsabilità civile (RC). Una polizza base è caratterizzata dalla targa del
veicolo (ad esempio “CA 075 DS”) e dal valore assicurato RC. Oltre al metodo
costruttore, la classe deve fornire i seguenti metodi:
• String getTarga()
• int getValoreRC()
• int getPremioAnnuo() che restituisce il valore del premio annuale,
pari ad 1/100 del valore assicurato
• String toString()
• boolean equals(Object o)
• Object clone()
b. [15 punti] Una polizza auto incendio e furto si differenzia da una polizza base in
quanto prevede, in aggiunta al valore assicurato RC, un valore assicurato per
incendio e furto del veicolo. Inoltre il premio annuale è pari ad 1/100 della somma
dei valori assicurati RC ed incendio e furto. Definire la nuova classe
PolizzaIncendioFurto motivando le scelte effettuate.
c. [20 punti] Definire la classe AgenziaAssicurativa che fornisce i seguenti
metodi:
• Un costruttore che crea un archivio vuoto di polizze di assicurazioni per auto;
• addPolizza(PolizzaBase p) che inserisce una polizza nell’archivio;
• deletePolizza(PolizzaBase p) che cancella una polizza
dall’archivio;
• getPolizza(int i) che restituisce l’i-esima polizza nell’archivio;
• cercaPolizza(String targa) che restituisce la polizza associata a
targa;
• sommaPremi() che restituisce la somma dei premi annuali di tutte le
polizze nell’archivio.
d. [20 punti] Scrivere un’applicazione grafica Java che gestisca un’agenzia assicurativa.
Il programma deve creare un oggetto della classe AgenziaAssicurativa e
fornire i pulsanti e i campi di testo per: inserire polizze, recuperare una polizza
precedentemente inserita digitando la targa del veicolo, cancellare una polizza
precedentemente inserita digitando la targa del veicolo e calcolare l’ammontare
totale dei premi annuali delle polizze in archivio. Il programma deve visualizzare
l’output in un’area di testo.
Pag. 1