Ir para conteúdo
Fórum Script Brasil
  • 0

Trabalhando com funções


Eduardo Schossler

Pergunta

Olá. Sou novo aqui e na área de programação. To tendo aulas de linguagem de programação e to tendo dificuldade (que acho que seja lógica) em desenvolver o programa que o professor pediu. Basicamente é para testarmos e aprendermos a manipular funções, parâmetros e algumas coisas mais simples. O programa que uso é o Dev C++. E to mexendo em linguagem C.

Aqui vai o programa:
1) Elabore um programa de um hotel. Este programa precisa conter um menu com 6 opções:
[1] Alterar o valor da estadia
[2] Fazer Check-In
[3] Fazer Check-Out
[4] Atualizar as Lotacoes
[5] Relatorio Diario
[6] Sair

Cada opção deve ter um tipo de função estabelecida. 

[1] - Em alterar estadia, é necessário que pergunte o valor novo da estadia. E este valor será usado para todo o resto do programa.
[2] - Fazer check-in é para armazenar o nome do hospede, o tempo que ficará no hotel (em dias), o código da pessoa. (Se for 1, a pessoa fica no quarto de codigo 1. Caso a pessoa saia, esse número 1 é liberado e se torna 0. O 1 é só para estabelecer que naquela posição que o hospede foi hospedado, está livre.)
[3] - Fazer check-out é para pegar os dados do hospede armazenado no vetor de estrutura, utilizado em check-in, e faz todo o calculo. Total de dias hospedados, o valor da conta, liberação do quarto (mudar para 0)
[4] - Por enquanto não é necessário.
[5] - Também não.

Tenho dificuldade em usar os valores armazenados nas funções em outras funções, pois dá como se a variável fosse inexistente. Eu não entendo como usar ponteiros nesse caso, para passar valor. To preocupado, pois tenho medo de não me suceder neste área, por não entender o que se passa nos programas. =[

#include <stdio.h>
#include <stdlib.h>

//Definindo os dados dos hospedes
typedef struct HospedeCadastro{
	char Nome[80];
	int Estadia, NumeroQuarto, Codigo;
}Cadastro;

//Alterando o valor da estadia
typedef struct ValorEstadia(){
	float TotalDebito2;
	
	if (TempoEstadia < 15)
		TotalDebito2 = 50 + TempoEstadia*4;
	if (TempoEstadia = 15)
		TotalDebito2 = 50 + TempoEstadia*3.60;
	if(TempoEstadia > 15)
		TotalDebito2 = 50 + TempoEstadia*3;

		return(TotalDebito2);
};

int achaProximoLivre(Cadastro *cli){
	int x;
	
	for(x=0; x<1000;x++){
	   if(cli[x].Codigo==-1)
	   break;	     
    return(x);
	}
}
void inicializarClientes(Cadastro *cli){
	int x;
	for (x=0; x<1000;x++)
	   cli[x].Codigo=-1;
}

void MenuHotel(){
	int Opcao, I, Quantidade, TotalDeHospedes;
	Cadastro Clientes[1000];
	
	inicializarClientes(Clientes);
	
	while(Opcao!=6){
	system("cls");
	printf("********  Menu  ********\n\n");
	printf("[1] Alterar o valor da estadia");
	printf("\n[2] Fazer Check-In");
	printf("\n[3] Fazer Check-Out");
	printf("\n[4] Atualizar as Lotacoes");
	printf("\n[5] Relatorio Diario");
	printf("\n[6] Sair");
	printf("\n\nOpcao escolhida: ");
	scanf("%d", &Opcao);
	fflush(stdin);
	
	switch(Opcao){
		
		case 1:{
//			ValorEstadia();
			break;
		}
		
		case 2:{
			system("cls");
			int x = achaProximoLivre(Clientes);
			printf("O proximo quarto livre é o %d");						
			printf("\nQual o numero do quarto que sera hospedado: ");
			scanf("%d", &Clientes[x].NumeroQuarto);
			fflush(stdin);
			printf("\nNome do hospede responsavel pelo quarto %d: ", Clientes[x].NumeroQuarto);
			gets(Clientes[x].Nome);
			break;
		}
		
		case 3:{
			
			break;
		}
		
		case 4:{
			
			break;
		}
		
		case 5:{
			
			break;
		}
		
		case 6:{
			continue;
		}
	}
	}
}


int main(void) {
	char Atendente[80];
	int I;
	
		
	printf("Qual seu nome: ");
	gets(Atendente);
	
	printf("Seja bem-vindo(a), %s.", Atendente);
	for(I=0;I<1079999999;I++);
	MenuHotel();
	
}

 

Editado por Eduardo Schossler
Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0
17 horas atrás, Eduardo Schossler disse:

Tenho dificuldade em usar os valores armazenados nas funções em outras funções, pois dá como se a variável fosse inexistente. Eu não entendo como usar ponteiros nesse caso, para passar valor. To preocupado, pois tenho medo de não me suceder neste área, por não entender o que se passa nos programas. =[

Pois deverás estudar mais sobre ponteiros. O que você ta fazendo é como sair de caça sem saber disparar a arma shuehushe.

Que é que não entende dos ponteiros?

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...