You are on page 1of 8

Etapa 2 Passo 3

// Trabalho de estrutura de dados Etapa 2 Passo 3


//Cadastro e busca de passagens

// Inicio do progama
#include<stdlib.h>
#include<stdio.h>
#define n 1000//DEFINE FACILITA ALTERAO DE NUMERO MAXIMO DE
CADASTROS NA ESTRUTURA
// STRUCT QUE CONTEM CADA CAMPO DA PASSAGEM EXETO O NUMERO DA
PASSAGEM QUE E GERADO AUTOMATICAMENTE
//ASSIM QUE A PASSAGEM E CADASTRADA
struct passagem{
int num_voo;//ARMAZE A O NUMERO DO VOO
char data_voo[10];//ARMAZE A A DATA DO VOO
char hora_voo[5];//ARMAZENA A HORA DO VOO
int num_portao;// ARMAZENA O NUMERO DO PORTAO
int valida; // VALIDA NUMERO BUSCADO SE PASSAGEM EST CADASTRADA
OU NO
};
//OP E A VARIAVEL DE CONTROLE PARA OPES COMO CONTINUAR OU
VOLTAR
int op;
int num_passagem=1,bpassagem;//NUM_PASSAGEM E A VARIAVEL QUE
ARMAZENA O NUMERO DA PASSAGEM
struct passagem ipassagem[n];// IPASSAGEM E O VETOR QUE ARMAZENA
CADA PASSAGEM COMPLETA

void cadastro(){//FUNO RESPONSSAVEL PELO CADASTRO DA PASSAGEM


system("cls");
printf("\n---------CADASTRO DE PASSAGEM----------\n\n\n");
printf("\n DIGITE O NUMERO DO VOO:");
scanf("%d",&ipassagem[num_passagem].num_voo);
printf("\n DIGITE A DATA DO VOO:");
scanf("%s",&ipassagem[num_passagem].data_voo);
printf("\n DIGITE O HORARIO DO VOO:");
scanf("%s",&ipassagem[num_passagem].hora_voo);
printf("\n DIGITE O NUMERO DO PORTAO:");
scanf("%d",&ipassagem[num_passagem].num_portao);
printf("\n\n PARABENS SUA PASSAGEM FOI CADASTRADA COM SUCESSO!
NUMERO DA PASSAGEM:%d\n",num_passagem);
ipassagem[num_passagem].valida=1;//VALIDA QUE NESTA POSSIO DO
VETOR EXISTE UMA PASSAGEM CADSTRADA
num_passagem++;//IMCREMENTA 1 NO NUMERO DA PROXIMA PASSAGEM E
O NUMERO DA POSIO QUE SERA SALVA

printf("\n DESEJA CADASTRAR OUTRA PASSAGEM? 1_sim, 2_nao\n 1 OU 2:");
scanf("%d",&op);
if(op==2){op=3;}
system("cls");
}


// FUNO RESPONSSAVEL PELA BUSCA DA PASSAGEM
void busca(){
system("cls");
printf("\n-----------BUSCAR PASSAGEM---------\n");
printf("\n\n\n DIGITE O NUMERO DA PPASSAGEM:");


scanf("%d",&bpassagem);
if(ipassagem[bpassagem].valida==0){

printf("\n\n PASSAGEM NAO CADASTRADA\n\n");
printf("\n\ DESEJA PROCURAR OUTRA PASSAGEM? 1_SIM 2_VOLTAR\n 1
OU 2:");
scanf("%d",&op);
if(op==2){op=3;}
if(op==1){op=2;}
}else{


printf("\n SUA PASSGEM FOI ENCONTRADA:\n\n");
printf("\n NUMERO DA PASSAGEM:%d\n",bpassagem);
printf("\n NUMERO DO VOO:%d\n",ipassagem[bpassagem].num_voo);
printf("\n DATA DO VOO:%s\n",ipassagem[bpassagem].data_voo);
printf("\n HORARIO DO VOO:%s\n",ipassagem[bpassagem].hora_voo);
printf("\n NUMERO DO PORTAO:%d\n",ipassagem[bpassagem].num_portao);
printf("\n\ DESEJA PROCURAR OUTRA PASSAGEM? 1_SIM 2_VOLTAR\n 1 OU
2:");
scanf("%d",&op);
if(op==2){op=3;}
if(op==1){op=2;}
}
}





main(){
int p;
for(p=0;p<n;p++){

ipassagem[p].valida=0; // PREENCHE TODOS OS CAMPOS VALIDA DAS
STRUCTS COM 0

}
char sequencia='x';

do{
system("cls");
printf("\n----------VOEBEM------------\n");
printf("\n 1_CADASTRAR PASSAGEM\n 2_PROCURAR PASSAGEM\n
3_SAIR\n\n ESCOLHA 1, 2 OU 3 :");
scanf("%d",&op);
if(op==3){
sequencia='s';}
system("cls");

while(op==1){

cadastro();

}

while(op==2){
busca();


}

}while(sequencia!='s');// SEMPRE QUE USUARIO DIGITAR 3 ELE
FEXA O PROGAMA
}

// Fim do progama
















Relatrio



Funes
O programa para cadastro e busca de passagem foi desenvolvida baseada em duas
funes a funo cadastro responsvel por realizar cadastros das passagens e a
funo busca responsvel por buscar as passagens mostra-las na tela.
Estruturas
O programa possui basicamente uma estrutura cadastro que possui as informaes
referentes a passagem e o campo valida que informa se a posio no vetor j est
preenchida com uma passagem.
O programa e controlado por um lao do while e dois laos while.O primeiro valida
at quando o programa ser executado caso usurio deseje sair j os seguintes
servem para acessar as duas funes bsicas do programa (cadastrar, e consultar)
e repeti-las enquanto o usurio desejar e voltar ao menu principal sempre que o
usurio quiser.
Funo cadastro
Funo armazena cada passagem na varivel do tipo struct passagem ipassagem
que possui [n] posies.
Cada cadastro de passagem recebe automaticamente um numero de passagem
referenciado pela varivel num_passagem que comea com 1 e vai incrementando
de acordo com o numero de cadastros;
O programa gera um numero nico para cada passagem que por sinal e exatamente
o numero da posio que a passagem est armazenada no vetor ipassagem
auxiliando muito na sua busca da passagem posteriormente.
Funo busca
Como o programa foi projetado de maneira que o numero da passagem seja igual o
numero da posio que ela esta armazenada se torna muito fcil realizar a busca da
passagem.
Para buscar uma passagem basta o usurio digitar o numero da passagem que
ser armazenado na varivel bpassagem posteriormente ser feita uma simples
validao caso o campo valida desta passagem esteja com 0 a passagem procurada
no est cadastrada e isso ser informado para o usurio caso o campo valida da
passagem esteja com 1 ser informado que a passagem foi encontrada e mostrar
para o usurio todos campos de sua passagem.
Ex:
Printf(digite o numero de sua passagem);
Scanf(%d,&bpassagem);
If(bpassagem==0){ printf( a passagem no est cadastrada);
}
If(bpassagem==1){
Printf(o numero da passagem e %d:,bpassagem)
Printf(o numero do voo e: %d,ipassagem[bpassagem].num_voo);
Printf(a data do voo e: %d,ipassagem[bpassagem].data_voo);
Printf(o hora do voo e: %d,ipassagem[bpassagem].hora_voo);
Printf(o numero do portao e: %d,ipassagem[bpassagem].num_portao);