ATPS Estrutura de Dados Etapas 3 e 4
Por: SonSolimar • 21/2/2018 • 897 Palavras (4 Páginas) • 424 Visualizações
...
printf("\nDigite o tamanho maximo da fila de taxiamento: ");
scanf("%i", &limiteFila);
fflush(stdin);
filaTaxi = criaFila();
if(filaTaxi) printf("\nFila para %i aeronaves criada com sucesso!!!\n\n\n", limiteFila);
else printf("\nErro!! Não foi possivel criar a fila. Por favor, tente novamente...\n\n\n");
system("pause");
break;
case 2:
system("cls");
printf("\nCadastrar novo taxiamento!\n");
printf("\nDigite o numero do voo: ");
scanf("%i", &temp);
fflush(stdin);
temp = cadastrarTaxiamento(filaTaxi, temp);
if (temp != 0) printf("\nVoo numero %i foi enfileirado com sucesso!\n\n\n", temp);
else printf("\nA fila esta cheia!\n\n\n");
system("pause");
break;
case 3:
system("cls");
printf("\nAutorizar Taxiamento!\n");
temp = autorizaTaxiamento(filaTaxi);
if(temp != 0) printf("\nO voo numero %i foi liberado com sucesso!\n\n\n", temp);
else printf("\nA fila esta vazia!\n\n\n");
system("pause");
break;
case 0: break;
}// switch(op)
}while(op != 0);// do-while.
system("cls");
printf("\n\n\n\n\n\n\n\n\n\n\t\t\tEncerrando Programa !!!\n\n\n\n\n\n");
Sleep(3000);
return 0;
}// main()
[pic 1]
Figura 1. Menu do programa taxiamento
[pic 2]
Figura 2. Criando uma fila
[pic 3]
Figura 3. Cadastrando um novo taxiamento
[pic 4]
Figura 4. Autorizando taxiamento
3.2 Implementação da estrutura bagagem
#include
#include
#include
#include
#include
typedef struct bagagem{
int codBagagem;
int codPassagem;
int codVoo;
char data[10];
char hora[5];
char portao[10];
struct bagagem* proximo;
}Bag;
int tamPilha = 0;
Bag *criaPilha(void){
Bag* topo = (Bag*) malloc(sizeof(Bag));
topo->codBagagem = 0;/* topo é o sentinela e seu campo codBagagem irá controlar o tamanho da pilha.*/
topo->proximo = NULL;/* Aponta para o nulo porque ainda não existe o próximo nó.*/
return(topo);
}// criaPilha()
int pilhaVazia(Bag* topo){
return(topo->proximo == NULL); /* retorna 1-vazia; 0-não vazia */
}// pilhaVazia()
int pilhaCheia(Bag* topo){
return(topo->codBagagem == tamPilha); /* retorna 1-cheia; 0-não cheia */
}// pilhaCheia()
int cadastraBagagem(Bag* topo, int num) {
if(!pilhaCheia(topo)){
Bag* novaBagagem = (Bag*) malloc(sizeof(Bag));
novaBagagem->codBagagem = num;
printf("Digite o codigo da passagem: ");scanf("%i", &novaBagagem->codPassagem);fflush(stdin);
printf("Digite o codigo do voo: ");scanf("%i", &novaBagagem->codVoo);fflush(stdin);
printf("Digite a data de embarque: ");scanf("%s", &novaBagagem->data);fflush(stdin);
printf("Digite a hora de embarque: ");scanf("%s", &novaBagagem->hora);fflush(stdin);
printf("Digite o portao de embarque: ");gets(novaBagagem->portao);fflush(stdin);
novaBagagem->proximo = topo->proximo;
topo->proximo = novaBagagem;
topo->codBagagem++;/* Incrementa o contador do tamanho da lista.*/
return(novaBagagem->codBagagem);
}else return(0);// Pilha cheia.
}// cadastraBagagem()
int
...