logo Thecsea.it



Creative Commons License
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License



scolastica » esercizi » terza superiore » linguaggio c

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

/*
CLAUDIO CARDINALE III AI
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
*/
#include<stdio.h>
#define MAX 1000
int main(){
	
	//dichiarazioni
	
	int r,i,camere[MAX],posti[MAX],libero[MAX],capienza=0,p_ospitate=0,camera, numcamere[]={0,0,0,0},persone,prenotazione=0;
	
	
	//acquisizione dati
	
	//lunghezza vettori
	do{
		printf("inserire il numero di camere : ");
		scanf("%d",&r);
	}while(r < 1 || r >= MAX);
	
	//acquisizione dati
	
	//camere
	
	for(i=0;i<r;i++){
		printf("inserisci il numero identificativo della camera numero %d : ",i+1);
		scanf("%d",&camere[i]);
	}
	
	//posti
	
	for(i=0;i<r;i++){
		printf("inserisci il numero di posti(da 1 a 4) della camera %d : ",camere[i]);
		scanf("%d",&posti[i]);
	}
	
	//libero
	
	for(i=0;i<r;i++){
		printf("indica se la camera %d e` occupata(1) o libera(0) : ",camere[i]);
		scanf("%d",&libero[i]);
	}
	
	
	//calcoli e visualizzazione risultati
	
	//1°
	
	//capienza
	
	for(i=0;i<r;i++)
		capienza += posti[i];
	
	//persone ospitate
	
	for(i=0;i<r;i++)
		if(libero[i])
			p_ospitate += posti[i];
	
	printf("l'albergo puo` ospitare : %d persone, ma e` occupato da sole %d persone\n",capienza,p_ospitate);
	
	//2°
	
	printf("inserire un numero identificativo di una camera : ");
	scanf("%d",&camera);
	
	i=0;
	while(i<r && camere[i]!=camera)
		i++;
	
	if(camere[i]==camera)
		if(libero[i])
			printf("la camera scelta e` occupata\n");
		else
			printf("la camera scelta non e` occupata\n");
	else
		printf("ERRORE : la camera scelta non esisste\n");
	
	//3°
	
	for(i=0;i<r;i++)
		switch(posti[i]){
			case 1:
				numcamere[0]++;
				break;
			case 2:
				numcamere[1]++;
				break;
			case 3:
				numcamere[2]++;
				break;
			case 4:
				numcamere[3]++;
		}
	
	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]);
	
	//4°
	
	printf("inserire il numero di persone : ");
	scanf("%d",&persone);
	
	i=0;
	while(i<r && (posti[i]!=persone || libero[i]))
		i++;
	
	if(posti[i]==persone && !libero[i]){
		libero[i] = 1;
		prenotazione = 1;
	}
	
	if(prenotazione)
		printf("camera prenotata\n");
	else
		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



Copyright © 2004-2024 thecsea.it (Claudio Cardinale - [email protected])! Tutti i diritti riservati. - contattaci