Prova al calcolatore

Compito B
Durata: 1:45

Prima parte

Si vogliono rappresentare le commesse dell'attività commerciale "Frioli Arte Funeraria". In particolare, per ogni lapide commissionata, vanno memorizzati i seguenti dati:

nome
una stringa, che indica cosa va scritto sulla lapide
x, y
due interi, che rappresentano la dimensione della lapide
preventivo
un reale, che indica il prezzo preventivato della lapide
finale
un reale, che indica il prezzo finale della lapide: se vale zero, la lapide non è stata ancora completata

Scrivere una classe Lapide i cui oggetti contengono queste variabili di istanza (componenti): nome, x, y, preventivo, finale. La classe deve avere un costruttore a 5 argomenti e metodi get e set per ogni componente. La classe deve anche avere i due metodi toString ed equals.


Seconda parte

Per ogni agenzia, vanno memorizzate le lapidi da essa commissionata. Si realizzi la classe Agenzia che rappresenta quindi insiemi di lapidi. Usare un array, oppure una LinkedList, oppure una Lista, oppure un HashSet per rappresentare un insieme di oggetti Lapide. In tale classe devono essere presenti i seguenti metodi:

static Lapide readLapide(BufferedReader br)
legge i dati di una lapide da BufferedReader passato come argomento, e ritorna questo oggetto; se non è possibile leggere un oggetto a causa della fine del file, si ritorni null
Agenzia(String nomefile)
il costruttore ha come parametro il nome di un file: i dati delle lapidi contenuti nel file vengono letti e memorizzati nella struttura dati usata per la loro memorizzazione
int quanteDaFinire()
verifica quante lapidi sono ancora da finire (le lapidi non complete hanno il valore di finale pari a zero)
int maxPrezzoRelativo()
determina il valore massimo del rapporto tra il prezzo e l'area della lapide; per le lapidi non complete si usa il prezzo preventivato, per quelle complete il prezzo finale.