Ir ao conteúdo
  • Cadastre-se

botar vetor em ordem para uma fila


paulov1234

Posts recomendados

olá estou tentando criar um codigo que simule um aeroporto, com as chegadas e partidas, usando uma fila

porém não consigo colocar em ordem os voos que estão chegando e saindo para mostrar no painel, e preciso usar fila no codigo

aqui esta o que fiz ate agora, como deixar em ordem baseado no horário que eu digitar?

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <locale.h>

#define TAMANHO 5
#define TAMANHO1 5
struct aeroporto
{
    int numerovoo;
    char companhia[50];
    char destino[50];
    int duracaohoras;
    int duracaominutos;
    int portao;
};

typedef struct aeroporto Aeroporto;

struct aeroportoCHEGADA
{
    int numerovooCHEGADA;
    char companhiaCHEGADA[50];
    char origem[50];
    int duracaohorasCHEGADA;
    int duracaominutosCHEGADA;
    int portaoCHEGADA;
};

typedef struct aeroportoCHEGADA AeroportoCHEGADA;
struct fila
{
    int numeroelementos;
    int inicio;
    Aeroporto elementos[TAMANHO];
};

typedef struct fila Fila;

struct fila1
{
    int numeroelementos1;
    int inicio1;
    AeroportoCHEGADA elementos1[TAMANHO1];
};

typedef struct fila1 Fila1;

Fila1 *criarFila1()
{
    Fila1 *f1= (Fila1*) malloc(sizeof(Fila1));
    f1->numeroelementos1 = 0;
    f1->inicio1 = 0;
    return f1;
}
Fila *criarFila()
{
    Fila *f= (Fila*) malloc(sizeof(Fila));
    f->numeroelementos = 0;
    f->inicio = 0;
    return f;
}

void inserir1(Fila1 *f1, AeroportoCHEGADA valor1)
{
    if(f1->numeroelementos1 == TAMANHO1)
    {
        printf("\n                                                                 TRÁFEGO AÉREO SOBRECARREGADO\n");
        return;
    }
    int fim1 = (f1->inicio1 + f1->numeroelementos1) % TAMANHO1;
    f1->elementos1[fim1].numerovooCHEGADA = valor1.numerovooCHEGADA;
    strcpy(f1->elementos1[fim1].companhiaCHEGADA, valor1.companhiaCHEGADA);
    strcpy(f1->elementos1[fim1].origem, valor1.origem);
    f1->elementos1[fim1].duracaohorasCHEGADA = valor1.duracaohorasCHEGADA;
    f1->elementos1[fim1].duracaominutosCHEGADA = valor1.duracaominutosCHEGADA;
    f1->elementos1[fim1].portaoCHEGADA = valor1.portaoCHEGADA;
    f1->numeroelementos1++;
}
void retirar1(Fila1 *f1)
{
    AeroportoCHEGADA valor1;
    if(f1->numeroelementos1 == 0)
    {
        printf("\n                                                                 Não há nenhuma chegada programada!\n");
        return;
    }
    //retira o elemento da fila
    valor1.numerovooCHEGADA =f1->elementos1[f1->inicio1].numerovooCHEGADA;
    strcpy(valor1.companhiaCHEGADA,f1->elementos1[f1->inicio1].companhiaCHEGADA);
    strcpy(valor1.origem,f1->elementos1[f1->inicio1].origem);
    valor1.duracaohorasCHEGADA = f1->elementos1[f1->inicio1].duracaohorasCHEGADA;
    valor1.duracaominutosCHEGADA = f1->elementos1[f1->inicio1].duracaominutosCHEGADA;
    valor1.portaoCHEGADA = f1->elementos1[f1->inicio1].portaoCHEGADA;

    f1->inicio1 = (f1->inicio1 + 1) % TAMANHO1;
    f1->numeroelementos1--;
    //imprime elemento retirado
    printf("\n                                                                 NÚMERO VOO COM ATERRISAGEM CONCLÚIDA = %d\n",valor1.numerovooCHEGADA);
    printf("\n                                                                 COMPANHIA AÉREA RESPOSÁVEL = %s\n",valor1.companhiaCHEGADA);
    printf("\n                                                                 ORIGEM DO VOO = %s\n",valor1.origem);
    printf("\n                                                                 HORÁRIO DE CHEGADA: %d:%d\n",valor1.duracaohorasCHEGADA,valor1.duracaominutosCHEGADA);
    printf("\n                                                                 PORTÃO DE EMBARQUE = %d\n",valor1.portaoCHEGADA);
    return;
}


