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

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

Il tipo enumerazione TipoLibro rappresenta il tipo di libro: romanzo, saggio, viaggi, scolastico.

Gli elementi del tipo record Libro rappresentano i singoli libri, caratterizzati da tre campi: autore (di tipo char*), titolo (anch'esso di tipo char*), tipo (di tipo TipoLibro), e data (un array di tre interi, i cui elementi sono giorno, mese ed anno in cui il libro è stato catalogato).

Il tipo Libreria è una lista semplice di elementi di tipo Libro.

	typedef enum TipoLibro {Romanzo,Saggio,Viaggi,Scolastico} TipoLibro;

typedef struct {char* autore; /* es. Melville
char* titolo; /* Moby Dick
TipoLibro tipo; /* romanzo
int data[3]; /* {10, 12, 2002}
} Libro;
typedef struct Libreria {Libro item;
struct Libreria* next;} Libreria;

Implementare le seguenti procedure:

  1. int conta(Libreria* libreria, int anno);

    Questa funzione deve restituire il numero di libri presenti in libreria il cui anno di catalogazione coincide con il valore passato come secondo parametro .


  2. void modifica(Libreria* libreria);

    Questa funzione deve modificare la libreria passata come paranetro attuale, che si suppone abbia almeno due libri, sostituendo i primi due libri con gli ultimi due libri che hai letto tu.



  3. void stampa(Libreria* libreria, TipoLibro tipologia);

    Questa procedura deve dare una rappresentazione sullo standard output di tutti e soli i libri contenuti nella libreria il cui tipo coincide con quello passato come secondo parametro attuale.


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