Sei sulla pagina 1di 2

Fondamenti di Informatica - Prova di Programmazione - 15/02/2022

Utilizzando i principi della programmazione strutturata, progettare e implementare


un programma che gestisce le informazioni relative ai libri in una biblioteca.

Il programma mette a disposizione un menu attraverso il quale l’utente può scegliere tra le
seguenti funzionalità:
A. STAMPA:
il programma stampa a video le informazioni relative a tutti i libri con almeno una
copia disponibile;
B. RICERCA:
dopo aver chiesto all’utente di inserire un carattere, il programma stampa a video le
informazioni dei libri il cui titolo inizia con la lettera inserita oppure il cui autore
abbia nome o cognome che iniziano con la lettera specificata;
C. INSERIMENTO:
il programma permette l’inserimento di un nuovo libro nell’archivio;
D. AGGIORNAMENTO:
(bonus) il programma permette di registrare un libro preso in prestito oppure
restituito, aggiornandone il numero di copie disponibili. Il programma stampa a video
l’elenco di tutti i libri in archivio. L’utente effettua la selezione del libro di cui vuole
modificare la disponibilità e poi seleziona se si desidera prendere in prestito una copia
o restituire una copia.
E. uscita dal programma.

A tal fine:

1. definire un record "libro" costituito da 5 campi: titolo, cognome_autore, nome_autore,


anno_pubblicazione, e numero_copie_disponibili, dove
- "titolo" è una stringa da 50 caratteri;
- "cognome_autore" e "nome_autore" sono stringhe da 40 caratteri;
- "anno_pubblicazione" e numero_copie_disponibili sono numeri interi.

2. prevedere una lista "archivio" di massimo 50 record "libro", piena solo per i primi 5
elementi, con i seguenti valori:

{"Poe", "Edgar_Allan", "La_sfinge", 1846, 3}


{"Pirandello", "Luigi", "Il_fu_Mattia_Pascal", 1904, 0}
{"Svevo", "Italo", "La_coscienza_di_Zeno", 1923, 0}
{"Calvino", "Italo", "Il_barone_rampante", 1957, 1}
{"Tolkien", "John Ronald Reuel", "Il_signore_degli_anelli", 1968, 5}

3. prevedere una funzione "stampa_info_libro" che, dato un singolo record "libro", stampa i
dati relativi, secondo l'esempio seguente:

La_Sfinge (1846)
Edgar_Allan Poe
Copie disponibili: 3
***

4. prevedere una funzione "verifica" che, prende in ingresso un record "libro", ed un


carattere, e restituisce true se il campo "titolo" inizia con il carattere specificato oppure se
l’autore ha un nome o un cognome che iniziano con il carattere specificato;
la funzione restituisca false altrimenti

5. prevedere una funzione "nuovo_libro" che, chieste le informazioni necessarie all'utente, le


usa per restituire un record "libro" assegnando ai campi i valori inseriti dall’utente.

6. prevedere una funzione "inserisci_libro" che, data la lista "archivio", il suo riempimento,
ed un record "libro", accoda il record alla lista ed aggiorna il riempimento.

7. BONUS: prevedere una funzione "aggiorna_disponibilità" che prende in ingresso un


record libro ed un parametro di tipo booleano "restituzione". Se "restituzione" è true, la
funzione incrementa di 1 il numero di copie disponibili. Se "restituzione" è false, la funzione
decrementa di 1 il numero di copie disponibili.

Per semplicità, si assuma che le stringhe non contengano spazi sostituendo il carattere spazio
con il carattere “_” (underscore, trattino basso) all’atto dell’inserimento delle informazioni.
E’ possibile utilizzare le funzioni della libreria cstring.

*/

#include <iostream>

using namespace std;

int main(){

return 0;
}

Potrebbero piacerti anche