Programmazione a oggetti 23.06.2005 ESERCIZIO 1 C++ (punti 15

Programmazione a oggetti
23.06.2005
_________________________________________________________________________________________________
ESERCIZIO 1 C++ (punti 15)
Nell’ambito di un sistema software si intendono realizzare delle classi per la gestione di questionari. Un questionario è
caratterizzato da un codice identificativo, un titolo e una serie di domande. Una domanda è caratterizzata da un testo (di
tipo string) e una risposta corretta associata. Le risposte sono di tre tipi possibili: risposta testuale, risposta booleana
(SI/NO) e risposta multipla (elenco di riposte e un indice che individua quella corretta). I questionari vengono poi compilati
da utenti e si vuole rappresentare un questionario compilato con una classe. Un questionariocompilato è un
questionario con il nome dell’utente, le sue risposte e un voto (da 1 a 10) associato ad ognuna di esse.
Svolgere i seguenti esercizi:
1) Progettare le classi che si ritengono necessarie per modellare la situazione sopra descritta.
2) Scrivere un metodo di classe per calcolare il voto medio di un questionariocompilato e una funzione
pubblica che, ricevendo un vettore di questionari compilati e un intero n che individua l’ennesima domanda,
restituisca il voto più alto ottenuto in una risposta data per quella domanda.
3) Scrivere una procedura che ricevendo in ingresso un vettore di questionari compilati, scriva su un file tutti i dati
relativi.
_________________________________________________________________________________________________
ESERCIZIO 2 Java (punti 8)
Progettare in Java una classe Persona caratterizzata da tre coordinate e una classe derivata Studente che abbia, oltre ai
metodi e attributi derivati, un numero di matricola, un corso di laurea e una data di iscrizione. Definire, in modo adeguato, i
costruttori e tutti i metodi che si rendono necessari per modificare i dati di uno studente.
ESERCIZIO 3 (punti 6)
Illustrare le differenze e le analogie tra il C++ e Java nella realizzazione del polimorfismo.
_________________________________________________________________________________________________
ESERCIZIO 4 (punti 1)
Dire se è vera o falsa la seguente affermazione e motivare la risposta:
“Un compilatore Java e un compilatore C++ producono codici differenti”.
Scrivere in modo leggibile. Riportare solo la propria matricola su tutti i fogli (non indicare il nome né il cognome).
Consegnare sia fogli di brutta che di bella copia (distinguendo opportunamente gli uni dagli altri). Numerare i fogli di
bella secondo l’ordine in cui dovranno essere letti dal docente.
Per chi ha sostenuto il parziale. Indicare sul compito che si vuole mantenere il voto del parziale e svolgere solo gli esercizi
2 e 3.