Anteprima
Vedrai una selezione di 1 pagina su 2
Programmazione I - Esercitazione Pag. 1
1 su 2
D/illustrazione/soddisfatti o rimborsati
Disdici quando
vuoi
Acquista con carta
o PayPal
Scarica i documenti
tutte le volte che vuoi
Estratto del documento

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

di caratteri allocata

dinamicamente) e anno (di tipo intero). Siano definiti per tale classe i metodi per la

lettura del valore di ciascuna

variabile membro (funzioni get) e l'overloading dell'operatore << 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 contiene la variabile membro msg (di tipo string).

L'oggetto Error lanciato conterr‡ in 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 a puntatori) mantenuta in memoria.:

In particolare, uno dei costruttori presenti nella specifica della classe Lista

inizializza una lista dinamica a partire

dagli oggetti di tipo Libro presenti nel file specificato in ingresso al costruttore. Se

tale file non esiste la lista viene

inizializzata come lista vuota. Tale costruttore utilizza l'operatore >> definito prima

e la funzione inserisci, membro

della classe Lista. Si scelga quale tipo di operazione di inserimento realizza la

funzione inserisci (in testa, in coda,

secondo un criterio di ordinamento) e lo si implementi.

La funzione membro salva memorizza i libri contenuti nella lista nel file binario di

nome fname. Questa funzione

lancia un'eccezione di tipo Error nel caso si verifichino errori che descrive quale

operazione Ë fallita. La funzione

membro stampa visualizza a video tutti i libri contenuti nella lista.

Si utilizzi il seguente main di prova, al quale si chiede di aggiungere alla fine le

linee di codice necessarie alla

definizione di una variabile v di tipo vector (utilizzando la libreria STL) da

inizializzare con le liste l1 ed l2 (vedi

Dettagli
Publisher
A.A. 2010-2011
2 pagine
SSD Ingegneria industriale e dell'informazione ING-INF/05 Sistemi di elaborazione delle informazioni

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher Rod75 di informazioni apprese con la frequenza delle lezioni di Programmazione 1 e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli studi di Napoli Federico II o del prof Vittorini Valeria.