Corso di Programmazione - Prova Pratica - Primo Appello - 23 gennaio 2003- prova 54

L'esame di oggi ha a che fare con una collezione di dischi.

Il tipo enumerazione TipoCD rappresenta il tipo di musica contenuta nel disco: pop, rock, easy, metal.

Gli elementi del tipo record Disco rappresentano i singoli CD musicali, caratterizzati da tre campi: cantante (di tipo char*), titolo (anch'esso di tipo char*), tipo (di tipo TipoCD), e numero brani (di tipo int).

Il tipo Collezione è una lista semplice di elementi di tipo Disco.

	typedef enum TipoCD {Pop,Rock,Easy,Metal} TipoDisco;

typedef struct {char* autore; /* es. Zucchero
char* titolo; /* Oro, Incenso e Birra
TipoCD tipo; /* Rock
int brani; /* 7
} Disco;
typedef struct Collezione {Disco disco;
struct Collezione* prossimo;} Collezione;

Implementare le seguenti procedure:

  1. void conta(Collezione* collezione, int* brani);

    Questa procedura deve calcolare il massimo numero di brani contenuti in un disco, considerando i dischi presenti in collezione. Tale risultato deve essere comunicato alla procedura chiamante mediante il parametro di output brani.


  2. void modifica(Collezione* collezione);

    Questa procedura deve modificare la collezione passata come parametro attuale, che si suppone contenga almeno due dischi, cancellando dalla lista il secondo elemento (attenzione: bisogna anche liberare la memoria!).



  3. int stampa(Libreria* collezione, int num);

    Questa funzione deve dare una rappresentazione sullo standard output di tutti i dischi contenuti in collezione che contengono un numero di brani strettamente inferiore a num, e restituire il numero di tali dischi.


Per consegnare la prova, utilizzare la procedura di consegna delle esercitazioni usata durante il corso, come esercitazione 54, inserendo tutte e sole le procedure realizzate da voi (una per esercizio).