Si vuole realizzare una classe Nastro
in modo tale che ogni
oggetto della classe rappresenti un nastro utilizzato per memorizzare programmi
televisivi. Di ogni programma sono di interesse le seguenti informazioni:
Ogni nastro ha una certa capienza e ad ogni programma memorizzato sul nastro è associata una posizione (le posizioni sono progressive a partire da 0). Della classe sono di interesse le seguenti funzionalità:
capienzaResidua()
, che restituisce la capienza
residua del nastro in minuti;
quantiProgrammi()
, che restituisce il numero di
programmi memorizzati sul nastro;
memorizza()
, che dati come parametri il nome e la
durata di un programma, memorizza il programma nella prossima posizione sul
nastro, se la capienza residua del nastro è sufficiente a contenere il
programma; se la capienza residua del nastro non è sufficiente, lancia
una RuntimeException
;
qualeProgramma()
, che data una posizione n
del nastro, restituisce il nome del programma in posizione n, se
questo esiste, lancia una RuntimeException
altrimenti.
qualeDurata()
, che data una posizione n del
nastro, restituisce la durata del programma in posizione n, se questo
esiste, lancia una RuntimeException
altrimenti.
Parte 1
Si realizzi la classe Nastro
utilizzando una
lista collegata per rappresentare i programmi memorizzati su un nastro.
Soluzione:
rappresentazione degli
oggetti,
scheletro della classe,
classe Nastro
Parte 2
Si realizzi una classe cliente della classe
Nastro
, contenente un metodo statico che, presi come parametri un
nastro ed il nome di un file, stampa sul file posizione, nome e durata di tutti
programmi memorizzati sul nastro, uno per riga. Il metodo deve inoltre
stampare sul file la durata complessiva dei programmi memorizzati sul nastro e
la capienza residua del nastro.
Parte 3
Si realizzi un programma di prova che crea un nastro, memorizza qualche
programma e poi chiama il metodo della classe cliente per salvare su
file le informazioni sul nastro.