void destruirFila1(Fila1 *f1)
{
    free(f1);
}

void mostrarFila1(Fila1 *f1)
{
    printf("\n\n*_____________________________________________________________________________________________________________________________________________________________________*\n");
    printf("                                                           CHEGADAS - ARRIVALS - ANKUNFT - ARRIVI - LLEGADAS:\n");
    printf("*_____________________________________________________________________________________________________________________________________________________________________*\n");
    printf("\t\t\t\tNÚMERO DO VOO\t\tCOMPANHIA AÉREA\t\tORIGEM\t\t\tHORÁRIO\t\t\tPORTÃO\n");
    printf("*_____________________________________________________________________________________________________________________________________________________________________*\n");
    int i;
    for(i = 0; i < f1->numeroelementos1; i++)
    {
        printf("\t\t\t\t%d",f1->elementos1[(f1->inicio1 + i) % TAMANHO1].numerovooCHEGADA);
        printf("\t\t\t%s",f1->elementos1[(f1->inicio1 + i) % TAMANHO1].companhiaCHEGADA);
        printf("\t\t\t%s",f1->elementos1[(f1->inicio1 + i) % TAMANHO1].origem);
        printf("\t\t\t%d:%d",f1->elementos1[(f1->inicio1 + i) % TAMANHO1].duracaohorasCHEGADA,f1->elementos1[(f1->inicio1 + i) % TAMANHO1].duracaominutosCHEGADA);
        printf("\t\t\t%d\n",f1->elementos1[(f1->inicio1 + i) % TAMANHO1].portaoCHEGADA);
        printf("*_____________________________________________________________________________________________________________________________________________________________________*\n");
    }
}
void inserir(Fila *f, Aeroporto valor)
{
    if(f->numeroelementos == TAMANHO)
    {
        printf("\n                                                                 TRÁFEGO AÉREO SOBRECARREGADO!\n");
        return;
    }
    int fim = (f->inicio + f->numeroelementos) % TAMANHO;
    f->elementos[fim].numerovoo = valor.numerovoo;
    strcpy(f->elementos[fim].companhia, valor.companhia);
    strcpy(f->elementos[fim].destino, valor.destino);
    f->elementos[fim].duracaohoras = valor.duracaohoras;
    f->elementos[fim].duracaominutos = valor.duracaominutos;
    f->elementos[fim].portao = valor.portao;
    f->numeroelementos++;
}
void retirar(Fila *f)
{
    Aeroporto valor;
    if(f->numeroelementos == 0)
    {
        printf("\n                                                                 Não há nenhuma partida programada!\n");
        return;
    }
    //retira o elemento da fila
    valor.numerovoo =f->elementos[f->inicio].numerovoo;
    strcpy(valor.companhia,f->elementos[f->inicio].companhia);
    strcpy(valor.destino,f->elementos[f->inicio].destino);
    valor.duracaohoras = f->elementos[f->inicio].duracaohoras;
    valor.duracaominutos = f->elementos[f->inicio].duracaominutos;
    valor.portao = f->elementos[f->inicio].portao;

    f->inicio = (f->inicio + 1) % TAMANHO;
    f->numeroelementos--;
    //imprime elemento retirado
    printf("\n                                                                 NÚMERO VOO EM PROCESSO DE DECOLAGEM/DECOLOU = %d\n",valor.numerovoo);
    printf("\n                                                                 COMPANHIA AÉREA RESPOSÁVEL = %s\n",valor.companhia);
    printf("\n                                                                 DESTINO FINAL DO VOO ou CONEXÃO = %s\n",valor.destino);
    printf("\n                                                                 HORÁRIO DE PARTIDA = %d:%d\n",valor.duracaohoras,valor.duracaominutos);
    printf("\n                                                                 PORTÃO DE EMBARQUE = %d\n",valor.portao);
    return;
}


void destruirFila(Fila *f)
{
    free(f);
}

