Università di Napoli Federico II
Corso di Laurea in Ingegneria Informatica - Esame di Programmazione 1 - Prova pratica del 1/02/2010
Durata della prova: 2h
Cognome ......................................... Nome .................................. Matr. .............................
Testo della prova
Si realizzi in linguaggio C++ un programma per la memorizzazione di una lista di libri su file binario. Allo scopo si definisca una classe Libro avente tre variabili membro: autori, titolo (di tipo stringa) e anno (di tipo intero).
Siano definiti per tale classe i metodi per la lettura del valore di ciascuna variabile membro ed un metodo stampa per la stampa a video di tali valori. Si definiscano come funzioni amiche della classe Libro i seguenti operatori:
- ifstream& operator>>(ifstream& file, Libro& libro) throw (Error); legge dal file binario file i valori dei membri della classe Libro e li assegna all'oggetto libro
- ofstream& operator<<(ofstream& file, Libro& libro) throw (Error); scrive nel file binario file i valori dei membri dell'oggetto libro
Nel leggere/scrivere stringhe dal/nel file, si consideri che vanno memorizzati nel file binario i soli caratteri da cui la stringa è formata. I suddetti operatori devono lanciare eccezioni di tipo Error qualora una operazione su file fallisca. La classe Error è così specificata:
class Error {char* msg; public: Error(char* _msg) : msg(new char[strlen(_msg)+1]) { strcpy(msg,_msg); } char* what() { return msg; }};
L'oggetto Error lanciato conterrà nel membro msg una descrizione dell'operazione fallita.
Le operazioni di inserimento di nuovi libri avvengono caricando i libri presenti nel file binario in una struttura dati (lista collegata) mantenuta in
-
Esercitazione Programmazione 1
-
Programmazione 1 - Esercitazione
-
Programmazione 1 - Esercitazione
-
Programmazione 1 - Esercitazione