Sie sind auf Seite 1von 18

FACULDADE ANHANGUERA

CURSO SUPERIOR EM CIENCIA DA COMPUTACAO


DISCIPLINA ESTRUTURA DE DADOS

Adriano Rogrio de Souza

RA: 9897526852

Yaggo Silva Marques

RA: 8822387481

Jos do Esprito Santo L. Jr RA: 1299100666


Gleikson Alves da Silva
Professor

RA: 1299259320
DAURIO

ATIVIDADES PRTICAS SUPERVISIONADAS


Desafio de Aprendizagem:
Soluo

computacional

baseada

em

estruturas de dados para uma empresa


area chamada VOEBEM que deseja
automatizar alguns processos adotados
pela companhia.

Anpolis GO
2015
1

SUMARIO
INTRODUCAO..........................................................................................................................3
DESENVOLVIMENTO..............................................................................................................4
RELATRIO 1 - ESTRUTURA DE DADOS............................................................................4
PROGRAMA EM LINGUAGEM C DA ESTRUTURA AVIO..............................................5
RELATRIO 2 - LISTAS LIGADAS........................................................................................9
PROGRAMA EM LINGUAGEM C DA ESTRUTURA DE DADOS VOO.............................9
PROGRAMA EM LINGUAGEM C DA ESTRUTURA PASSAGEM...................................13
REFERENCIAS BIBLIOGRAFICAS......................................................................................17

INTRODUO

Uma struct uma varivel especial que contm diversas outras variveis normalmente
de tipos diferentes.
Podemos dizer que as structs da linguagem C so o equivalente ao que se denomina
registros em outras linguagens de programao.

DESENVOLVIMENTO
RELATRIO 1 - ESTRUTURA DE DADOS
Alocao de Memria
Todo programa precisa utilizar memria para ser executado. Quando um programa
inicia sua execuo, ele comea a solicitar memria ao sistema operacional, ou seja, faz a
alocao de memria necessria para a sua execuo. Nem sempre a memria alocada na
iniciao do programa suficiente, ento o programa tambm precisa alocar memria durante
a sua execuo.
Alocao Esttica de Memria
Na alocao esttica o espao de memria, que as variveis iro utilizar durante a
execuo do programa, definido no processo de compilao. No sendo possvel alterar o
tamanho desse espao durante a execuo do programa.
Exemplos:
a) Espao reservado para um valor do tipo char. O char ocupa 1 byte na memria.
char a;
b) Espao reservado para dez valores do tipo int. O int ocupa 4 bytes na memria,
portanto 4x10=40 bytes.
int vetor[10];
c) Espao reservado para nove(3x3) valores do tipo double. O double ocupa 8 bytes na
memria, portanto 3x3x8=72 bytes.
double matriz[3][3];
Este tipo de alocao utilizado quando se sabe de antemo a quantidade de memria
que ser utilizada pelo programa.

Programa em Linguagem C da estrutura avio.


#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
#include <malloc.h>
#include <locale.h>
//===============================================================================
struct aviao {
int

a_modelo;

char

b_fabricante[20];

int

c_passageiros;

float

d_comprimento;

float

e_altura;

int

f_velocidade;

int

g_altitude;

int

h_motor;

struct aviao *prox;


};
typedef aviao celula;
//===============================================================================
void MSG(char texto[]){
printf("\n");
printf("----- %s -----",texto);
printf("\n");
system("pause");
}
void TITULO(){
printf("Manutencao do Arquivo de Avio");
printf("\n");
printf("---------- -- ------- -- -----");
printf("\n\n");
}
void MOSTRA_OPCAO(char m, char op){
if (m == 'n'){
printf("\n\n");
printf("-> ");
}
switch(op) {
case '1':
printf("1-Cadastro");
break;
case '2':
printf("2-Excluir Item");
break;
case '3':
printf("3-Excluir a Lista");
break;
case '4':
printf("4-Consultar Item");
break;
case '5':
printf("5-Consultar Lista Completa");
break;
case '6':
printf("6-");
break;
case '7':
printf("7-");
break;
case '8':
printf("8-");
break;
case '9':
printf("9-");
break;
case '0':
printf("0-Finaliza Sistema");

break;
}
if (m == 'n'){
printf("\n\n");
}
}
celula *ALOCA(){
celula *nova = (aviao *) malloc(sizeof(aviao));
nova->prox = NULL;
return nova;
}
celula *LER(){
celula *nova;

nova = ALOCA();

printf("MODELO: ");
scanf("%d", &nova->a_modelo);

printf("FABRICANTE: ");
fflush(stdin);
gets(nova->b_fabricante);

printf("PASSAGEIROS: ");
scanf("%d", &nova->c_passageiros);

printf("COMPRIMENTO EM METROS: ");


scanf("%f", &nova->d_comprimento);

printf("ALTURA EM METROS: ");


scanf("%f", &nova->e_altura);

printf("VELOCIDADE: ");
scanf("%d", &nova->f_velocidade);

printf("ALTITUDE: ");
scanf("%d", &nova->g_altitude);

printf("MOTOR: ");
scanf("%d", &nova->h_motor);

return nova;
}
void INSERIR_VALOR_NA_LISTA(celula *nova, celula *ini){

if (ini == NULL){
ini = nova;
}
else{
while(ini->prox!=NULL){
ini=ini->prox;
}
ini->prox = nova;
}
}
celula *CONSULTA_VALOR(int valor, celula *atu){
celula *ant = NULL;

while(atu->prox!=NULL && atu->a_modelo!=valor){


ant = atu;
atu=atu->prox;
};
if (atu->a_modelo!=valor)
return NULL;

return ant;
}
//===============================================================================
void cadastrarAviao(celula *ini){
char opcao = '1';
do{
switch(opcao) {
case '1':
INSERIR_VALOR_NA_LISTA(LER(), ini);
opcao = '9';
break;
case '9':
printf("Cadastrar outro Item <1-Sim/2-Nao>: ");
opcao = getche();
printf("\n");
break;
default:
printf("OPCAO INVALIDA!\n");
opcao = '9';
break;
}

}while (opcao != '2');


}
void removeAviao(celula *ini){
celula *aux;
celula *morta;
int valor;
if (ini->prox == NULL){
MSG("A LISTA ESTA VAZIA !");
return;
}

printf("Informe o Item a ser removido: ");


scanf("%d", &valor);

aux = CONSULTA_VALOR(valor, ini);

if (aux == NULL)
MSG("ITEM NAO ENCONTRADO!");
else{
morta = aux->prox;
aux->prox = morta->prox;
free(morta);
morta = NULL;
MSG("ITEM EXCLUIDO COM SUCESSO!");
}
}
void EXCLUIR_A_LISTA(celula *ini){
ini->prox = NULL;
MSG("LISTA EXCLUIDA COM SUCESSO!");
}
void consultaAviao(celula *ini){
celula *aux;
if (ini->prox == NULL){
MSG("A LISTA ESTA VAZIA !");
return;
}
int valor;
char opcao = '1';
do{
switch(opcao) {
case '1':
printf("Informe o Item a ser consultado: ");
scanf("%d", &valor);
aux = CONSULTA_VALOR(valor, ini);
if (aux == NULL)
printf("ITEM NAO ENCONTRADO!\n");
else{
aux = aux->prox;
printf("\nMODELO...............: %d\n",

aux->a_modelo);

printf("FABRICANTE...........: %s\n",

aux->b_fabricante);

printf("PASSAGEIROS..........: %d\n",

aux->c_passageiros);

printf("COMPRIMENTO EM METROS: %0.2f\n",

aux->d_comprimento);

printf("ALTURA EM METROS.....: %0.2f\n", aux->e_altura);


printf("VELOCIDADE...........: %d\n",

aux->f_velocidade);

printf("ALTITUDE.............: %d\n",

aux->g_altitude);

printf("MOTOR................: %d\n",

aux->h_motor);

};
opcao = '9';
break;
case '9':
printf("Consultar outro Item <1-Sim/2-Nao>: ");
opcao = getche();
printf("\n");
break;
default:
printf("OPCAO INVALIDA!\n");
opcao = '9';
break;
}
}while (opcao != '2');
};
void LISTA_COMPLETA(celula *ini){
if (ini->prox == NULL){
MSG("A LISTA ESTA VAZIA !");
return;
}
celula *aux;
printf("==INICIO DA CONSULTA====================================");
printf("\n");
for(aux=ini->prox; aux!=NULL; aux=aux->prox){
printf("\n");
printf("MODELO................: %d |",
printf("FABRICANTE.: %s |",

aux->a_modelo);
aux->b_fabricante);

printf("PASSAGEIROS.: %d |",

aux->c_passageiros);

printf("\n");
printf("COMPRIMENTO EM METROS.: %0.2f |",

aux->d_comprimento);

printf("ALTURA EM METROS.: %0.2f |",

aux->e_altura);

printf("VELOCIDADE.: %d |",

aux->f_velocidade);

printf("\n");
printf("ALTITUDE..............: %d |",

aux->g_altitude);

printf("MOTOR.: %d |",

aux->h_motor);

printf("\n");
}
printf("\n");
printf("==FINAL DE CONSULTA=====================================");
printf("\n");
system("pause");
};
//===============================================================================
char menu_de_opcoes(){
char op;
printf("\tMenu de Opes\n\t");
printf("---- -- ------\n\t");
MOSTRA_OPCAO('s','1');
printf("\n\t");
MOSTRA_OPCAO('s','2');
printf("\n\t");
MOSTRA_OPCAO('s','3');
printf("\n\t");
MOSTRA_OPCAO('s','4');
printf("\n\t");
MOSTRA_OPCAO('s','5');
printf("\n\t");
MOSTRA_OPCAO('s','6');
printf("\n\t");
MOSTRA_OPCAO('s','7');
printf("\n\t");
MOSTRA_OPCAO('s','8');
printf("\n\t");
MOSTRA_OPCAO('s','9');
printf("\n\t");
MOSTRA_OPCAO('s','0');
printf("\n\t");
printf("\n\t--------------- ");
printf("\n\tInfome a Opo: ");
op = getche();

return op;
}
//===============================================================================
int main(){
celula *cabeca;
cabeca = ALOCA();
system("title Empresa area VOEBEM");
system("COLOR 1F");
setlocale(LC_ALL, "portuguese");
char op;
do{
system("cls");
TITULO();
op = menu_de_opcoes();
MOSTRA_OPCAO('n',op);
switch (op){
case '0':
return 0;
break;
case '1':
cadastrarAviao(cabeca);
break;
case '2':
removeAviao(cabeca);
break;
case '3':
EXCLUIR_A_LISTA(cabeca);
break;
case '4':
consultaAviao(cabeca);
break;
case '5':
LISTA_COMPLETA(cabeca);
break;
default:
MSG("OPCAO INVALIDA !");
break;
}
}while(op != '0');
return 0;
}

Relatrio 2 - Listas Ligadas


Programa em Linguagem C da estrutura de dados voo.
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
#include <malloc.h>
#include <locale.h>
//===============================================================================
struct voo {
int

a_numero_do_voo;

int

b_data_do_voo;

int

c_horario_do_voo;

char

d_aeroporto_de_Saida[30];

char

e_aeroporto_de_Chegada[30];

int

f_rota;

int

g_tempo_estimado_de_voo;

int

h_passageiros_a_bordo;

struct voo *prox;


};
typedef voo celula;
//===============================================================================
void MSG(char texto[]){
printf("\n");
printf("----- %s -----",texto);
printf("\n");
system("pause");
}
void TITULO(){
printf("Manutencao do Arquivo de Voo");
printf("\n");
printf("---------- -- ------- -- ---");
printf("\n\n");
}

void MOSTRA_OPCAO(char m, char op){


if (m == 'n'){
printf("\n\n");
printf("-> ");
}
switch(op) {
case '1':
printf("1-Cadastro");
break;
case '2':
printf("2-Excluir Item");
break;
case '3':
printf("3-Excluir a Lista");
break;
case '4':
printf("4-Consultar Item");
break;
case '5':
printf("5-Consultar Lista Completa");
break;
case '6':
printf("6-");
break;
case '7':
printf("7-");
break;
case '8':
printf("8-");
break;
case '9':
printf("9-");
break;
case '0':
printf("0-Finaliza Sistema");
break;
}
if (m == 'n'){
printf("\n\n");
}
}
celula *ALOCA(){
celula *nova = (voo *) malloc(sizeof(voo));
nova->prox = NULL;
return nova;
}
celula *LER(){
celula *nova;

nova = ALOCA();

printf("NMERO DO VOO: ");


scanf("%d", &nova->a_numero_do_voo);

printf("DATA DO VOO DD/MM/AAAA: ");


scanf("%d", &nova->b_data_do_voo);

printf("HORARIO DO VOO HH:MM:SS: ");


scanf("%d", &nova->c_horario_do_voo);

printf("AEROPORTO DE SAIDA: ");


fflush(stdin);
gets(nova->d_aeroporto_de_Saida);

printf("AEROPORTO DE CHEGADA: ");


fflush(stdin);
gets(nova->e_aeroporto_de_Chegada);

printf("ROTA: ");
scanf("%d", &nova->f_rota);

10

printf("TEMPO ESTIMADO DE VOO: ");


scanf("%d", &nova->g_tempo_estimado_de_voo);

printf("PASSAGEIROS A BORDO: ");


scanf("%d", &nova->h_passageiros_a_bordo);

return nova;
}
void INSERIR_VALOR_NA_LISTA(celula *nova, celula *ini){

if (ini == NULL){
ini = nova;
}
else{
while(ini->prox!=NULL){
ini=ini->prox;
}
ini->prox = nova;
}
}
celula *CONSULTA_VALOR(int valor, celula *atu){
celula *ant = NULL;

while(atu->prox!=NULL && atu->a_numero_do_voo!=valor){


ant = atu;
atu=atu->prox;
};
if (atu->a_numero_do_voo!=valor)
return NULL;
return ant;
}
//===============================================================================
void cadastrarVoo(celula *ini){
char opcao = '1';
do{
switch(opcao) {
case '1':
INSERIR_VALOR_NA_LISTA(LER(), ini);
opcao = '9';
break;
case '9':
printf("Cadastrar outro Item <1-Sim/2-Nao>: ");
opcao = getche();
printf("\n");
break;
default:
printf("OPCAO INVALIDA!\n");
opcao = '9';
break;
}

}while (opcao != '2');


}
void removeVoo(celula *ini){
celula *aux;
celula *morta;
int valor;
if (ini->prox == NULL){
MSG("A LISTA ESTA VAZIA !");
return;
}

printf("Informe o Item a ser removido: ");


scanf("%d", &valor);

aux = CONSULTA_VALOR(valor, ini);

11

if (aux == NULL)
MSG("ITEM NAO ENCONTRADO!");
else{
morta = aux->prox;
aux->prox = morta->prox;
free(morta);
morta = NULL;
MSG("ITEM EXCLUIDO COM SUCESSO!");
}
}
void EXCLUIR_A_LISTA(celula *ini){
ini->prox = NULL;
MSG("LISTA EXCLUIDA COM SUCESSO!");
}
void consultaVoo(celula *ini){
celula *aux;
if (ini->prox == NULL){
MSG("A LISTA ESTA VAZIA !");
return;
}
int valor;
char opcao = '1';
do{
switch(opcao) {
case '1':
printf("Informe o Item a ser consultado: ");
scanf("%d", &valor);
aux = CONSULTA_VALOR(valor, ini);
if (aux == NULL)
printf("ITEM NAO ENCONTRADO!\n");
else{
aux = aux->prox;
printf("\nNMERO DO VOO..........: %d\n",

aux->a_numero_do_voo);

printf("DATA DO VOO DD/MM/AAAA.: %d\n",

aux->b_data_do_voo);

printf("HORARIO DO VOO HH:MM:SS: %d\n",

aux->c_horario_do_voo);

printf("AEROPORTO DE SAIDA.....: %s\n",

aux->d_aeroporto_de_Saida);

printf("AEROPORTO DE CHEGADA...: %s\n",

aux->e_aeroporto_de_Chegada);

printf("ROTA...................: %d\n",

aux->f_rota);

printf("TEMPO ESTIMADO DE VOO..: %d\n",

aux->g_tempo_estimado_de_voo);

printf("PASSAGEIROS A BORDO....: %d\n",

aux->h_passageiros_a_bordo);

};
opcao = '9';
break;
case '9':
printf("Consultar outro Item <1-Sim/2-Nao>: ");
opcao = getche();
printf("\n");
break;
default:
printf("OPCAO INVALIDA!\n");
opcao = '9';
break;
}
}while (opcao != '2');
};
void LISTA_COMPLETA(celula *ini){
if (ini->prox == NULL){
MSG("A LISTA ESTA VAZIA !");
return;
}
celula *aux;
printf("==INICIO DA CONSULTA====================================");
printf("\n");
for(aux=ini->prox; aux!=NULL; aux=aux->prox){
printf("\n");
printf("NMERO DO VOO..........: %d |",

aux->a_numero_do_voo);

printf("DATA DO VOO DD/MM/AAAA.: %d |",

aux->b_data_do_voo);

printf("HORARIO DO VOO HH:MM:SS: %d |",

aux->c_horario_do_voo);

printf("\n");
printf("AEROPORTO DE SAIDA.....: %s |",
printf("AEROPORTO DE CHEGADA.: %s |",
printf("ROTA.: %d |",

aux->d_aeroporto_de_Saida);
aux->e_aeroporto_de_Chegada);

aux->f_rota);

printf("\n");
printf("TEMPO ESTIMADO DE VOO..: %d |",

aux->g_tempo_estimado_de_voo);

12

printf("PASSAGEIROS A BORDO.: %d |",

aux->h_passageiros_a_bordo);

printf("\n");
}
printf("\n");
printf("==FINAL DE CONSULTA=====================================");
printf("\n");
system("pause");
};
//===============================================================================
char menu_de_opcoes(){
char op;
printf("\tMenu de Opes\n\t");
printf("---- -- ------\n\t");
MOSTRA_OPCAO('s','1');
printf("\n\t");
MOSTRA_OPCAO('s','2');
printf("\n\t");
MOSTRA_OPCAO('s','3');
printf("\n\t");
MOSTRA_OPCAO('s','4');
printf("\n\t");
MOSTRA_OPCAO('s','5');
printf("\n\t");
MOSTRA_OPCAO('s','6');
printf("\n\t");
MOSTRA_OPCAO('s','7');
printf("\n\t");
MOSTRA_OPCAO('s','8');
printf("\n\t");
MOSTRA_OPCAO('s','9');
printf("\n\t");
MOSTRA_OPCAO('s','0');
printf("\n\t");
printf("\n\t--------------- ");
printf("\n\tInfome a Opo: ");
op = getche();
return op;
}
//===============================================================================
int main(){
celula *cabeca;
cabeca = ALOCA();
system("title Empresa area VOEBEM");
system("COLOR 3F");
setlocale(LC_ALL, "portuguese");
char op;
do{
system("cls");
TITULO();
op = menu_de_opcoes();
MOSTRA_OPCAO('n',op);
switch (op){
case '0':
return 0;
break;
case '1':
cadastrarVoo(cabeca);
break;
case '2':
removeVoo(cabeca);
break;
case '3':
EXCLUIR_A_LISTA(cabeca);
break;
case '4':
consultaVoo(cabeca);
break;
case '5':
LISTA_COMPLETA(cabeca);
break;
default:
MSG("OPCAO INVALIDA !");
break;
}
}while(op != '0');
return 0;
}

