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:
- la prima classe è piuttosto semplice;
- gli oggetti della seconda classe rappresentano un
insieme di oggetti della prima classe; si usano vettori e
i metodi richiedono l'uso dei cicli.
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:
- metodi get e set per tutte le
componenti; i metodi set per le componenti
numeriche devono verificare che il prezzo sia maggiore di
zero e il numero non sia negativo;
- metodo costruttore che ha come argomento un
BufferedReader; il metodo deve leggere i valori da
mettere nell'oggetto da file.
- un metodo toString the restituisce una stringa in cui ci
sono tutte le componenti dell'oggetto
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: