Ajuda em programa em c !!

L.L

Membro
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;
}
 
Última edição:
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;
}
Não compreendo a declaração das estruturas.

Quanto muito seria
Código:
typedef struct c
{
char nome[30];
char CPF [15];
char tel [10];
int nquarto;

}hosp;

Sendo que assim declaras que uma estrutura destas tem o tipo hosp.

Como tinhas antes significava que uma estrutura c era uma array de 10 hosp.

No entanto as estruturas deveriam ser definidas desta maneira:
Código:
typedef struct {
    int numQuarto;
    char nome[30];
    char CPF[15];
    char tel[10];
} Hospede;

typedef struct {
    int status;
    int n;
} Quarto;

E depois tens uma função tua que chama o main? O main apenas deverá ser chamado pelo sistema operativo para inicializar a execução do teu programa, não é para seres tu a chamar.
 
Última edição:
Não compreendo a declaração das estruturas.

Quanto muito seria
Código:
typedef struct c
{
char nome[30];
char CPF [15];
char tel [10];
int nquarto;

}hosp;

Sendo que assim declaras que uma estrutura destas tem o tipo hosp.

Como tinhas antes significava que uma estrutura c era uma array de 10 hosp.

No entanto as estruturas deveriam ser definidas desta maneira:
Código:
typedef struct {
    int numQuarto;
    char nome[30];
    char CPF[15];
    char tel[10];
} Hospede;

typedef struct {
    int status;
    int n;
} Quarto;

E depois tens uma função tua que chama o main? O main apenas deverá ser chamado pelo sistema operativo para inicializar a execução do teu programa, não é para seres tu a chamar.




Coloquei hospede[10], pois o programa deve permitir que eu
cadastre 10 hospedes em 10 quartos diferentes.
 
Coloquei hospede[10], pois o programa deve permitir que eu
cadastre 10 hospedes em 10 quartos diferentes.

Tudo bem mas o que tem isso a ver com a definição da estrutura? A definição define o tipo, que não tem nada a ver se o programa permite 10 hospedes ou 1000.
 
Back
Topo