Sei sulla pagina 1di 1

Universit di Napoli Federico II

Esame di Programmazione 1 6 CFU


Prova pratica del 29/11/2011

Cognome ......................................... Nome .................................. Matr. .............................

Lo studente legga attentamente il testo e produca il programma ed i casi di test necessari per dimostrarne il
funzionamento. La mancata compilazione completa dellelaborato, la compilazione con errori o lesecuzione errata
dellalgoritmo daranno luogo alla valutazione come prova non superata.

Testo della prova


Si realizzi la gerarchia Competizione PartitaDiCalcio, in cui la classe Competizione la classe base e
PartitaDiCalcio eredita da Competizione specializzandola.
La classe Competizione contiene le variabili membro: Data, Luogo, Struttura, di tipo char * (stringhe di caratteri
allocate dinamicamente) rappresentanti la data, la localit geografica e la struttura in cui ha luogo la competizione. La
classe Competizione deve prevedere tutte le funzionalit necessarie ad una corretta gestione dellestensione dinamica
ed inoltre le funzioni visualizza_dati e memorizza_dati che consentono rispettivamente di visualizzare a video e
stampare su file di tipo testo le informazioni relative alla competizione. La funzione memorizza_dati riceve in ingresso
il nome del file.
La classe PartitaDiCalcio estende la classe Competizione aggiungendo le variabili membro:
- squadra1 e squadra2, di tipo char * (stringhe di caratteri allocate dinamicamente) che rappresentano le squadre
coinvolte nella partita, squadra1 la squadra che eventualmente gioca in casa;
- goal1 e goal2, di tipo intero, numero di goal segnati rispettivamente dalla squadra1 e dalla squadra2;
- stato, di tipo carattere, che pu assumere i valori: T (terminata), C (in corso), I (non ancora iniziata).
La classe PartitaDiCalcio deve prevedere tutte le funzionalit necessarie ad una corretta gestione dellestensione
dinamica ed inoltre le funzioni:
- setStato, che consente di modificare lo stato della partita (fornendo in ingresso il relativo valore);
- IncrGoal, che consente di incrementare di una unit il numero di goal della squadra1 o della squadra2 a
seconda del valore di un numero intero fornito in ingresso alla funzione (1 per squadra1 e 2 per squadra2);
- getGoal1 e getGoal2, che ritornano il valore corrente delle variabili membro goal1 e goal2 rispettivamente.
Si realizzi quindi una classe Schedina, realizzata mediante un vettore allocato staticamente di 13 elementi di tipo
PartitaDiCalcio. La classe Schedina deve fornire le seguenti funzioni membro:

AggiungiPartita, fornito in ingresso una posizione valida nel vettore, consente di inserire una partita nella
Schedina nella posizione indicata;
Risultato, fornito in ingresso una posizione valida nel vettore, consente di modificare lo stato della partita o
il numero di goal segnati. A tale scopo riceve in ingresso il numero di goal segnati dalla squadra 1) il numero
di goal segnati dalla squadra 2), lo stato corrente (T,C o I)
ValutaEsito, fornito in ingresso una posizione valida nel vettore, determina lesito della partita specificata,
restituendo un carattere il cui valore X se le squadre hanno pareggiato, 1 se ha vinto la squadra 1, 2 se ha
vinto la squadra 2. Pu essere invocata solo se lo stato della Partita T.
Visualizza_Schedina, per ogni partita nella schedina stampa a video le seguenti informazioni: posizione,
squadra1, squadra2, punteggio, stato, esito.

Si sviluppi infine un main per il test della gerarchia e della classe Schedina. Si strutturi lapplicazione secondo i

consueti principi di programmazione modulare.