Un compito di esame completo

L'esame si svolge al calcolatore, e dura un'ora e tre quarti.

Vengono dati: due programmi di prova, un file di prova, e il testo del compito in formato html. Lo studente deve realizzare due classi che vengono usate dai due programmi di prova:


Prima classe

Una libreria vuole realizzare un programma di gestione del magazzino. Per ogni libro, i dati da rappresentare sono i seguenti:

titolo
una stringa
autore
una stringa
prezzo
un numero reale
copie
numero di copie presenti in magazzino: un intero

Definire la classe incapsulata Libro i cui oggetti siano rappresentazione di libri. I nomi delle componenti devono essere: titolo, autore, prezzo, copie. Devono essere realizzati i seguenti metodi:


Seconda classe

Definire una seconda classe i cui oggetti rappresentano tutti i libri di una certa casa editrice. Ogni oggetto di questa classe Editore è quindi la rappresentazione di un insieme di oggetti Libro. Per rappresentare insiemi di oggetti, usare un array.

Costruttore della classe:

Editore(String nomefile)
crea un oggetto Editore che rappresenta l'insieme di tutti gli oggetti Libro che sono memorizzati nel file il cui nome è dato dalla stringa passata come argomento; la prima linea del file contiene il numero degli oggetti memorizzati su file.

Metodi della classe:

void stampaEsauriti()
stampa il titolo e l'autore dei libri esauriti (quelli per i quali non ci sono copie in magazzino)
int quantiEconomici(double prezzoMax)
trova il numero totale di libri il cui prezzo è inferiore a prezzoMax

Soluzione

Vengono dati i seguenti file, che lo studente trova gia' sul calcolatore.

La soluzione consiste in due file che lo studente dovrà realizzare: