Diploma Universitario di Ingegneria Informatica
Esame di Fondamenti di Informatica II - primo modulo
A.A. 2002/03 - Appello del 9 luglio 2003

Problema 1   Si consideri la seguente specifica del tipo astratto NoleggioMotorini:

TipoAstratto NoleggioMotorini

Sorte NM(sorta per il dominio di interesse)

Funzioni

FineTipoAstratto

Si vuole scrivere una classe C++ NoleggioMotorini che realizzi il tipo astratto NoleggioMotorini, considerando che per riferirsi al tipo astratto Persona è necessario utilizzare la classe Persona che si suppone già realizzata, della quale però non è nota la definizione.

Domanda 1   Si illustrino le scelte di progetto relative alla realizzazione del tipo astratto NoleggioMotorini mediante la classe C++ NoleggioMotorini.

Domanda 2   Si scriva la classe NoleggioMotorini (file .h e file .cpp) secondo le scelte di progetto illustrate per la Domanda 1. Scrivere il codice delle funzioni pubbliche e private della classe. La realizzazione del codice della funzione AggiungiMotorino è opzionale; tutto il resto è obbligatorio.

Problema 2   Realizzare una funzione esterna (non friend) della classe NoleggioMotorini che, dato un oggetto m di tipo NoleggioMotorini, restituisca un array contenente le persone che hanno in affitto un motorino di m e la dimensione di detto array.

Problema 3   Spiegare brevemente il significato delle nozioni di coesione, information hiding, accoppiamento, e interfacciamento esplicito, e descrivere i criteri fondamentali che legano tali nozioni con la qualità della modularizzazione.