Você está na página 1de 7

#include <stdio.

h>
#include <stdlib.h>
#include <string.h>
//---------------------------------------------------------------------------------struct Voo
{
int numerovoo;
char datavoo[50];
char horavoo[50];
char aeroportosaida[50];
char aeroportochegada[50];
char rota[50];
char tempodevoo[50];
int qtpassageiros;
struct Voo *prox;
};
//---------------------------------------------------------------------------------struct Cadastros_voos
{
struct Voo *inicio;
struct Voo *fim;
};
//---------------------------------------------------------------------------------struct Passagens
{
int numerovoo;
int numeropassagem;
char dataembarque[50];
char horaembarque[50];
char portaoembarque[50];
struct Passagens *prox;
};
//---------------------------------------------------------------------------------struct Cadastros_passagens
{
struct Passagens *iniciop;
struct Passagens *fimp;
};
//---------------------------------------------------------------------------------int passagemvazio(struct Cadastros_passagens *empp);
void construtorpassagem (struct Cadastros_passagens *empp);
int cadastrarPassagem(struct Cadastros_passagens *empp, struct Passagens passagens);
void consultarPassagem(struct Cadastros_passagens *empp, int numpassagem);
int voovazio(struct Cadastros_voos *emp);
void construtor (struct Cadastros_voos *emp);
int cadastrarVoo(struct Cadastros_voos *emp, struct Voo voo);
void consultarVoo(struct Cadastros_voos *emp, int numvoo);
int removeVoo(struct Cadastros_voos *emp);
//---------------------------------------------------------------------------------int main()
{
struct Voo v;
struct Cadastros_voos emp;
construtor(&emp);
struct Passagens vp;
struct Cadastros_passagens empp;
construtorpassagem(&empp);
int opcaomain;
int opcao;
int pesquvoo;
int pesqupass;
while(opcaomain !=4)
{
int opcaomain=0;

int
int
int
int

opcao =0;
pesquvoo=0;
opcaopassagem=0;
pesqupass=0;

printf("\n*** EMPRESA VOEBEM ***\n\n");


printf("Bem vindo\n\n");
printf("Menu:\n\n");
printf("1-Menu de cadastros de Voos;\n");
printf("2-Menu de cadastro de Passagens;\n");
printf("4-Sair\n");
//------------- Inicio Estrutura de verificacao
do{
printf("\nEntre com a escolha: ");
scanf("%d",&opcaomain);
if(opcaomain!=1 && opcaomain!= 2 && opcaomain!=4)
{
printf("Por favor, insira uma opcao valida.\n");
}
}while(opcaomain !=1 && opcaomain!= 2 && opcaomain!=4);
//------------- Fim Estrutura de verificacao
system("cls");
switch(opcaomain)
{
case 1:
while(opcao != 4)
{
printf("\n*** EMPRESA VOEBEM ***\n\n");
printf("Cadastro de Voos.\n\n");
printf("Menu:\n\n");
printf("1-Cadastrar Voo;\n");
printf("2-Consultar Voo;\n");
printf("3-Excluir Voo\n");
printf("4-Sair\n");
//------------- Inicio Estrutura de verificacao
do{
printf("\nEntre com a escolha: ");
scanf("%d",&opcao);
if(opcao!=1 && opcao!= 2&& opcao!= 3 && opcao!=4)
{
printf("Por favor, insira uma opcao valida.\n");
}
}while(opcao !=1 && opcao!= 2&& opcao!= 3 && opcao!=4);
//-------------Fim Estrutura de verificacao
switch(opcao)
{
case 1:
system("cls");
printf("------CADASTRO DE VOO------\n");
printf("\n Informe o numero do Voo: ");
scanf("%d",&v.numerovoo);
fflush(stdin);
printf("\n Informe a data do voo(DD/MM/AAAA): ");
gets(v.datavoo);
printf("\n Informe a Hora do voo(HH:MM): ");
gets(v.horavoo);
printf("\n Informe aeroporto de saida: ");
gets(v.aeroportosaida);
printf("\n Informe o aeroporto Destino: ");
gets(v.aeroportochegada);
fflush(stdin);
printf("\n Informe a Rota: ");
gets(v.rota);
fflush(stdin);
printf("\n Informe o tempo de voo: ");
gets(v.tempodevoo);
fflush(stdin);

printf("\n Informe o Numero de Passageiros: ");


scanf("%d",&v.qtpassageiros);
cadastrarVoo(&emp,v);
system("cls");
break;
case 2:
system("cls");
printf("Qual numero de Voo deseja pesquisar?\n");
scanf("%d",&pesquvoo);
consultarVoo(&emp, pesquvoo);
system("cls");
break;
case 3:
if(removeVoo(&emp)==1)
{
printf("Primeiro Voo da lista removido com sucesso.\n");
system("pause");
}else
{
printf("FALHA!!!\n");
system("pause");
}
system("cls");
break;
case 4:
system("cls");
break;
default:
printf("opcao invalida, tente novamente\n");
system("pause");
system("cls");
break;
}
}
break;
case 2:
while(opcaopassagem != 4)
{
printf("\n*** EMPRESA VOEBEM ***\n\n");
printf("Cadastro de Passagens.\n\n");
printf("Menu:\n\n");
printf("1-Cadastrar Passagem;\n");
printf("2-Consultar Passagem;\n");
printf("4-Sair\n");
//------------- Inicio Estrutura de verificacao
do{
printf("\nEntre com a escolha: ");
scanf("%d",&opcaopassagem);
if(opcaopassagem!=1 && opcaopassagem!= 2 && opcaopassagem!=4)
{
printf("Por favor, insira uma opcao valida.\n");
}
}while(opcaopassagem !=1 && opcaopassagem!= 2 && opcaopassagem!=4);
//------------- Fim Estrutura de verificacao
switch(opcaopassagem)
{
case 1:
system("cls");
printf("------CADASTRO DE PASSAGENS------\n");
printf("\n Informe o numero do Voo: ");
scanf("%d",&vp.numerovoo);
fflush(stdin);
printf("\n Informe o numero da Passagem: ");
scanf("%d",&vp.numeropassagem);
fflush(stdin);
printf("\n Informe a data do embarque(DD/MM/AAAA): ");
gets(vp.dataembarque);
printf("\n Informe a Hora do embarque(HH:MM): ");
gets(vp.horaembarque);

printf("\n Informe o portao do embarque: ");


gets(vp.portaoembarque);
cadastrarPassagem(&empp,vp);
system("cls");
break;
case 2:
system("cls");
printf("Qual numero de Passagem deseja pesquisar?\n");
scanf("%d",&pesqupass);
consultarPassagem(&empp, pesqupass);
system("cls");
break;
case 4:
system("cls");
break;
default:
printf("opcao invalida, tente novamente\n");
system("pause");
system("cls");
break;
}
break;
case 4:
system("cls");
printf("\nPrograma finalizado\n.");
return 1;
}
}
}
return 0;
}
//Inicio estrutura de cadastros voos
void construtor (struct Cadastros_voos *emp)
{
emp->inicio=NULL;
emp->fim=NULL;
}
int voovazio(struct Cadastros_voos *emp)
{
if(emp->inicio==NULL)
{
return 1;
}else
{
return 0;
}
}
//---------------------------------------------------------------------------------int cadastrarVoo(struct Cadastros_voos *emp, struct Voo voo)
{
struct Voo *novovoo;
novovoo=(struct Voo*) malloc(sizeof(struct Voo));
if(novovoo!=NULL)
{
novovoo->numerovoo = voo.numerovoo;
strcpy(novovoo->datavoo, voo.datavoo);
strcpy(novovoo->horavoo, voo.horavoo);
strcpy(novovoo->aeroportosaida, voo.aeroportosaida);
strcpy(novovoo->aeroportochegada, voo.aeroportochegada);
strcpy(novovoo->rota, voo.rota);
strcpy(novovoo->tempodevoo,voo.tempodevoo);
novovoo->qtpassageiros = voo.qtpassageiros;
novovoo->prox=NULL;
if(voovazio(emp)>0)
{
emp->inicio=novovoo;
emp->fim=novovoo;
}
else

{
emp->fim->prox=novovoo;
emp->fim=novovoo;
}
}
printf("\n Voo Cadastrado com sucesso\n");
system("pause");
return 0;
}
//---------------------------------------------------------------------------------void consultarVoo(struct Cadastros_voos *emp, int numvoo)
{
struct Voo *v;
int verificador = 0;
v=emp->inicio;
if(emp->inicio== NULL)
{
printf("Nao existe Voo cadastrado.\n");
system("pause");
}else{
while(v!=NULL)
{
if (v->numerovoo==numvoo)
{
verificador = 1;
printf("--------------------------------------\n");
printf("\n Informacoes do Voo numero %d\n",v->numerovoo);
printf(" Data: %s\n", v->datavoo);
printf(" Hora: %s\n",v->horavoo);
printf(" Aeroporto de Saida: %s\n",v->aeroportosaida);
printf(" Aeroporto Destino: %s\n",v->aeroportochegada);
printf(" Rota Utilizada: %s\n",v->rota);
printf(" Tempo de Voo: %s\n",v->tempodevoo);
printf(" Numero de Passageiros: %d\n",v->qtpassageiros);
printf("--------------------------------------\n");
}
v=v->prox;
}
if (verificador == 0)
{
printf("Nao existe Voo com este numero cadastrado, tente novamente\n");
}
system("pause");
system("cls");
}
}
//---------------------------------------------------------------------------------int removeVoo(struct Cadastros_voos *emp)
{
struct Voo *v;
if(voovazio(emp)==0)
{
v = emp->inicio;
emp->inicio = v->prox;
free(v);
if(emp->inicio==NULL)if(voovazio(emp)>0)
{
emp->fim=NULL;
}
}
return 1;
}
//Fim estrtura cadastrovoos
//Inicio Estrutura cadastropassaagens
void construtorpassagem (struct Cadastros_passagens *empp)
{
empp->iniciop=NULL;
empp->fimp=NULL;

}
int passagemvazio(struct Cadastros_passagens *empp)
{
if(empp->iniciop==NULL)
{
return 1;
}else
{
return 0;
}
}
//---------------------------------------------------------------------------------int cadastrarPassagem(struct Cadastros_passagens *empp, struct Passagens passagens)
{
struct Passagens *novopassagem;
novopassagem=(struct Passagens*) malloc(sizeof(struct Passagens));
if(novopassagem!=NULL)
{
novopassagem->numerovoo = passagens.numerovoo;
novopassagem->numeropassagem = passagens.numeropassagem;
strcpy(novopassagem->dataembarque, passagens.dataembarque);
strcpy(novopassagem->horaembarque, passagens.horaembarque);
strcpy(novopassagem->portaoembarque, passagens.portaoembarque);
novopassagem->prox=NULL;
if(passagemvazio(empp)>0)
{
empp->iniciop=novopassagem;
empp->fimp=novopassagem;
}
else
{
empp->fimp->prox=novopassagem;
empp->fimp=novopassagem;
}
}
printf("\n Passagem Cadastrada com sucesso\n");
system("pause");
return 0;
}
//---------------------------------------------------------------------------------void consultarPassagem(struct Cadastros_passagens *empp, int numpassagem)
{
struct Passagens *vp;
int verificador = 0;
vp=empp->iniciop;
if(empp->iniciop== NULL)
{
printf("Nao existe Passagem cadastrada.\n");
system("pause");
}else{
while(vp!=NULL)
{
if (vp->numeropassagem==numpassagem)
{
verificador = 1;
printf("--------------------------------------\n");
printf("Informacoes da Passagem numero: %d\n",vp->numeropassagem);
printf("Data: %s\n", vp->dataembarque);
printf("Hora: %s\n",vp->horaembarque);
printf("Portao de Embarque: %s\n",vp->portaoembarque);
printf("--------------------------------------\n");
}
vp=vp->prox;
}
if (verificador == 0)
{
printf("Nao existe Passagem com este numero cadastrado, tente novamente\n");
}
system("pause");

system("cls");
}
}