Jump to content
Fórum Script Brasil
  • 0

Trabalhando com funções


Eduardo Schossler

Question

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();
	
}

 

Edited by Eduardo Schossler
Link to comment
Share on other sites

2 answers to this question

Recommended Posts

  • 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 to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.1k
    • Total Posts
      652k
×
×
  • Create New...