void mostrarFila(Fila *f)
{
    printf("\n\n*_____________________________________________________________________________________________________________________________________________________________________*\n");
    printf("                                                           PARTIDAS - DEPARTURES - ABFLUG - PARTENZE - SALIDAS:\n");
    printf("*_____________________________________________________________________________________________________________________________________________________________________*\n");
    printf("\t\t\t\tNÚMERO DO VOO\t\tCOMPANHIA AÉREA\t\tDESTINO\t\t\tHORÁRIO\t\t\tPORTÃO\n");
    printf("*_____________________________________________________________________________________________________________________________________________________________________*\n");
    int i;
    for(i = 0; i < f->numeroelementos; i++)
    {
        printf("\t\t\t\t%d",f->elementos[(f->inicio + i) % TAMANHO].numerovoo);
        printf("\t\t\t%s",f->elementos[(f->inicio + i) % TAMANHO].companhia);
        printf("\t\t\t%s",f->elementos[(f->inicio + i) % TAMANHO].destino);
        printf("\t\t\t%d:%d",f->elementos[(f->inicio + i) % TAMANHO].duracaohoras,f->elementos[(f->inicio + i) % TAMANHO].duracaominutos);
        printf("\t\t\t%d\n",f->elementos[(f->inicio + i) % TAMANHO].portao);
        printf("*_____________________________________________________________________________________________________________________________________________________________________*\n");
    }
}
int main()
{
    setlocale(LC_CTYPE, "Portuguese");
    char nome[40];
    int senha = -2;
    Fila *fila=criarFila();
    Fila1 *fila1=criarFila1();
    int opcao = -1;
    Aeroporto item;
    AeroportoCHEGADA item1;

    printf("\n|_____________________________________________________________________________________________________________________________________________________________________|");
    printf ("                                           Informe o nome do operador de tráfego aéreo para prosseguir e em seguida pressione \"enter\".                                \n\n");
    printf ("\n                                                                              NOME: ");
    gets(nome);
    while(senha != 1234){
            printf("|_____________________________________________________________________________________________________________________________________________________________________|");
            printf ("\n                                                     Informe a senha de acesso para prosseguir e em seguida pressione \"enter\".                                    \n");
            printf ("\n                                                                              SENHA: ");
            scanf("%d", &senha);}
            system("cls");
    while(opcao != 0)
    {
        system("cls");
        printf ("\n                                                                  SEJA BEM-VINDO OPERADOR \"%s\"\n",nome);
        printf("*_____________________________________________________________________________________________________________________________________________________________________*\n");
        printf("*_____________________________________________________________________________________________________________________________________________________________________*\n");
        printf("|                                                                SELECIONE O COMANDO A SER EXECUTADO:                                                                 |\n");
        printf("|                                                                  1 - INCLUIR NOVO VOO DE PARTIDA                                                                    |\n");
        printf("|                                                              2 - RETIRAR VOO - DECOLAGEM JÁ REALIZADA                                                               |\n");
        printf("|                                                            3 - MOSTRAR PAINEL DE DECOGALEM DO AEROPORTO                                                             |\n");
        printf("|                                                                  4 - INCLUIR NOVO VOO DE CHEGADA                                                                    |\n");
        printf("|                                           5 - RETIRAR VOO DO SISTEMA - POUSO JÁ REALIZADO - ATERRISSAGEM CONCLUÍDA                                                  |\n");
        printf("|                                                            6 - MOSTRAR PAINEL DE CHEGADAS DO AEROPORTO                                                              |\n");
        printf("|                                                                     0 - FINALIZAR O EXECUTOR                                                                        |\n");
        printf("|                                                             LIMITE DE OPERAÇÃO DO AEROPORTO - 5 VOOS                                                                |\n");
        printf("*_____________________________________________________________________________________________________________________________________________________________________*");
        printf("\n                                                                 COMANDO A SER EXECUTADO:\t");
        scanf("%d", &opcao);
        switch (opcao)
        {
        case 1 :
        {
            fflush(stdin);
             printf("*_____________________________________________________________________________________________________________________________________________________________________*");
            printf("\n                                                                 NÚMERO DO VOO A SER ADICIONADO: ");
            scanf("%d", &item.numerovoo);
            fflush(stdin);
            printf("*_____________________________________________________________________________________________________________________________________________________________________*");
            printf("\n                                                                 COMPANHIA AÉREA RESPONSÁVEL: ");
            gets(item.companhia);
            fflush(stdin);
             printf("*_____________________________________________________________________________________________________________________________________________________________________*");
            printf("\n                                                                 DESTINO FINAL/CONEXÃO: ");
            gets(item.destino);
            fflush(stdin);
             printf("*_____________________________________________________________________________________________________________________________________________________________________*");
            printf("\n                                                                 HORÁRIO DE SAÍDA (APENAS HORAS): ");
            scanf("%d", &item.duracaohoras);
             printf("*_____________________________________________________________________________________________________________________________________________________________________*");
            printf("\n                                                                 HORÁRIO DE SAÍDA (APENAS MINUTOS): ");
            scanf("%d", &item.duracaominutos);
             printf("*_____________________________________________________________________________________________________________________________________________________________________*");
            printf("\n                                                                 PORTÃO DE EMBARQUE: ");
            scanf("%d", &item.portao);
             printf("*_____________________________________________________________________________________________________________________________________________________________________*");
            inserir(fila,item);
            break;
        }
        case 2 : //retira
            retirar(fila);
            break;
        case 3 : //mostra
            mostrarFila(fila);
            break;
        case 4 :
        {
            fflush(stdin);
            printf("*_____________________________________________________________________________________________________________________________________________________________________*");
            printf("\n                                                                 NÚMERO DE VOO CHEGADA PARA CADASTRAMENTO: ");
            scanf("%d", &item1.numerovooCHEGADA);
            fflush(stdin);
            printf("*_____________________________________________________________________________________________________________________________________________________________________*");
            printf("\n                                                                 COMPANHIA AÉREA RESPONSÁVEL: ");
            gets(item1.companhiaCHEGADA);
            fflush(stdin);
            printf("*_____________________________________________________________________________________________________________________________________________________________________*");
            printf("\n                                                                 ORIGEM DO VOO: ");
            gets(item1.origem);
            fflush(stdin);
            printf("*_____________________________________________________________________________________________________________________________________________________________________*");
            printf("\n                                                                 HORÁRIO DE CHEGADA (APENAS HORAS): ");
            scanf("%d", &item1.duracaohorasCHEGADA);
            printf("*_____________________________________________________________________________________________________________________________________________________________________*");
            printf("\n                                                                 HORÁRIO DE CHEGADA (APENAS MINUTOS): ");
            scanf("%d", &item1.duracaominutosCHEGADA);
            printf("*_____________________________________________________________________________________________________________________________________________________________________*");
            printf("\n                                                                 PORTÃO DE DESEMBARQUE: ");
            scanf("%d", &item1.portaoCHEGADA);
            printf("*_____________________________________________________________________________________________________________________________________________________________________*");
            inserir1(fila1,item1);
            break;
        }
        case 5 : //retira
            retirar1(fila1);
            break;
        case 6 : //mostra
            mostrarFila1(fila1);
            break;
        }//switch
        printf("\n");
        system("pause");
    }


    destruirFila(fila);
    destruirFila1(fila1);
    return 0;
}
 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

@paulov1234 Seja bem-vindo ao fórum!

 

Por favor, insira o seu código na tag CODE para melhorar a legibilidade e facilitar o entendimento de quem puder te ajudar.

 

Então, pelo que pude entender, o que você quer é criar uma função que ordene a exibição da lista de voos por ordem crescente de hora, é isso? Para uma lista crescente, dentro dessa função você pode copiar a lista de voos para uma lista auxiliar, varrer essa lista auxiliar usando um laço (while, for, o que quiser), em cada iteração você buscaria o voo de menor hora e minutos (no caso, o próximo voo), imprimia na tela o que fosse encontrado e removeria este elemento da lista para a próxima iteração até que a lista auxiliar estivesse vazia. Conseguiu me acompanhar?

 

Aqui vai uma dica: no seu código você criou estruturas repetidas para representar dois cenários distintos, no caso "aeroporto" e "aeroportoCHEGADA". Perceba que essas duas estruturas tem exatamente os mesmos atributos, o que torna esta declaração duplicada desnecessária. Pense que a estrutura é o esqueleto de uma instância real. Por exemplo:

// essa estrutura é a base de qualquer voo de partida e chegada
struct voo
{
	int numeroVoo;
	char companhia[50];
	char local[50];
	int duracaoHoras;
	int duracaoMinutos;
	int portao;
};

// aqui você cria instâncias dessa estrutura para representar o cenário de partida e de chegada
voo *partida[qtdMaxVoos];
voo *chegada[qtdMaxVoos];

// aqui você manipula os atributos da instância voo criada
cout << partida[0].local; // imprime o local (pode ser de partida ou de chegada, depende de qual das instâncias nos referimos)

A mesma coisa acontece com sua fila: a estrutura é a mesma para duas filas distintas. Não é necessário criar "fila" e "fila1". Basta que se crie apenas uma estrutura. Por exemplo:

// estrutura
struct fila
{
	int numeroelementos;
	int inicio;
	voo voos[TAMANHO];
};

// instâncias
fila *listaVoosPartida[qtdMaxVoos];
fila *listaVoosChegada[qtdMaxVoos];

Era essa a solução que você queria?

Link para o comentário
Compartilhar em outros sites

3 horas atrás, paulov1234 disse:

olá, era algo do tipo mesmo, porém como adiciono isso ao codigo? quais mudanças fazer, nao estou familiarizado com esse cout

estou com dificuldade nisso, poderia me ajudar?

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <locale.h>
#define TAMANHO 5
#define TAMANHO1 5
struct aeroporto
{
    int numerovoo;
    char companhia[50];
    char destino[50];
    int duracaohoras;
    int duracaominutos;
    int portao;
};
typedef struct aeroporto Aeroporto;
struct aeroportoCHEGADA
{
    int numerovooCHEGADA;
    char companhiaCHEGADA[50];
    char origem[50];
    int duracaohorasCHEGADA;
    int duracaominutosCHEGADA;
    int portaoCHEGADA;
};
typedef struct aeroportoCHEGADA AeroportoCHEGADA;
struct fila
{
    int numeroelementos;
    int inicio;
    Aeroporto elementos[TAMANHO];
};
typedef struct fila Fila;
struct fila1
{
    int numeroelementos1;
    int inicio1;
    AeroportoCHEGADA elementos1[TAMANHO1];
};
typedef struct fila1 Fila1;
Fila1 *criarFila1()
{
    Fila1 *f1= (Fila1*) malloc(sizeof(Fila1));
    f1->numeroelementos1 = 0;
    f1->inicio1 = 0;
    return f1;
}
Fila *criarFila()
{
    Fila *f= (Fila*) malloc(sizeof(Fila));
    f->numeroelementos = 0;
    f->inicio = 0;
    return f;
}
void inserir1(Fila1 *f1, AeroportoCHEGADA valor1)
{
    if(f1->numeroelementos1 == TAMANHO1)
    {
        printf("\n                                                                 TRÁFEGO AÉREO SOBRECARREGADO\n");
        return;
    }
    int fim1 = (f1->inicio1 + f1->numeroelementos1) % TAMANHO1;
    f1->elementos1[fim1].numerovooCHEGADA = valor1.numerovooCHEGADA;
    strcpy(f1->elementos1[fim1].companhiaCHEGADA, valor1.companhiaCHEGADA);
    strcpy(f1->elementos1[fim1].origem, valor1.origem);
    f1->elementos1[fim1].duracaohorasCHEGADA = valor1.duracaohorasCHEGADA;
    f1->elementos1[fim1].duracaominutosCHEGADA = valor1.duracaominutosCHEGADA;
    f1->elementos1[fim1].portaoCHEGADA = valor1.portaoCHEGADA;
    f1->numeroelementos1++;
}
void retirar1(Fila1 *f1)
{
    AeroportoCHEGADA valor1;
    if(f1->numeroelementos1 == 0)
    {
        printf("\n                                                                 Não há nenhuma chegada programada!\n");
        return;
    }
    //retira o elemento da fila
    valor1.numerovooCHEGADA =f1->elementos1[f1->inicio1].numerovooCHEGADA;
    strcpy(valor1.companhiaCHEGADA,f1->elementos1[f1->inicio1].companhiaCHEGADA);
    strcpy(valor1.origem,f1->elementos1[f1->inicio1].origem);
    valor1.duracaohorasCHEGADA = f1->elementos1[f1->inicio1].duracaohorasCHEGADA;
    valor1.duracaominutosCHEGADA = f1->elementos1[f1->inicio1].duracaominutosCHEGADA;
    valor1.portaoCHEGADA = f1->elementos1[f1->inicio1].portaoCHEGADA;
    f1->inicio1 = (f1->inicio1 + 1) % TAMANHO1;
    f1->numeroelementos1--;
    //imprime elemento retirado
    printf("\n                                                                 NÚMERO VOO COM ATERRISAGEM CONCLÚIDA = %d\n",valor1.numerovooCHEGADA);
    printf("\n                                                                 COMPANHIA AÉREA RESPOSÁVEL = %s\n",valor1.companhiaCHEGADA);
    printf("\n                                                                 ORIGEM DO VOO = %s\n",valor1.origem);
    printf("\n                                                                 HORÁRIO DE CHEGADA: %d:%d\n",valor1.duracaohorasCHEGADA,valor1.duracaominutosCHEGADA);
    printf("\n                                                                 PORTÃO DE EMBARQUE = %d\n",valor1.portaoCHEGADA);
    return;
}

void destruirFila1(Fila1 *f1)
{
    free(f1);
}
void mostrarFila1(Fila1 *f1)
{
    printf("\n\n*_____________________________________________________________________________________________________________________________________________________________________*\n");
    printf("                                                           CHEGADAS - ARRIVALS - ANKUNFT - ARRIVI - LLEGADAS:\n");
    printf("*_____________________________________________________________________________________________________________________________________________________________________*\n");
    printf("\t\t\t\tNÚMERO DO VOO\t\tCOMPANHIA AÉREA\t\tORIGEM\t\t\tHORÁRIO\t\t\tPORTÃO\n");
    printf("*_____________________________________________________________________________________________________________________________________________________________________*\n");
    int i;
    for(i = 0; i < f1->numeroelementos1; i++)
    {
        printf("\t\t\t\t%d",f1->elementos1[(f1->inicio1 + i) % TAMANHO1].numerovooCHEGADA);
        printf("\t\t\t%s",f1->elementos1[(f1->inicio1 + i) % TAMANHO1].companhiaCHEGADA);
        printf("\t\t\t%s",f1->elementos1[(f1->inicio1 + i) % TAMANHO1].origem);
        printf("\t\t\t%d:%d",f1->elementos1[(f1->inicio1 + i) % TAMANHO1].duracaohorasCHEGADA,f1->elementos1[(f1->inicio1 + i) % TAMANHO1].duracaominutosCHEGADA);
        printf("\t\t\t%d\n",f1->elementos1[(f1->inicio1 + i) % TAMANHO1].portaoCHEGADA);
        printf("*_____________________________________________________________________________________________________________________________________________________________________*\n");
    }
}
void inserir(Fila *f, Aeroporto valor)
{
    if(f->numeroelementos == TAMANHO)
    {
        printf("\n                                                                 TRÁFEGO AÉREO SOBRECARREGADO!\n");
        return;
    }
    int fim = (f->inicio + f->numeroelementos) % TAMANHO;
    f->elementos[fim].numerovoo = valor.numerovoo;
    strcpy(f->elementos[fim].companhia, valor.companhia);
    strcpy(f->elementos[fim].destino, valor.destino);
    f->elementos[fim].duracaohoras = valor.duracaohoras;
    f->elementos[fim].duracaominutos = valor.duracaominutos;
    f->elementos[fim].portao = valor.portao;
    f->numeroelementos++;
}
void retirar(Fila *f)
{
    Aeroporto valor;
    if(f->numeroelementos == 0)
    {
        printf("\n                                                                 Não há nenhuma partida programada!\n");
        return;
    }
    //retira o elemento da fila
    valor.numerovoo =f->elementos[f->inicio].numerovoo;
    strcpy(valor.companhia,f->elementos[f->inicio].companhia);
    strcpy(valor.destino,f->elementos[f->inicio].destino);
    valor.duracaohoras = f->elementos[f->inicio].duracaohoras;
    valor.duracaominutos = f->elementos[f->inicio].duracaominutos;
    valor.portao = f->elementos[f->inicio].portao;
    f->inicio = (f->inicio + 1) % TAMANHO;
    f->numeroelementos--;
    //imprime elemento retirado
    printf("\n                                                                 NÚMERO VOO EM PROCESSO DE DECOLAGEM/DECOLOU = %d\n",valor.numerovoo);
    printf("\n                                                                 COMPANHIA AÉREA RESPOSÁVEL = %s\n",valor.companhia);
    printf("\n                                                                 DESTINO FINAL DO VOO ou CONEXÃO = %s\n",valor.destino);
    printf("\n                                                                 HORÁRIO DE PARTIDA = %d:%d\n",valor.duracaohoras,valor.duracaominutos);
    printf("\n                                                                 PORTÃO DE EMBARQUE = %d\n",valor.portao);
    return;
}

void destruirFila(Fila *f)
{
    free(f);
}
void mostrarFila(Fila *f)
{
    printf("\n\n*_____________________________________________________________________________________________________________________________________________________________________*\n");
    printf("                                                           PARTIDAS - DEPARTURES - ABFLUG - PARTENZE - SALIDAS:\n");
    printf("*_____________________________________________________________________________________________________________________________________________________________________*\n");
    printf("\t\t\t\tNÚMERO DO VOO\t\tCOMPANHIA AÉREA\t\tDESTINO\t\t\tHORÁRIO\t\t\tPORTÃO\n");
    printf("*_____________________________________________________________________________________________________________________________________________________________________*\n");
    int i;
    for(i = 0; i < f->numeroelementos; i++)
    {
        printf("\t\t\t\t%d",f->elementos[(f->inicio + i) % TAMANHO].numerovoo);
        printf("\t\t\t%s",f->elementos[(f->inicio + i) % TAMANHO].companhia);
        printf("\t\t\t%s",f->elementos[(f->inicio + i) % TAMANHO].destino);
        printf("\t\t\t%d:%d",f->elementos[(f->inicio + i) % TAMANHO].duracaohoras,f->elementos[(f->inicio + i) % TAMANHO].duracaominutos);
        printf("\t\t\t%d\n",f->elementos[(f->inicio + i) % TAMANHO].portao);
        printf("*_____________________________________________________________________________________________________________________________________________________________________*\n");
    }
}
int main()
{
    setlocale(LC_CTYPE, "Portuguese");
    char nome[40];
    int senha = -2;
    Fila *fila=criarFila();
    Fila1 *fila1=criarFila1();
    int opcao = -1;
    Aeroporto item;
    AeroportoCHEGADA item1;
    printf("\n|_____________________________________________________________________________________________________________________________________________________________________|");
    printf ("                                           Informe o nome do operador de tráfego aéreo para prosseguir e em seguida pressione \"enter\".                                \n\n");
    printf ("\n                                                                              NOME: ");
    gets(nome);
    while(senha != 1234){
            printf("|_____________________________________________________________________________________________________________________________________________________________________|");
            printf ("\n                                                     Informe a senha de acesso para prosseguir e em seguida pressione \"enter\".                                    \n");
            printf ("\n                                                                              SENHA: ");
            scanf("%d", &senha);}
            system("cls");
    while(opcao != 0)
    {
        system("cls");
        printf ("\n                                                                  SEJA BEM-VINDO OPERADOR \"%s\"\n",nome);
        printf("*_____________________________________________________________________________________________________________________________________________________________________*\n");
        printf("*_____________________________________________________________________________________________________________________________________________________________________*\n");
        printf("|                                                                SELECIONE O COMANDO A SER EXECUTADO:                                                                 |\n");
        printf("|                                                                  1 - INCLUIR NOVO VOO DE PARTIDA                                                                    |\n");
        printf("|                                                              2 - RETIRAR VOO - DECOLAGEM JÁ REALIZADA                                                               |\n");
        printf("|                                                            3 - MOSTRAR PAINEL DE DECOGALEM DO AEROPORTO                                                             |\n");
        printf("|                                                                  4 - INCLUIR NOVO VOO DE CHEGADA                                                                    |\n");
        printf("|                                           5 - RETIRAR VOO DO SISTEMA - POUSO JÁ REALIZADO - ATERRISSAGEM CONCLUÍDA                                                  |\n");
        printf("|                                                            6 - MOSTRAR PAINEL DE CHEGADAS DO AEROPORTO                                                              |\n");
        printf("|                                                                     0 - FINALIZAR O EXECUTOR                                                                        |\n");
        printf("|                                                             LIMITE DE OPERAÇÃO DO AEROPORTO - 5 VOOS                                                                |\n");
        printf("*_____________________________________________________________________________________________________________________________________________________________________*");
        printf("\n                                                                 COMANDO A SER EXECUTADO:\t");
        scanf("%d", &opcao);
        switch (opcao)
        {
        case 1 :
        {
            fflush(stdin);
             printf("*_____________________________________________________________________________________________________________________________________________________________________*");
            printf("\n                                                                 NÚMERO DO VOO A SER ADICIONADO: ");
            scanf("%d", &item.numerovoo);
            fflush(stdin);
            printf("*_____________________________________________________________________________________________________________________________________________________________________*");
            printf("\n                                                                 COMPANHIA AÉREA RESPONSÁVEL: ");
            gets(item.companhia);
            fflush(stdin);
             printf("*_____________________________________________________________________________________________________________________________________________________________________*");
            printf("\n                                                                 DESTINO FINAL/CONEXÃO: ");
            gets(item.destino);
            fflush(stdin);
             printf("*_____________________________________________________________________________________________________________________________________________________________________*");
            printf("\n                                                                 HORÁRIO DE SAÍDA (APENAS HORAS): ");
            scanf("%d", &item.duracaohoras);
             printf("*_____________________________________________________________________________________________________________________________________________________________________*");
            printf("\n                                                                 HORÁRIO DE SAÍDA (APENAS MINUTOS): ");
            scanf("%d", &item.duracaominutos);
             printf("*_____________________________________________________________________________________________________________________________________________________________________*");
            printf("\n                                                                 PORTÃO DE EMBARQUE: ");
            scanf("%d", &item.portao);
             printf("*_____________________________________________________________________________________________________________________________________________________________________*");
            inserir(fila,item);
            break;
        }
        case 2 : //retira
            retirar(fila);
            break;
        case 3 : //mostra
            mostrarFila(fila);
            break;
        case 4 :
        {
            fflush(stdin);
            printf("*_____________________________________________________________________________________________________________________________________________________________________*");
            printf("\n                                                                 NÚMERO DE VOO CHEGADA PARA CADASTRAMENTO: ");
            scanf("%d", &item1.numerovooCHEGADA);
            fflush(stdin);
            printf("*_____________________________________________________________________________________________________________________________________________________________________*");
            printf("\n                                                                 COMPANHIA AÉREA RESPONSÁVEL: ");
            gets(item1.companhiaCHEGADA);
            fflush(stdin);
            printf("*_____________________________________________________________________________________________________________________________________________________________________*");
            printf("\n                                                                 ORIGEM DO VOO: ");
            gets(item1.origem);
            fflush(stdin);
            printf("*_____________________________________________________________________________________________________________________________________________________________________*");
            printf("\n                                                                 HORÁRIO DE CHEGADA (APENAS HORAS): ");
            scanf("%d", &item1.duracaohorasCHEGADA);
            printf("*_____________________________________________________________________________________________________________________________________________________________________*");
            printf("\n                                                                 HORÁRIO DE CHEGADA (APENAS MINUTOS): ");
            scanf("%d", &item1.duracaominutosCHEGADA);
            printf("*_____________________________________________________________________________________________________________________________________________________________________*");
            printf("\n                                                                 PORTÃO DE DESEMBARQUE: ");
            scanf("%d", &item1.portaoCHEGADA);
            printf("*_____________________________________________________________________________________________________________________________________________________________________*");
            inserir1(fila1,item1);
            break;
        }
        case 5 : //retira
            retirar1(fila1);
            break;
        case 6 : //mostra
            mostrarFila1(fila1);
            break;
        }//switch
        printf("\n");
        system("pause");
    }

    destruirFila(fila);
    destruirFila1(fila1);
    return 0;
}
 

 

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!