Testo dell'esercizio
Per gestire le camere di un albergo si hanno a disposizione gli array CAMERE dove sono contenuti i numeri identificativi delle camere, POSTI dove e' contenuto il numero di posti (da 1 a 4) di ciascuna camera, e LIBERO indica, per ogni camera, se e' libera (=0) oppure occupata (=1).
Realizzare un'applicazione in grado di:
1) visualizzare la capienza totale dell'albergo (quante persone in tutto puo' ospitare) e quante persone sono ospitate nell'albergo;
2) visualizzare se la camera, il cui identificativo e' inserito da input, e' libera o occupata. Se la camera non esiste emettere la segnalazione di errore;
3) visualizzare il numero di camere da 1, da 2, da 3 e da 4 posti letto (sugg: utilizzare l'array NUMCAMERE di 4 componenti);
4) gestire una prenotazione: inserito in input il nuemro X di persone, cercare, se esiste, una camera libera che possa ospitare tutte le persone. Se esiste portare a 1 il relativo elemento dell'array LIBERO per indicare che ora la camera e' occupata, altrimenti dare una segnalazione di avviso
mostra soluzione
016 | int r,i,camere[MAX],posti[MAX],libero[MAX],capienza=0,p_ospitate=0,camera, numcamere[]={0,0,0,0},persone,prenotazione=0; |
023 | printf ( "inserire il numero di camere : " ); |
025 | } while (r < 1 || r >= MAX); |
032 | printf ( "inserisci il numero identificativo della camera numero %d : " ,i+1); |
033 | scanf ( "%d" ,&camere[i]); |
039 | printf ( "inserisci il numero di posti(da 1 a 4) della camera %d : " ,camere[i]); |
040 | scanf ( "%d" ,&posti[i]); |
046 | printf ( "indica se la camera %d e` occupata(1) o libera(0) : " ,camere[i]); |
047 | scanf ( "%d" ,&libero[i]); |
058 | capienza += posti[i]; |
064 | p_ospitate += posti[i]; |
066 | printf ( "l'albergo puo` ospitare : %d persone, ma e` occupato da sole %d persone\n" ,capienza,p_ospitate); |
070 | printf ( "inserire un numero identificativo di una camera : " ); |
074 | while (i<r && camere[i]!=camera) |
077 | if (camere[i]==camera) |
079 | printf ( "la camera scelta e` occupata\n" ); |
081 | printf ( "la camera scelta non e` occupata\n" ); |
083 | printf ( "ERRORE : la camera scelta non esisste\n" ); |
102 | printf ( "ci sono %d camere da 1, %d camere da 2, %d camere da 3, %d camere da 4\n" ,numcamere[0],numcamere[1],numcamere[2],numcamere[3]); |
106 | printf ( "inserire il numero di persone : " ); |
107 | scanf ( "%d" ,&persone); |
110 | while (i<r && (posti[i]!=persone || libero[i])) |
113 | if (posti[i]==persone && !libero[i]){ |
119 | printf ( "camera prenotata\n" ); |
121 | printf ( "non ci sono camere da %d persone disponibili\n" ,persone); |
Testi Consigliati:
Il linguaggio C. Principi di programmazione e manuale di riferimento. Ediz. MyLab. Con Contenuto digitale per download e accesso on line
C guida alla programmazione: Conoscere lo standard C11 dalle basi del linguaggio alle direttive del preprocessore (Programmare con C Vol. 1)
Programmazione in C
torna