Tenho que fazer um programa em c que gerencia um hotel, perdoem os erros mas comecei a estudar linguagem c recentemente.Bem, o programa consiste em receber cadastrar um hospede em um quarto, colocar o quarto como ocupado e depois preciso mostrar a relação de quartos com sua descrição, seu status( ocupado ou livre).Acho que o que não sei fazer é armazenar de forma correta os dados do hospede na struct e não consigo fazer com que a função leia os dados da struct.
o que fiz:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
typedef struct c
{
char nome[30];
char CPF [15];
char tel [10];
int nquarto;
}hosp[10];
typedef struct room
{
int status;
int n;
}qrt[10];
int entrada()
{ //regista a entrada de um cliente no respectivo quarto
int j,n,i;
struct c hosp[10];;
struct room q[10];;
for (j=0;j<=10;j++){
printf("\n-- Cadastro do Cliente --\n\n");
printf("\nQuarto desejado: ");
scanf("%d", &q[j].n );
fflush(stdin);
printf("\nNome: ");
fgets(hosp[j].nome,30,stdin);
fflush(stdin);
printf("\nTelefone: ");
fgets(hosp[j].tel,10,stdin);
fflush(stdin);
printf("\nCPF: ");
fgets(hosp[j].CPF,15,stdin);
fflush(stdin);
for(i=0;i<=10;i++){ //deveria colocar o quarto como ocupado,
//sendo que usei o indice 1 para indicar "ocupado"
if(i=qrt[j].n) {
qrt.flag=1;
printf("\n\n-- Registo quarto %d --",q.n);
strcpy(hosp[j].nome, q[n].nomecli);
system("PAUSE");
main();
}
}}
void Reg(){
struct room q[50];
struct c hosp[50];
int j,i;
//o programa mostra caracteres estranhos
for(i=0;i<=5;i++){
q.n=i;
printf("\n\nquarto %d : ",i);
printf("\nstatus: %d",q.status);
printf("\nsolteiro");
;
}
for(i=6;i<10;i++){
q.n=i;
printf("\n\nquarto %d : ",i);
printf("\nstatus: %d",q.status);
printf("\nsolteiro");
int main()
{
int a;
printf("M E N U\n");
printf("1- Check In\n");
printf("2- Listagem quartos\n");
scanf("%d",&a);
fflush(stdin);
if (a==1){ entrada(); }
if (a==2){ reg();}
return 0;
}
o que fiz:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
typedef struct c
{
char nome[30];
char CPF [15];
char tel [10];
int nquarto;
}hosp[10];
typedef struct room
{
int status;
int n;
}qrt[10];
int entrada()
{ //regista a entrada de um cliente no respectivo quarto
int j,n,i;
struct c hosp[10];;
struct room q[10];;
for (j=0;j<=10;j++){
printf("\n-- Cadastro do Cliente --\n\n");
printf("\nQuarto desejado: ");
scanf("%d", &q[j].n );
fflush(stdin);
printf("\nNome: ");
fgets(hosp[j].nome,30,stdin);
fflush(stdin);
printf("\nTelefone: ");
fgets(hosp[j].tel,10,stdin);
fflush(stdin);
printf("\nCPF: ");
fgets(hosp[j].CPF,15,stdin);
fflush(stdin);
for(i=0;i<=10;i++){ //deveria colocar o quarto como ocupado,
//sendo que usei o indice 1 para indicar "ocupado"
if(i=qrt[j].n) {
qrt.flag=1;
printf("\n\n-- Registo quarto %d --",q.n);
strcpy(hosp[j].nome, q[n].nomecli);
system("PAUSE");
main();
}
}}
void Reg(){
struct room q[50];
struct c hosp[50];
int j,i;
//o programa mostra caracteres estranhos
for(i=0;i<=5;i++){
q.n=i;
printf("\n\nquarto %d : ",i);
printf("\nstatus: %d",q.status);
printf("\nsolteiro");
;
}
for(i=6;i<10;i++){
q.n=i;
printf("\n\nquarto %d : ",i);
printf("\nstatus: %d",q.status);
printf("\nsolteiro");
int main()
{
int a;
printf("M E N U\n");
printf("1- Check In\n");
printf("2- Listagem quartos\n");
scanf("%d",&a);
fflush(stdin);
if (a==1){ entrada(); }
if (a==2){ reg();}
return 0;
}
Última edição: