vuoi
o PayPal
tutte le volte che vuoi
Università di Napoli Federico II
Corso di Laurea in Ingegneria Informatica
Esami di Programmazione I
Prova pratica del 27/06/2006
Durata della prova: 2h
Cognome............................................Nome...............................................Matr.......................
Testo della Prova
Si realizzi in C++ la gerarchia di classi Titolare - Carta di Credito - Conto Corrente mostrata in figura. La classe
Titolare ha come attributi privati nome e cognome di un cliente, tali informazioni rappresentano dati comuni sia per un
conto corrente che per una carta di credito. La funzione membro della classe Titolare “StampaDati” visualizza sullo
schermo il nome ed il cognome del cliente. Analogamente la funzione membro “ StampaDati” della classe ContoCorrente
(rispettivamente, CartaCredito) visualizza sullo schermo tutti i dati relativi ad un conto corrente (rispettivamente, di una
carta di credito), e quindi il il numero identificativo del conto corrente (rispettivamente, il numero identificativo della
carta di credito), il valore del saldo (rispettivamente, il valore del debito, cioè l’importo che deve essere detratto dal conto
corrente del titolare della carta di credito) ed il nome e cognome del titolare. Devono essere inoltre implementate le
funzioni “getSaldo” e “getDebito” che ritornano rispettivamente il valore corrente degli attributi SaldoCorrente e
DebitoCorrente.
********** USARE LA CLASSE string.******************************************************
Il programma principale definisce tre oggetti di tipo CartaCredito e tre oggetti di tipo ContoCorrente, definisce poi due
vettori di tipo CartaCredito e ContoCorrente che vengono inizializzati con gli oggetti definiti in precedenza, e stampa i
dati di tali oggetti, come dal testo fornito. Inoltre crea ed inserisce in un oggetto ListaRossi di tipo Lista, ogni titolare il
cui SaldoCorrente sia inferiore al DebitoCorrente ed il valore dell’importo dello scoperto. Infine stampa la ListaRossi.
La classe Lista deve essere realizzata mediante una lista linkata. Ogni Nodo della lista è un record costituito da un
campo Titolare, da un campo Importo (che contiene il valore dello scoperto) e da un campo puntatore al prossimo Nptr.
Per la classe Lista devono essere implementato il costruttore, il distruttore e le funzioni InserisciNodo e StampaLista
come da diagramma delle classi in figura, esse devono essere utilizzate nel main per inserire in ListaRossi un titolare il
cui conto è in rosso, e il valore dello scoperto e per stampare la ListaRossi. InserisciNodo effettua una semplice
operazione di inserimento in testa (push).
Il programma deve essere eseguito utilizzando e completando il main di test fornito, in cui deve essere inserito il
codice che valuta quali dei titolari hanno il conto in rosso ed inserisce nella lista tali titolari e importo dello
scoperto. Si riporta l’output atteso a seguito dell’esecuzione del main. (Suggerimento: nei costruttori con zero argomenti
inizializzare le stringhe con la stringa vuota “”). Si strutturi il codice secondo le appropriate tecniche di programmazione
modulare presentate durante il corso e nel libro di testo.
Titolare Nodo
- Nome: string
- Cognome: string + Nptr: Nodo *
+ Importo: float
+StampaDati(): void Lista
ContoCorrente CartaCredito +InserisciNodo(const Titolare, float): void
-NumeroConto: string -NumeroCarta: string +StampaLista(): void //stampa a video
-SaldoCorrente: float -DebitoCorrente: float
+StampaDati():void +StampaDati():void
+getSaldo():float +getDebito():float