Ir ao conteúdo

Posts recomendados

Postado

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
Postado

@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?

Postado

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?

Postado
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;
}
 

 

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...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!