Prova al calcolatore
Compito D
Durata: 1:45
Prima parte
La catena di enoteche ``Nonsolovini'' vuole realizzare un
programma di memorizzazione dei dati relativi ai magazzini.
A questo scopo, va realizzata la classe Annata, che
rappresenta i dati relativi alle bottiglie di un certo vino
e di una certa annata. Per ogni annata, vanno memorizzati i
seguenti dati:
- nome
- nome del vino (una stringa)
- produttore
- il nome del produttore del vino (una stringa)
- anno
- l'anno in cui il vino è stato prodotto
(un intero)
- gradazione
- la gradazione alcolica del vino (un reale)
Si realizzi la classe Annata, le cui componenti
(variabili di istanza) sono nome, produttore, anno,
gradazione. La classe deve essere incapsulata, ossia deve
avere tutte le variabili di istanza private e i tutti i
metodi get e set. Deve essere realizzato
anche un costruttore con quattro argomenti, e i metodi
toString ed equals
Seconda parte
È necessario realizzare la classe che rappresenta
l'insieme di tutte le annate di tutti i tipi di vino vendute
da una enoteca della catena. A questo scopo, si realizzi la classe
Enoteca; un oggetto di questa classe rappresenta un
insieme di oggetti Annata usando un array, oppure
una LinkedList, oppure un HashSet oppure
una Lista. I metodi da implementare sono i
seguenti:
- static Annata readAnnata(BufferedReader br)
- legge i dati di una annata dal BufferedReader passato come
argomento: ritorna un oggetto Annata con questi dati,
oppure null se non è stato possibile leggere
i dati perchè il file è finito;
- Enoteca(String nomefile)
- il costruttore ha come parametro il nome di un file: i
dati delle annate contenute nel file vengono lette e
memorizzate nella struttura dati usata per la loro
memorizzazione
- boolean gradiOk()
- per effettuare il controllo di qualità, si vuole
verificare se tutti i vini hanno gradazione alcolica
compresa fra 5 e 12,5; questo metodo restituisce
true se questa condizione è vera per tutte
le annate
- double mediaGradi(String nome)
- calcola la gradazione alcolica media per tutte le annate
di un vino il cui nome viene passato come parametro