13

Programa em Linguagem C da estrutura passagem.


#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
#include <malloc.h>
#include <locale.h>
//===============================================================================
struct passagem {
int

a_numero_da_passagem;

int

b_numero_do_voo;

int

c_data_de_embarque;

int

d_Horario_de_embarque;

int

e_portao_de_embarque;

struct passagem *prox;


};
typedef passagem celula;
//===============================================================================
void MSG(char texto[]){
printf("\n");
printf("----- %s -----",texto);
printf("\n");
system("pause");
}
void TITULO(){
printf("Manutencao do Arquivo de Passagem");
printf("\n");
printf("---------- -- ------- -- --------");
printf("\n\n");
}
void MOSTRA_OPCAO(char m, char op){
if (m == 'n'){
printf("\n\n");
printf("-> ");
}
switch(op) {
case '1':
printf("1-Cadastro");
break;
case '2':
printf("2-Excluir Item");
break;
case '3':
printf("3-Excluir a Lista");
break;
case '4':
printf("4-Consultar Item");
break;
case '5':
printf("5-Consultar Lista Completa");
break;
case '6':
printf("6-");
break;
case '7':
printf("7-");
break;
case '8':
printf("8-");
break;
case '9':
printf("9-");
break;
case '0':
printf("0-Finaliza Sistema");
break;
}
if (m == 'n'){
printf("\n\n");
}
}
celula *ALOCA(){
celula *nova = (passagem *) malloc(sizeof(passagem));
nova->prox = NULL;
return nova;

14

}
celula *LER(){
celula *nova;

nova = ALOCA();

printf("NMERO DA PASSAGEM: ");


scanf("%d", &nova->a_numero_da_passagem);

printf("NMERO DO VOO: ");


scanf("%d", &nova->b_numero_do_voo);

printf("DATA EMBARQUE: ");


scanf("%d", &nova->c_data_de_embarque);

printf("HORARIO EMBARQUE: ");


scanf("%d", &nova->d_Horario_de_embarque);

printf("PORTAO EMBARQUE: ");


scanf("%d", &nova->e_portao_de_embarque);

return nova;
}
void INSERIR_VALOR_NA_LISTA(celula *nova, celula *ini){

if (ini == NULL){
ini = nova;
}
else{
while(ini->prox!=NULL){
ini=ini->prox;
}
ini->prox = nova;
}
}
celula *CONSULTA_VALOR(int valor, celula *atu){
celula *ant = NULL;

while(atu->prox!=NULL && atu->a_numero_da_passagem!=valor){


ant = atu;
atu=atu->prox;
};
if (atu->a_numero_da_passagem!=valor)
return NULL;
return ant;
}
//===============================================================================
void cadastrarPassagem(celula *ini){
char opcao = '1';
do{
switch(opcao) {
case '1':
INSERIR_VALOR_NA_LISTA(LER(), ini);
opcao = '9';
break;
case '9':
printf("Cadastrar outro Item <1-Sim/2-Nao>: ");
opcao = getche();
printf("\n");
break;
default:
printf("OPCAO INVALIDA!\n");
opcao = '9';
break;
}

15

}while (opcao != '2');


}
void removePassagem(celula *ini){
celula *aux;
celula *morta;
int valor;
if (ini->prox == NULL){
MSG("A LISTA ESTA VAZIA !");
return;
}

printf("Informe o Item a ser removido: ");


scanf("%d", &valor);

aux = CONSULTA_VALOR(valor, ini);

if (aux == NULL)
MSG("ITEM NAO ENCONTRADO!");
else{
morta = aux->prox;
aux->prox = morta->prox;
free(morta);
morta = NULL;
MSG("ITEM EXCLUIDO COM SUCESSO!");
}
}
void EXCLUIR_A_LISTA(celula *ini){
ini->prox = NULL;
MSG("LISTA EXCLUIDA COM SUCESSO!");
}
void consultaPassagem(celula *ini){
celula *aux;
if (ini->prox == NULL){
MSG("A LISTA ESTA VAZIA !");
return;
}
int valor;
char opcao = '1';
do{
switch(opcao) {
case '1':
printf("Informe o Item a ser consultado: ");
scanf("%d", &valor);
aux = CONSULTA_VALOR(valor, ini);
if (aux == NULL)
printf("ITEM NAO ENCONTRADO!\n");
else{
aux = aux->prox;
printf("\nNMERO DA PASSAGEM.....: %d\n",

aux->a_numero_da_passagem);

printf("NMERO DO VOO..........: %d\n",

aux->b_numero_do_voo);

printf("DATA EMBARQUE..........: %d\n",

aux->c_data_de_embarque);

printf("HORARIO EMBARQUE.......: %d\n",

aux->d_Horario_de_embarque);

printf("PORTAO EMBARQUE........: %d\n",

aux->e_portao_de_embarque);

};
opcao = '9';
break;
case '9':
printf("Consultar outro Item <1-Sim/2-Nao>: ");
opcao = getche();
printf("\n");
break;
default:
printf("OPCAO INVALIDA!\n");
opcao = '9';
break;
}
}while (opcao != '2');
};
void LISTA_COMPLETA(celula *ini){
if (ini->prox == NULL){
MSG("A LISTA ESTA VAZIA !");
return;

16

}
celula *aux;
printf("==INICIO DA CONSULTA====================================");
printf("\n");
for(aux=ini->prox; aux!=NULL; aux=aux->prox){
printf("\n");
printf("\nNMERO DA PASSAGEM.....: %d |",

aux->a_numero_da_passagem);

printf("NMERO DO VOO: %d |",

aux->b_numero_do_voo);

printf("DATA EMBARQUE: %d |",

aux->c_data_de_embarque);

printf("\n");
printf("HORARIO EMBARQUE.......: %d |",

aux->d_Horario_de_embarque);

printf("PORTAO EMBARQUE: %d |",

aux->e_portao_de_embarque);

printf("\n");
}
printf("\n");
printf("==FINAL DE CONSULTA=====================================");
printf("\n");
system("pause");
};
//===============================================================================
char menu_de_opcoes(){
char op;
printf("\tMenu de Opes\n\t");
printf("---- -- ------\n\t");
MOSTRA_OPCAO('s','1');
printf("\n\t");
MOSTRA_OPCAO('s','2');
printf("\n\t");
MOSTRA_OPCAO('s','3');
printf("\n\t");
MOSTRA_OPCAO('s','4');
printf("\n\t");
MOSTRA_OPCAO('s','5');
printf("\n\t");
MOSTRA_OPCAO('s','6');
printf("\n\t");
MOSTRA_OPCAO('s','7');
printf("\n\t");
MOSTRA_OPCAO('s','8');
printf("\n\t");
MOSTRA_OPCAO('s','9');
printf("\n\t");
MOSTRA_OPCAO('s','0');
printf("\n\t");
printf("\n\t--------------- ");
printf("\n\tInfome a Opo: ");
op = getche();
return op;
}
//===============================================================================
int main(){
celula *cabeca;
cabeca = ALOCA();
system("title Empresa area VOEBEM");
system("COLOR 2F");
setlocale(LC_ALL, "portuguese");
char op;
do{
system("cls");
TITULO();
op = menu_de_opcoes();
MOSTRA_OPCAO('n',op);
switch (op){
case '0':
return 0;
break;
case '1':
cadastrarPassagem(cabeca);
break;
case '2':
removePassagem(cabeca);
break;
case '3':
EXCLUIR_A_LISTA(cabeca);
break;
case '4':
consultaPassagem(cabeca);
break;

17

case '5':
LISTA_COMPLETA(cabeca);
break;
default:
MSG("OPCAO INVALIDA !");
break;
}
}while(op != '0');
return 0;
}

REFERENCIAS BIBLIOGRAFICAS
https://si2014.files.wordpress.com/2012/05/estrdado-materia-06-alocacao-de-memoria1.pdf

18