Sei sulla pagina 1di 2

Utilizzando i principi della programmazione strutturata, progettare e implementare

un programma per la memorizzazione e la gestione delle prenotazioni presso una


struttura turistica nel mese di Agosto.
La struttura dispone di quattro stanze: "101", "102", "201", e "202".

Si preveda una opportuna struttura dati che per ciascuna prenotazione permetta la
memorizzazione di un record "prenotazione"
contenente i seguenti campi informativi:
- Giorno di arrivo (intero, può assumere valori da 1 a 30)
- Giorno di partenza (intero, può assumere valori da 2 a 31)
- Cognome ospite (stringa)
- Numero stanza (stringa, può assumere un valore tra 101, 102, 201, e 202).
- Colazione (booleano)

N.B.: la struttura dati potrà contenere al massimo 120 prenotazioni.


Si assuma che gli ospiti
1) nel giorno di arrivo possano accedere alla stanza dopo le ore 14.00.
2) nel giorno della partenza siano obbligati a lasciare la stanza prima delle ore
11.00.

Si inizializzi la struttura dati con le informazioni riportate di seguito:


{12, 17, "Rossi", "102", false}
{2, 12, "Brown", "101", true}
{1, 31, "Esposito", "201", false}
{21, 22, "Bianchi", "101", false}

Prevedere le seguenti funzioni:


1. stampa_prenotazione()
La funzione prende in ingresso un singolo record prenotazione e stampa a video le
relative informazioni, come nell'esempio che segue:
Inoltre, la funzione *restituisce come parametro di uscita* il numero di notti
della prenotazione.

Rossi, stanza 102, arrivo: 12 Agosto, partenza: 17 Agosto (5 notti), colazione NO

2. valida_prenotazione()
La funzione prende in ingresso un record "prenotazione" e restituisce true solo se
- il giorno di arrivo è compreso tra 1 e 30,
- il giorno di partenza è compreso tra 2 e 31,
- il giorno di partenza è strettamente maggiore del giorno di arrivo.

3. verifica_disponibilita()
La funzione prende in ingresso la struttura dati (ed il suo riempimento) il giorno
di partenza, il giorno di arrivo, e una stanza per cui si vuole verificare la
disponibilta'.
Restituisce true se per la stanza non vi sono prenotazioni che si sovrappongono al
periodo per cui si vuole verificare la disponibilta'.

Il programma mette a disposizione un menu attraverso il quale l’utente può


scegliere tra le seguenti funzionalità:
A) MOSTRA PRENOTAZIONI:
Il programma stampa la lista delle prenotazioni (ordinate per stanza).
Inoltre, per ciascuna stanza il programma stampa il numero di notti complessivo per
il quale la stanza risulta occupata.

B) INSERISCI PRENOTAZIONE
Il programma chiede all’utente i campi informativi utili a definire una
prenotazione, valida la prenotazione, ed inserisce il record relativo nella
struttura dati.

C) VERIFICA DISPONIBILITA’
Il programma chiede all’utente di inserire il numero della stanza, giorno arrivo e
giorno partenza
e stampa a video se la stanza è disponibile nel periodo indicato oppure no.

Le funzionalità messe a disposizione nel main sfruttano le funzioni


stampa_prenotazione, valida_prenotazione e verifica_disponibilita come sopra
definite.

E’ possibile utilizzare funzioni della libreria cstring, quali strcpy, strcmp,


strlen, strcat.

Potrebbero piacerti anche