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.