Programmazione a oggetti 26.06.2007 ESERCIZIO 1 (punti 17) Nell

Programmazione a oggetti
26.06.2007
_________________________________________________________________________________________________
ESERCIZIO 1 (punti 17)
Nell’ambito di un sistema software per studi astronomici si rende necessario progettare classi che modellano i corpi celesti.
E’ necessario modellare una classe astratta Corpo_celeste, caratterizzata dalle coordinate celesti (due float), dalla
distanza dalla Terra e dalla luminosità apparente, che abbia metodi per descrivere il corpo celeste (esempio: Nome(),
Tipo(), etc. ) e per stamparne i dati. E’ necessario modellare anche una classe Stella e una classe Pianeta come
classi concrete derivate da Corpo_celeste.
Svolgere i seguenti esercizi:
1) Progettare le classi necessarie per modellare la situazione sopra descritta.
2) Scrivere il codice dei metodi che si ritengono necessari per una classe Costellazione che abbia come
attributi un nome e una lista di puntatori a Corpo_celeste. Tra i metodi, inserirne uno per ottenere i corpi
celesti presenti nella costellazione che hanno una luminosità apparente maggiore di un valore dato.
3) Scrivere una procedura che, ricevendo in ingresso un vettore di oggetti Costellazione e un corpo celeste,
verifichi che il corpo sia presente in una costellazione del vettore dato (si assuma che un corpo possa appartenere
ad una sola costellazione) e, in caso affermativo, stampi il nome della costellazione e i dati del corpo più luminoso
presente nella costellazione stessa.
_________________________________________________________________________________________________
ESERCIZIO 2 (punti 6)
Progettare in C++ o Java, ma in un linguaggio diverso da quello utilizzato nel precedente esercizio, una classe interfaccia
per Corpo_celeste e una sua implementazione (per esempio una classe classe Stella o una classe Pianeta).
_________________________________________________________________________________________________
ESERCIZIO 3 (punti 5)
Fornire un esempio di programmazione generica sottoforma di codice in C++ o Java.
_________________________________________________________________________________________________
ESERCIZIO 4 (punti 2)
Dire se è vera o falsa la seguente affermazione e motivare la risposta:
“In Java non esistono metodi virtual come in C++, quindi il polimorfismo non è attuabile”.
Scrivere in modo leggibile. Numerare i fogli di bella secondo l’ordine in cui dovranno essere letti dal docente.