Proposte di progetti per l'esame di Programmazione ad Oggetti
-
Realzzare un programma di calcolo formale di algebra dei
polinomi (somma, sottrazione, moltiplicazione).
Il programma deve essere in grado di eseguire operazioni come:
- (a + b) * (a - b) = a^2 - b^2
- (a + b)^2 = a^2 + 2ab + b^2
-
Realizzare un framework per applicazioni di
simulazione del traffico stradale.
Venga modellizzato il reticolo stradale come un insieme di
vie collegate da incroci. Gli incroci possono essere regolati
da un semaforo oppure non; nel secondo caso, le ordinarie
regole di precedenza si assume (e si spera!) che
vengano applicate. Si verifichi il funzionamento
del framework in un paio di casi semplici.
-
Realizzare una classe che incapsuli le caratteristiche e funzionalità
di un istogramma (monodimensionale). L'interfaccia consente di incrementare
il contenuto del bin che corrisponde ad un dato valore in ascissa.
Realizzare anche un semplice display alfanumerico che mostri il contenuto
dell'istogramma e che si aggiorni automaticamente ogni volta che il contenuto
dell'istogramma viene modificato, utilizzanto l'Observer pattern.
-
Realizzare un programma per gestire i risultati delle prossime
elezioni politiche. I voti di ciascun partito e ciascuna coalizione
vengano organizzati per:
- Comune
- Provincia
- Regione
- Area geografica (Sud, Centro, Nord, Isole)
- Riepilogo nazionale
Ci si può limtare alla sola parte proporzionale,
evitando di trattare i collegi uninominali e lo scorporo.
Proposte deprecate
I seguenti progetti sono stati già sviluppati troppe
volte, e hanno perso di originalità.
-
Realizzare un programma di gioco a scacchi (dove giocano due umani, non
il computer!) nel quale vengano:
- verificate le validità delle mosse
- eliminati i pezzi "mangiati"
- segnalato lo scacco al re
- segnalato lo scacco matto, col quale termina la partita
Le specificità dei diversi pezzi (mosse, ecc.) sono gestite
con il polimorfismo. La grafica può essere resa minimale (ossia
in caratteri ASCII).
Proposte degli studenti
-
Realizzare ad oggetti un motore di rendering tridimensionale
che utilizzi la tecnica del ray tracing.
La risposta di una superficie visibile alla luce può
presentare riflessione, rifrazione o diffusione.
-
Realizzare un modello ad oggetti del gioco del Monopoli.
Il polmorfismo venga usato per specificare le operazioni
dei diversi tipi di caselle (Terreni, Imprevisti, Probalilità,
Prigione).
-
Realizzare una chat line client-server.