Programa em C

rubenm

Suspenso
Ora tenho k fazer um trabalho k consiste na Gestao de um Hotel, nomeadamente a seccao de quartos entrada e saida etc se podesem dar uma vista de olhos ao codigo isto esta super confuso ainda pk n sei bem k partes comecar e vou pondo codigo consuante me lembro das opcoes...
NOTA: nao usa Base de Dados...
cumps


#include <stdlib.h>
#include <stdio.h>
#include <conio.c>
#include <string.h>

struct cli
{
int n;
char nome[30];
int tel;
int bi[8];
int cont[9];
}cliente[100];

struct quarto
{
int n;
int custo; /*preco 4*/
int ndias;
int status;
int ncli;
}hotel[100];

int checkin()
{ /*regista a entrada de um cliente no respectivo quarto*/
int i=0,j;

i++;
printf("\n-- Dados do Cliente %d --\n\n",cliente.n);
printf("\nNome: "); // n le o nome
fgets(cliente.nome,30,stdin);
//gets(cliente.nome);
printf("\nTelefone: ");
scanf("%d",&cliente.tel);
printf("\nBI: ");
scanf("%d",&cliente.bi);
printf("\nContribuinte: ");
scanf("%d",&cliente.cont);

for(j=0;j<=100;j++)
if(hotel[j].status==0)
{
hotel[j].status=1; //coloca o quarto como ocupado
printf("\nNumero dias da estadia: ");
scanf("%d",&hotel[j].ndias);
printf("\n\n-- Registo quarto %d --",hotel[j].n);
hotel[j].ncli=cliente.n;

/* +1. kuarto e numero de noites a guardar*/
printf("\nPreço a pagar: ",hotel[j].custo*hotel[j].ndias);
break;
}
if(j=99)/*caso esteja lotado*/
printf("\n\n-- Não existem vagas --");
system("PAUSE");
}

int reserva()
{ /*efectua a reserva de um cliente no respectivo quarto tem que ser confirmada posteriormente*/
int i=0,j,flag;
i++;

printf("\n-- Dados do Cliente %d --\n\n",cliente.n);
printf("\nNome: ");
gets(cliente.nome);
printf("\nTelefone: ");
scanf("%d",&cliente.tel);
flag=0;
for(j=0;j<100;j++)
if(hotel[j].status==0)
{
flag=1;
hotel[j].status=1;
printf("\n\n-- Registo quarto %d --",hotel[j].n);
hotel[j].ncli=cliente.n;
printf("\nPreço por noite: ",hotel[j].custo);
break;
}
if(flag=0)/*caso esteja lotado*/
printf("\n\n-- Não existem vagas --");
}


int checkout()
{ /*regista a saida de um cliente do respectivo quarto-eliminar*/
int j,aux;

printf("\nDigite o numero do quarto");
scanf("%d",&aux);
for(j=0;j<100;j++)
if(hotel[j].n==aux)
{
hotel[j].n=0;
hotel[j].ndias=0;
hotel[j].custo;
hotel[j].status=0;
hotel[j].ncli=0;
}
}

int listagem()
{ /*lista todos os quartos indicando os ocupados e os livres*/
int j;
system("cls");
for(j=0;j<=100;j++)
{
printf("-- Quartos livres --\n\n");
if(hotel[j].status==0)
printf("\nQuarto %d livre",hotel[j].n);
}
for(j=0;j<=100;j++) //dividir em 2
{
printf("-- Quartos ocupados --");
if(hotel[j].status==0)
printf("\nQuarto %d ocupado \n",hotel[j].n);
}
system("PAUSE");
}

int preco_quarto()
{
int j=0,aux=0;

printf("\nDigite o novo preço dos quartos: ");
scanf("%d",&aux);

for(j=0;j<=100;j++)
hotel[j].custo=aux;
printf("\n\nNovo preço de quarto: %d.00 Euros\n\n",aux);
}

int main()
{
int op;
do{
system("cls");
printf("M E N U\n");
printf("1- Check In\n");
printf("2- Reservas\n");
printf("3- Check Out\n");
printf("4- Listagem quartos\n");
printf("5- Preço Quarto\n");
printf("0- SAIR\n");
scanf("%d",&op);
switch (op){
case 1: checkin();
break;
case 2: reserva();
break;
case 3: checkout();
break;
case 4: listagem();
break;
case 5: preco_quarto();
break;
case 0: system("cls");
printf("A terminar ...\n\n\n");
system("PAUSE");
return 0;
}
}while (op!=5);
system("PAUSE");
return 0;
}
 
Última edição:
Já não olho pra c à algum tempo, mas quem sabe nunca eskeçe...
Agora explica-me uma coisa... não tas a usar a um ficheiro para guardar informaçao, tás a meter tudo numa matriz, certo?

Ou será k estou leigo na matéria?

Tu não podes usar base de dados... mas podias guardar a informação num txt. dar um num a cada cliente, para poderes fazer check in e o check out...

Cliente x - check in a tal quarto, e isto seria a dormida y
Depois fazias o check out á dormida y..

mas posso tar a interpertar mal o codigo... é como digo, não vejo C á um tempito..
 
Já não olho pra c à algum tempo, mas quem sabe nunca eskeçe...
Agora explica-me uma coisa... não tas a usar a um ficheiro para guardar informaçao, tás a meter tudo numa matriz, certo?

Ou será k estou leigo na matéria?

Tu não podes usar base de dados... mas podias guardar a informação num txt. dar um num a cada cliente, para poderes fazer check in e o check out...

Cliente x - check in a tal quarto, e isto seria a dormida y
Depois fazias o check out á dormida y..

mas posso tar a interpertar mal o codigo... é como digo, não vejo C á um tempito..

nao posso usar pk ainda n demos essa materia e o prof n deixa aki o importante nao e guardar os dados mas sim usar strings, estruturas etc e queria ter 1 programa + - para alem de k n corre lol...
 
Além disso, usar ficheiro poderia complicar um pouco as coisas se ainda não dominares a área. De qualquer maneira, é suposto haver alguma coisa errada?
 
Código:
#include <iostream.h>

já agora....
Usas a biblioteca de output e input de C++??
N devias tar usar

#include <stdio.h>

ainda por cima estando a usar funções como scanf() e printf() que pretencem ao stdio.h....
 
Além disso, usar ficheiro poderia complicar um pouco as coisas se ainda não dominares a área. De qualquer maneira, é suposto haver alguma coisa errada?

boas

eu ate sei usar fixeiros mas o prof n deixa e ainda bem...lol
kt a erros ta me a dar 1 no final, mas a minha ideia era o ppl dar ideias para colocar no codigo relativamente a funcoes para por o programa a fazer que sejam relacionadas com a reserva de quartos de um hotel, ja que aki existe mt gente k dominia...

cumps
 
para k serve o 100? o stdin tem a ver salvo erro c a cena do teclado..


O 100 foi um valor à sorte que eu lá pus. Onde meti o 100 deves meter o tamanho da string.

O gets() costuma dar um WARNING devido a um problema de segurança por isso é melhor usar o fgets como indiquei lá cima. :)
 
Back
Topo