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

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. int conta(Collezione* collezione, TipoCD tipo);

    Questa funzione deve restituire il massimo numero di brani contenuti in un disco considerando i dischi presenti in collezione il cui tipo di musica è tipo.


  2. void modifica(Collezione* collezione);

    Questa procedura deve modificare la collezione passata come parametro attuale, che si suppone contenga almeno tre dischi, invertendo il secondo ed il terzo disco nella lista (attenzione: non basta copiare i dati elemento per elemento!).



  3. void stampa(Libreria* collezione, char iniziale);

    Questa procedura deve dare una rappresentazione sullo standard output di tutti i dischi contenuti nella lista il cui titolo inizia con il carattere passato come secondo parametro.


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