Você está na página 1de 17

Relatrio 2 Listas Ligadas

Passo 1
Feito a leitura do material indicado, e do livro da disciplina conforme orientado.

Passo 2
1) Implementando a estrutura vo,funo cadastrarVoo e a funo consultaVoo
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>

void cadastrarVoo();
struct Voo {
int *numeroVoo;
int n;
int i;
int dataVoo;
float horaVoo;
char aeroportSaida[50];
char aeroportoChegada[50];
char rota[30];
float tempoVoo;
int passageirosAbordo;
};
struct Voo voo;

void cadastrarVoo(){
int i;
int n;

printf("\nDigite o numero de registros que deseja fazer: ");


scanf("%d",&voo.n);
fflush(stdin);

voo.numeroVoo = malloc(voo.n*sizeof (int));

for (voo.i = 0; voo.i < voo.n; ++voo.i){


printf("Digite o numero do voo: ");
scanf( "%d", &voo.numeroVoo[voo.i]);
fflush(stdin);

printf("\nDigite a Data do Voo ( somente numeros. Ex:010101): ");


scanf("%d",&voo.dataVoo);
fflush(stdin);

printf("\nDigite o Horario de saida do Voo( Em horas. Ex: 19 ou 18.5


): ");
scanf("%f",&voo.horaVoo);
fflush(stdin);

printf("\nDigite o Nome do Aeroporto de Saida do Voo( Sem espaco


entre os nomes. Ex: SantosDumont): ");
scanf("%s",&voo.aeroportSaida);
fflush(stdin);

printf("\nDigite o Nome do Aeroporto de Chegada do Voo( Sem espaco


entre os nomes. Ex: SantosDumont): ");
scanf("%s",&voo.aeroportoChegada);
fflush(stdin);

printf("\nDigite a Rota do Voo: ");


scanf("%s", &voo.rota);
fflush(stdin);

printf("\nDigite o tempo em horas gasto no Voo ( Ex: 10 ou 12.5): ");


scanf("%f",&voo.tempoVoo);
fflush(stdin);

printf("\nDigite o numero de passageiros do voo: ");


scanf("%d",&voo.passageirosAbordo);
fflush(stdin);

printf("\n\n Voo Cadastrado com sucesso.\n");


printf("\nnumero do voo %d\n",voo.numeroVoo[voo.i]);

system("pause");

return;

for (voo.i = voo.n; voo.i > 0; --voo.i){


printf("\nNumero do Voo: %d",voo.numeroVoo[voo.i]);
fflush(stdin);

printf("\nData de Embarque (Saida do Voo): %d",


voo.dataVoo);
printf("\nHorario de Saida do Voo: %.2f", voo.horaVoo);
printf("\nAeroporto de Embarque (Saida): %s",
voo.aeroportSaida);
printf("\nAeroporto de Desembarque(Chegada): %s",
voo.aeroportoChegada);
printf("\nRota do Voo(Destino): %s", voo.rota);
printf("\nEstimativa de Tempo de Voo: %.2f",
voo.tempoVoo);
printf("\nNumero de passageiros no Voo(A bordo): %d\n\n",
voo.passageirosAbordo);

system("PAUSE");

free(voo.numeroVoo);

return;
}
void consultaVoo(){

int numeroVoo;
char conslVoo;

numDoVoo:
printf("\nDigite o Numero do Voo a ser Consultado: ");
scanf("%d",&numeroVoo);
fflush(stdin);

if(numeroVoo == voo.numeroVoo[voo.i]){
printf("\nNumero do Voo: %d", voo.numeroVoo);
printf("\nData de Embarque: %d", voo.dataVoo);
printf("\nHorario de Saida do Voo: %.2f", voo.horaVoo);
printf("\nAeroporto de Embarque: %s", voo.aeroportSaida);
printf("\nAeroporto de Desembarque: %s",
voo.aeroportoChegada);
printf("\nRota do Voo: %s", voo.rota);
printf("\nEstimativa de Tempo de Voo: %.2f",
voo.tempoVoo);
printf("\nNumero de passageiros no Voo: %d\n\n",
voo.passageirosAbordo);

system("pause");

printf("\nDeseja retornar ao Menu? (s/n): ");


scanf("%c",&conslVoo);
fflush(stdin);
if(conslVoo == 's'){
return;
}
} else {

if(numeroVoo != voo.numeroVoo[voo.i]){

printf("\nNumero do Voo digitado esta incorreto!");


printf("\nDeseja retornar ao Menu? (s/n): ");
scanf("%c",&conslVoo);
fflush(stdin);
if(conslVoo == 's'){

return;

}
goto numDoVoo;
return;
}

int main(){

system("color 17");
int menu;

INICIO: system("cls");
printf("\n----------*-----------");
printf("\n1-Cadastro de Voo");
printf("\n2-Consulta do Voo");
printf("\n0-Sair do Sistema");
printf("\n----------*-----------");
printf("\n\nDigite a Opcao Desejada\n");
scanf("%d",&menu);
fflush(stdin);

switch(menu){
case 0:{

break;
}
case 1:{
cadastrarVoo();
goto INICIO;
break;
}
case 2:{
consultaVoo();
goto INICIO;
break;
}
default:

printf("\n Opcao Invalida\n Digite a Opcao Correta\n");


goto INICIO;
break;
}
}

return 0;
}

Esse cdigo apresenta as seguintes telas:

Passo 3
Implementando a estrutura passagem, funo cadastrarPassagem e funo consultaPassagem

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

void cadastrarPassagem();
struct Passagem {
int *numeroPassagem;
int n;

int i;
int dataEmbarque;
float horarioEmbarque;
int portaoEmbarque;
};
struct Passagem passagem;

void cadastrarPassagem(){

int i;
int n;

printf("\nDigite o numero de passagens que deseja cadastrar:


");
scanf("%d",&passagem.n);
fflush(stdin);

passagem.numeroPassagem = malloc(passagem.n*sizeof (int));

for (passagem.i = 0; passagem.i < passagem.n; ++passagem.i){


printf("Digite o numero da passagem: ");
scanf( "%d", &passagem.numeroPassagem[passagem.i]);
fflush(stdin);

printf("\nDigite a Data de Embarque ( somente numeros.


Ex:010101): ");
scanf("%d",&passagem.dataEmbarque);
fflush(stdin);

printf("\nDigite o Horario de Embarque( Em horas. Ex: 19 ou


18.5 ): ");
scanf("%f",&passagem.horarioEmbarque);
fflush(stdin);

printf("\nDigite o numero do portao de Embarque: ");


scanf("%d",&passagem.portaoEmbarque);
fflush(stdin);

printf("\n\n Passagem cadastrada com sucesso.\n");


printf("\nnumero da passagem
%d\n",passagem.numeroPassagem[passagem.i]);

system("pause");

return;

for (passagem.i = passagem.n; passagem.i > 0; --passagem.i){

printf("\nNumero da Passagem:
%d",passagem.numeroPassagem[passagem.i]);
fflush(stdin);
printf("\nData de Embarque: %d",
passagem.dataEmbarque);
printf("\nHorario de Embarque: %.2f",
passagem.horarioEmbarque);
printf("\nNumero do portao de Embarque: %d\n\n",
passagem.portaoEmbarque);

system("PAUSE");
}
free(passagem.numeroPassagem);
return;
}
void consultaPassagem(){
int numeroPassagem;
char conslPassagem;

numDaPassagem:
printf("\nDigite o Numero da Passagem a ser Consultado: ");
scanf("%d",&numeroPassagem);
fflush(stdin);

if(numeroPassagem == passagem.numeroPassagem[passagem.i]){
printf("\nNumero da Passagem: %d",
passagem.numeroPassagem);
printf("\nData de Embarque: %d",
passagem.dataEmbarque);
printf("\nHorario de Embarque: %.2f",
passagem.horarioEmbarque);

printf("\nNumero do Portao de Embarque: %d\n\n",


passagem.portaoEmbarque);

system("pause");

printf("\nDeseja retornar ao Menu? (s/n): ");


scanf("%c",&conslPassagem);
fflush(stdin);

if(conslPassagem == 's'){
return;
}
} else {

if(numeroPassagem !=
passagem.numeroPassagem[passagem.i]){
printf("\nNumero da passagem digitado esta
incorreto!");
printf("\nDeseja retornar ao Menu? (s/n): ");
scanf("%c",&conslPassagem);
fflush(stdin);
if(conslPassagem == 's'){
return;
}
}
}
goto numDaPassagem;
return;
}
int main(){
system("color 17");
int menu;

INICIO: system("cls");
printf("\n----------*-----------");
printf("\n1-Cadastro de Passagem");
printf("\n2-Consulta de Passagem");
printf("\n0-Sair do Sistema");
printf("\n----------*-----------");

printf("\n\nDigite a Opcao Desejada\n");


scanf("%d",&menu);
fflush(stdin);
switch(menu){
case 0:{
break;
}
case 1:{
cadastrarPassagem();
goto INICIO;
break;
}
case 2:{
consultaPassagem();
goto INICIO;
break;
}
default:

printf("\n Opcao Invalida\n Digite a Opcao Correta\n");


goto INICIO;
break;
}
}
return 0;
}

Esse cdigo apresenta as seguintes telas: