Prova al calcolatore
Compito B
Durata: 1:45
Prima parte
Il "Centro Musicologico Tromba di Eustachio", che mantiene cataloghi
delle opere dei principali compositori, vuole informatizzare il suo archivio.
A questo scopo, va realizzata una classe Composizione. I dati di ogni
composizione sono i seguenti:
- autore
- una stringa che contiene il nome del compositore
- nome
- una stringa che contiene il nome della composizione
- tonalita
- una stringa che contiene la tonalità della composizione
- anno
- anno in cui la composizione è stata scritta (un int)
Si realizzi la classe Composizione, le cui componenti (variabili
di istanza) sono nome, opera, tonalita, anno.
La classe deve avere un costruttore a 4 argomenti e metodi get e set
per ogni componente. Si realizzino anche i metodi toString ed equals.
Seconda parte
Per gestire i cataloghi delle composizioni, si vogliono memorizzare i dati
relativi alle composizioni in catalogo. A questo scopo, si realizzi la classe
Catalogo; per ogni catalogo, va rappresentato l'insieme delle composizioni,
usando un array, oppure una LinkedList, oppure una Lista,
oppure un HashSet. I metodi da implementare sono i seguenti:
- static Composizione readComposizione(BufferedReader br)
- legge i dati di una composizione dal BufferedReader passato come
argomento: ritorna un oggetto Composizione con questi dati, oppure
null se non è stato possibile leggere i dati perchè
il file è finito;
- Catalogo(String nomefile)
- il costruttore ha come parametro il nome di un file che contiene i dati
di un catalogo: i dati delle composizioni contenute nel file vengono letti
e memorizzati nella struttura dati usata per la loro memorizzazione
- void stampaComposizioni(String autore, int annoIniziale, int annoFinale)
- stampa su schermo i dati di tutte le composizioni in catalogo dell'autore
specificato dal parametro autore che siano state composte tra annoIniziale
e annoFinale (compresi).
- Composizione composizionePiuVecchia(String tonalita)
- restituisce la composizione più vecchia in catalogo che abbia la
tonalità specificata dal parametro tonalita. Se il catalogo
non contiene alcuna composizione con quella tonalità, restituire null.