• Non ci sono risultati.

(c) un metodo che restituisce l’elenco dei valori assicurati RC di tutte le polizze dell’agenzia

N/A
N/A
Protected

Academic year: 2021

Condividi "(c) un metodo che restituisce l’elenco dei valori assicurati RC di tutte le polizze dell’agenzia"

Copied!
4
0
0

Testo completo

(1)

Definizione di classi con array di oggetti

1. (Esame scritto del 18/9/2002, Esercizio 6 .)

La banca dati di un’agenzia assicurativa per auto `e caratterizzata da un insieme di polizze di assicurazioni per auto. Usando le classi PolizzaBase e PolizzaIncendioFurto definite negli esercizi precedenti, scrivere una semplice classe AgenziaAssicurativa, dove ciascun oggetto della classe `e caratterizzato dal nome dell’agenzia e da un elenco di polizze auto (il cui numero massimo deve essere impostato dal costruttore della classe), che abbia i seguenti metodi:

(a) un metodo che aggiunge una polizza;

(b) un metodo che restituisce la somma dei premi annui di tutte le polizze dell’agenzia;

(c) un metodo che restituisce l’elenco dei valori assicurati RC di tutte le polizze dell’agenzia.

public class AgenziaAssicurativa { private String nome;

private PolizzaBase[] elenco;

private int cont;

public AgenziaAssicurativa (String s, int max) { nome = s;

elenco = new PolizzaBase[max];

}

public void addPolizza (PolizzaBase p) { if (cont < elenco.length) {

elenco[cont] = p;

cont++;

} }

public int sommaPremi() { int somma = 0;

for (int i = 0; i < cont; i++) { somma += elenco[i].premio();

}

return somma;

}

public int[] elencoValoriRC() { int[] a = new int[cont];

for (int i = 0; i < cont; i++) { a[i] = elenco[i].getValoreRC();

}

return a;

} }

1

(2)

2. Aggiungere alla classe AgenziaAssicurativa i seguenti metodi:

• un metodo che restituisce l’elenco di tutte le targhe dei veicoli assicurati presso una data agenzia assicurativa;

• un metodo che cancella una polizza da una agenzia assicurativa;

• un metodo che scambia due polizze tra due agenzie assicurative.

public String[] elencoTarghe() { String[] a = new String[cont];

for (int i = 0; i < cont; i++) { a[i] = elenco[i].getVeicolo();

}

return a;

}

public void deletePolizza (PolizzaBase p) { int i = 0;

while (i<cont) {

if (p.getVeicolo().equals(elenco[i].getVeicolo())) { for (int j=i; j<cont-1; j++)

elenco[j] = elenco[j+1];

cont--;

return;

}

else i++;

} }

public void scambiaPolizze (AgenziaAssicurativa a, PolizzaBase p, PolizzaBase q) { int pos1 = this.posizione(p);

int pos2 = a.posizione(q);

if (pos1 != -1 && pos2 != -1) {

PolizzaBase temp = this.elenco[pos1];

this.elenco[pos1] = a.elenco[pos2];

a.elenco[pos2] = temp;

} }

public int posizione (PolizzaBase p) { for (int i=0; i<cont; i++) {

if (p.getVeicolo().equals(elenco[i].getVeicolo())) return i;

}

return -1;

}

2

(3)

3. Scrivere inoltre un breve programma di prova che illustri l’uso delle classi PolizzaBase, PolizzaIncendioFurto e AgenziaAssicurativa e dei loro metodi.

public class AATest {

public static void main (String[] args) {

AgenziaAssicurativa a = new AgenziaAssicurativa("AA",10);

PolizzaBase p = new PolizzaBase("AB122AN",10000);

PolizzaBase q = new PolizzaBase("AS546CV",20000);

PolizzaIncendioFurto r = new PolizzaIncendioFurto("AN334DE",10000,5000);

a.addPolizza(p);

a.addPolizza(q);

a.addPolizza(r);

int[] v = a.elencoValoriRC();

System.out.println("Valori RC:");

for (int i=0; i<v.length; i++) System.out.println(v[i]);

System.out.println("Somma premi: " + a.sommaPremi());

AgenziaAssicurativa b = new AgenziaAssicurativa("AB", 5);

PolizzaIncendioFurto s = new PolizzaIncendioFurto("AX237FD",5000,2000);

b.addPolizza(s);

String[] ta = a.elencoTarghe();

System.out.println("Veicoli assicurati dall’agenzia "+ a.getNome());

for (int i=0; i<ta.length; i++) System.out.println(ta[i]);

String[] tb = b.elencoTarghe();

System.out.println("Veicoli assicurati dall’agenzia "+ b.getNome());

for (int i=0; i<tb.length; i++) System.out.println(tb[i]);

a.scambiaPolizze(b,q,s);

System.out.println("Eseguito uno scambio di polizze, si ha:");

ta = a.elencoTarghe();

System.out.println("Veicoli assicurati dall’agenzia "+ a.getNome());

for (int i=0; i<ta.length; i++) System.out.println(ta[i]);

tb = b.elencoTarghe();

System.out.println("Veicoli assicurati dall’agenzia "+ b.getNome());

for (int i=0; i<tb.length; i++) System.out.println(tb[i]);

a.deletePolizza(p);

System.out.println("Cancellata una polizza, si ha:");

ta = a.elencoTarghe();

System.out.println("Veicoli assicurati dall’agenzia "+ a.getNome());

for (int i=0; i<ta.length; i++) 3

(4)

System.out.println(ta[i]);

} }

Il risultato di tale programma di prova `e la seguente stampa:

Valori RC:

10000 20000 10000

Somma premi: 450

Veicoli assicurati dall’agenzia AA AB122AN

AS546CV AN334DE

Veicoli assicurati dall’agenzia AB AX237FD

Eseguito uno scambio di polizze, si ha:

Veicoli assicurati dall’agenzia AA AB122AN

AX237FD AN334DE

Veicoli assicurati dall’agenzia AB AS546CV

Cancellata una polizza, si ha:

Veicoli assicurati dall’agenzia AA AX237FD

AN334DE

4

Riferimenti

Documenti correlati

La Mobiliare offre un premio assicu- rativo di 860.30 franchi per la eGolf che risulta inferiore del 46% rispetto a quel- lo per la Golf TDI (diesel) e del 42% più

In particolare, le presenti Norme e Condizioni Aggiuntive disciplinano (1) il rapporto tra le Parti in relazione alla messa a disposizione, selezione e adesione del Cliente

La Società nei casi di responsabilità dell'Assicurato in conseguenza di incendio o di esplosione o scoppio del veicolo assicurato, anche non in circolazione ai

c) la somma riportata ai due punti precedenti è diminuita delle eventuali parti di capitale disinvestite dalla Gestione separata, tramite Riscatti parziali e/o operazioni

b) Controvalore del Capitale investito nel Fondo interno assicurativo, calcolato moltiplicando il numero delle Quote per il Valore unitario delle stesse del 2° giorno di Borsa

b) Veicolo assicurato con altra impresa Nel caso in cui il contratto stipulato con la Società si riferisca a veicolo assicurato presso altra impresa, anche con forma

 per la prestazione dei servizi connessi all’attività assicurativa e riassicurativa oggetto della Polizza (compreso, ad esempio, l'invio di comunicazioni funzionali

• per l’adempimento di obblighi di legge, inclusi gli adempimenti di natura fiscale, amministrativa e contabile connessi all’esecuzione del contrato e obbligazioni relative