Exercício de Programação C: Estruturas e Gestão de Hotel
Classificado em Design e Engenharia
Escrito em em
português com um tamanho de 2,09 KB
Exercício de Programação em C: Gestão de Ocupação Hoteleira
a) Defina o tipo de dados que considera adequado para guardar a informação relativa à ocupação de um hotel. Assim, para cada quarto é necessário guardar a informação sobre:
- Número da porta;
- Nome do cliente (máximo 50 caracteres);
- Tipo de quarto (1-individual, 2-duplo);
- Número de noites de permanência.
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <ctype.h>
typedef struct hotel {
int nPorta;
char nomeCliente[50];
int tipoQuarto;
int nNoites;
} HOTEL;b) Escreva uma função que devolve uma estrutura, do tipo definido na alínea a), preenchida com informação solicitada ao utilizador. Nesta função devem ser feitas proteções aos dados de entrada, nomeadamente:
- O campo “número da porta” só deve aceitar um valor compreendido entre 1 e 299;
- O campo “tipo de quarto” só deve aceitar 1 ou 2;
- O campo “número de noites de permanência” só deve aceitar valores positivos.
HOTEL Guarda_r(void) {
FILE *fich;
HOTEL cliente;
do {
printf("Insira numero da porta \n");
scanf("%d", &cliente.nPorta);
} while(cliente.nPorta < 1 || cliente.nPorta > 299);
fflush(stdin); //limpar
printf("Insira o nome do cliente \n");
gets(cliente.nomeCliente);
do {
printf("Insira o tipo de quarto \n");
scanf("%d", &cliente.tipoQuarto);
} while(cliente.tipoQuarto != 1 && cliente.tipoQuarto != 2);
do {
printf("Insira o numero de noites de permanência \n");
scanf("%d", &cliente.nNoites);
} while(cliente.nNoites <= 0);
fich = fopen("Clientes.dat", "ab"); //abre ficheiro
fwrite(&cliente, sizeof(HOTEL), 1, fich); //escreve
fclose(fich);
return cliente;
}