TRACCIA DI RELAZIONE DEL PROGETTO "BIBLIOTECA" CAPITOLO 1: IL PROBLEMA Riassunto della descrizione nel file PDF [I FORMATI DI INGRESSO E USCITA SONO OVVI DETTAGLI INFORMATICI, DA NON RIPORTARE] CAPITOLO 2: L'algoritmo [riflette la progettazione top-down] Il problema si puo' decomporre in: 1. Carica l'elenco dei libri disponibili [DETTAGLIO TECNICO: Crea le liste (vuote) dei libri prestati e resi] 2. Esegue i movimenti riportati nel file dei prestiti e dei resi + 3. Stampa l'elenco dei libri disponibili 4. Ripone i libri resi e stampa le istruzioni per farlo 5. Stampa l'elenco dei libri disponibili [DETTAGLIO TECNICO, CHE PERO' HA UN COSTO NON TRASCURABILE: Dealloca le strutture dinamiche] Sezione 2.1: Caricamento dei libri disponibili + [DETTAGLIO TECNICO: Apre il file dei libri] - Crea la lista Scaffale - Per ogni riga del file * Se e' il comando di fine, esce dal ciclo * Se e' un libro, lo aggiunge alla lista Scaffale DOPO l'ultimo elemento [DETTAGLIO TECNICO: Chiude il file dei libri] Costo: T in Theta(ns), dove ns e' il numero dei libri sullo scaffale, perche' tempo costante per ogni libro S in Theta(ns), perche' spazio costante per ogni libro Sezione 2.2: Esecuzione dei prestiti e resi [DETTAGLIO TECNICO: Apre il file dei movimenti] - Per ogni riga del file * divide comando e libro (tempo e spazio Theta(1)) * Se il comando e' di fine, esce dal ciclo * Se il comando e' un PRESTITO cerca il libro nello Scaffale e lo sposta nella lista Prestiti alla fine (tempo Theta(ns) per ogni libro prestato, lo spazio non cambia) * Se il comando e' una RESTITUZIONE cerca il libro fra i Prestiti e lo cancella; comunque lo aggiunge alla lista Resi in prima posizione (tempo Theta(np) per ogni libro reso, dove np e' il numero dei libri prestati, lo spazio non cambia) [DETTAGLIO TECNICO: Chiude il file dei movimenti] Costo: T in Theta(np ns + nr np), dove nr e' il numero dei libri resi S in Theta(ns+nr) perche' i libri prestati vengono tutti dallo scaffale (anche qualche reso, ma non nel caso pessimo) Sezione 2.3: Stampa dei libri disponibili Scorre la lista, legge e stampa i libri (tempo costante per ciascuno) Costo: T in Theta(ns) S in Theta(ns) Sezione 2.4: Riordino dei libri resi e stampa delle istruzioni Costo complessivo: T in S in