#include #include #define EXIT_SUCCESS 0 typedef short boolean; #define TRUE 1 #define FALSE 0 #define RIGA 80 typedef struct _libro { char TitoloAutore[RIGA]; struct _libro *next, *prev; } libro; typedef libro listalibri; typedef libro posizione; listalibri *CreaListaLibri (); void DistruggeListaLibri (listalibri **pL); void StampaListaLibri (listalibri *L); void LeggeIstruzioni (int argc, char *argv[], char *BiblioFile, char *RecordFile); void CaricaBiblioteca (char *BiblioFile, listalibri *Scaffale); void EsegueMovimenti (char *RecordFile, listalibri *Scaffale, listalibri *Prestati, listalibri *Resi); void RiponeLibriRestituiti (listalibri *Scaffale, listalibri *Resi); int main(int argc, char *argv[]) { char BiblioFile[RIGA], RecordFile[RIGA]; listalibri *Scaffale; listalibri *Prestati; listalibri *Resi; // 1) Interpretazione della linea di comando LeggeIstruzioni(argc,argv,BiblioFile,RecordFile); // 2) Allocazione delle strutture dati Scaffale = CreaListaLibri(); Prestati = CreaListaLibri(); Resi = CreaListaLibri(); // 3) Caricamento dei dati CaricaBiblioteca(BiblioFile,Scaffale); // 4a) Algoritmo 1 e salvataggio dei risultati EsegueMovimenti(RecordFile,Scaffale,Prestati,Resi); // 5a) Salvataggio dei risultati 1 StampaListaLibri(Scaffale); // 4b) Algoritmo 2 RiponeLibriRestituiti(Scaffale,Resi); // 5b) Salvataggio dei risultati 2 StampaListaLibri(Scaffale); // 6) Deallocazione delle strutture dati DistruggeListaLibri(&Scaffale); DistruggeListaLibri(&Prestati); DistruggeListaLibri(&Resi); return EXIT_SUCCESS; } void LeggeIstruzioni (int argc, char *argv[], char *BiblioFile, char *RecordFile) { } void CaricaBiblioteca (char *BiblioFile, listalibri *Scaffale) { } void EsegueMovimenti (char *RecordFile, listalibri *Scaffale, listalibri *Prestati, listalibri *Resi) { } void RiponeLibriRestituiti (listalibri *Scaffale, listalibri *Resi) { } listalibri *CreaListaLibri () { return NULL; } void DistruggeListaLibri (listalibri **pL) { } void StampaListaLibri (listalibri *L) { }