Ir ao conteúdo
  • Cadastre-se

C++ problema n a implementação do switch


Posts recomendados

Estou com dificuldade em corrigir erro do switch toda vez que copila da erro no switch  segue código 

 

 

/*
voce deve contruir um gerenciador de aeroportos.
Nele você tera varios aeroportos, cada um com:
-> uma quantidade de pistas
-> uma quantidade de voos programados
-> uma lista de partidas

Cada pista tera:
-> um identificador
-> um limite de peso (para verificar se a aeronave pode decolar nela)
-> uma dimencao da pista

Cada Voo tera:
-> identificador
-> origem e destino
-> peso da aeronave
-> Distancia percorrida
-> velocidade maxima
-> tempo de voo (pode / deve ser calculado).

*/

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

#define NPistas 2
#define NVoos 100

using namespace std;

struct Pista
{
private:
    int Comprimento;
    string Identificacao;
    int largura;
    int LimitePeso;
public:
    Pista()
    {
        this->Comprimento = -1;
        this->Identificacao = "";
        this->largura = -1;
        this->LimitePeso = -1;
    }

    Pista(int comprimento, string identificacao, int largura, int limitepeso)
    {
        this->Comprimento = comprimento;
        this->Identificacao = identificacao;
        this->largura = largura;
        this->LimitePeso = limitepeso;
    }

    int getComprimento()
    {
        return this->Comprimento;
    }

    string getIdentificacao()
    {
        return this->Identificacao;
    }

    int getLargura()
    {
        return this->largura;
    }

    int getLimitePeso()
    {
        return this->LimitePeso;
    }


};

struct Voo
{
private:
    string codigo;
    string origem;
    string destino;
    int pesoAviao;
    int velocidadeMaxima;
    int KMPercurso;
public:
    Voo()
    {
        this->codigo = "";
        this->origem = "";
        this->destino = "";
        this->pesoAviao = 0;
        this->velocidadeMaxima = 0;
        this->KMPercurso = 0;
    }

    Voo(string codigo, string origem, string destino, int peso,int vel,int km)
    {
        this->codigo = codigo;
        this->origem = origem;
        this->destino = destino;
        this->pesoAviao = peso;
        this->velocidadeMaxima = vel;
        this->KMPercurso = km;
    }

    string getCodigo()
    {
        return this->codigo;
    }
    string getOrigem()
    {
        return this->origem;
    }
    string getDestino()
    {
        return this->destino;
    }
    int getPesoAviao()
    {
        return this->pesoAviao;
    }
    int getVelocidadeMaxima()
    {
        return this->velocidadeMaxima;
    }
    int getKMPercurso()
    {
        return this->KMPercurso;
    }

};

struct Aeroporto
{
private:
    string IdentificadorAeroporto;
    int latitude;
    int longitude;
    string cidade;
    Pista *Pistas;
    Voo *PlanosVoo;
    Voo *FilaDecolagem;
public:
    Aeroporto()
    {
        this->IdentificadorAeroporto = "";
        this->latitude = 0;
        this->longitude = 0;
        this->cidade = "";
        this->Pistas = NULL;
        this->PlanosVoo = NULL;
        this->FilaDecolagem = NULL;
    }

    Aeroporto(int lat, int lon, string cid,string IdentificadorAeroporto,Pista *pist, Voo *plan, Voo *deco)
    {
        this->IdentificadorAeroporto = IdentificadorAeroporto;
        this->latitude = lat;
        this->longitude = lon;
        this->cidade = cid;
        this->Pistas = pist;
        this->PlanosVoo = plan;
        this->FilaDecolagem = deco;
    }

    int getLatitude()
    {
        return this->latitude;
    }

    int getLongitude()
    {
        return this->longitude;
    }

    string getIdentificadorAeroporto()
    {
        return this->IdentificadorAeroporto;
    }

    string getCidade()
    {
        return this->cidade;
    }

    Pista getPistas(int indice)
    {
        return this->Pistas[indice];
    }

    Voo getPlanos(int indice)
    {
        return this->PlanosVoo[indice];
    }

    int getTamanhoPistas()
    {
        return sizeof(this->Pistas);
    }
    int getTamanhoPlanos()
    {
        return sizeof(this->PlanosVoo);
    }

};


float tempoVoo(int d, int v)
{
    return d / v;
}

int main (void)
{
    Aeroporto aeroportos[20];
    int contAero = 0;
    int menu;


    while(menu != 4)
    {
        system("color 2");
        system("cls");

        printf("Criar Aeroporto digite 0");
        printf("Lista Aeroportos digite 1");
        printf("Lista pistas digite 2");
        printf("Programaçao de voos digite 3");
        printf("Sair digite 4");
        scanf("%d", &menu);

        switch(menu)
        {

        case 0:
        {

            Pista pistas[20];
            Voo voos[20];
            int cont_pistas = 0;
            int cont_voos = 0;
            bool opPista = true;
            bool opc_voo = true;
            int add;
            int Comprimento;
            char Identificacao[100];
            int largura;
            int Peso;
            char codigo[100];
            char origem[100];
            char destino[100];
            int pesoAviao;
            int velocidadeMaxima;
            int KMPercurso;
            char IdentificadorAeroporto[100];
            int latitude;
            int longitude;
            char cidade[100];

            if(contAero < 20)
            {


                while(opPista)
                {
                    printf("Adicione uma pista" );
                    printf("Comprimento:" );
                    scanf("%d", &Comprimento);
                    printf("Largura:" );
                    scanf("%d", &largura);
                    system("cls");
                    printf("descriçao do aviao");
                    printf("Peso:" );
                    scanf("%d", &Peso);
                    printf("Identificação:" );
                    scanf("%100s", &Identificacao);
                    pistas[cont_pistas] = Pista(Comprimento,Identificacao,largura,Peso);
                    cont_pistas++;
                    if(cont_pistas < 20)
                    {
                        printf( "adicionar outra \n sim = 0 \n nao = 1" );

                        scanf("%d", &add);
                        if(add == 1)
                        {
                            opPista = false;
                        }
                    }
                    else
                    {
                        printf("Numero maximo de pistas atingido!");
                        opPista = false;
                    }
                }

                while(opc_voo)
                {

                    printf( "Por favor adicione um voo" );
                    printf( "Codigo:" );
                    scanf("%100s", &codigo);
                    printf( "Origem: " );
                    scanf("%100s", &origem);
                    printf( "Destino: ");
                    scanf("%100s", &destino);
                    printf( "Peso do Aviao: ");
                    scanf("%d", &pesoAviao);
                    printf( "Vel Max: " );
                    scanf("%d", &velocidadeMaxima);
                    printf( "Distancia do percurso: " );
                    scanf("%d", &KMPercurso);
                    voos[cont_voos] = Voo(codigo,origem,destino,pesoAviao,velocidadeMaxima,KMPercurso);
                    cont_voos++;
                    if(cont_voos < 20)
                    {
                        printf( "Gostaria de adicionar mais um voo? sim = 0 / não = 1" );
                        scanf("%d", &add);
                        if(add == 1)
                        {
                            opc_voo = false;
                        }
                    }
                    else
                    {
                        printf( "Numero maximo de voos atingido!" );
                        opc_voo = false;
                    }
                }

                printf("Para terminar o cadastro do aeroporto, por favor digite:");
                printf("IdentificadorAeroporto:" );
                scanf("%100s", &IdentificadorAeroporto);
                printf("latitude:" );
                scanf("%d", &latitude);
                printf("longitude:" );
                scanf("%d", &longitude);
                printf("cidade:" );
                scanf("%100s", &cidade);

                aeroportos[contAero] = Aeroporto(latitude,longitude,cidade,IdentificadorAeroporto,pistas,voos,voos);
                printf("Aeroporto: " );
                aeroportos[contAero].getIdentificadorAeroporto()  ;
                printf(" latitude: " );
                aeroportos[contAero].getLatitude()  ;
                printf(" longitude " );
                aeroportos[contAero].getLongitude() ;
                printf(" cidade: " );
                aeroportos[contAero].getCidade();
                contAero++;

            }

        }
        break;


            case 1:
            system("cls");
            if(aeroportos[0].getIdentificadorAeroporto() != "")
            {
                for(int i = 0; aeroportos.getLatitude() != -1 && i < sizeof(aeroportos); i++)
                {
                    printf("/n");
                    printf( "Aeroporto: ");
                    aeroportos.getIdentificadorAeroporto();
                    printf("latitude: ");
                    aeroportos.getLatitude();
                    printf( "longitude");
                    aeroportos.getLongitude();
                    printf( "cidade: ");
                    aeroportos.getCidade();
                    printf("/n");
                }
            }

        }

        break;

        case 2:
        system("cls");
        if(aeroportos[0].getIdentificadorAeroporto() != "")
        {
            if(aeroportos[0].getPistas(0).getIdentificacao() != "")
            {
                for(int i = 0; aeroportos.getLatitude() != -1 && i < sizeof(aeroportos); i++)
                {
                    for(int j = 0; aeroportos.getPistas(j).getIdentificacao() != "" && j < aeroportos.getTamanhoPistas(); j++)
                    {
                        printf("/n");
                        printf("Aeroporto: ");
                        aeroportos.getIdentificadorAeroporto();
                        printf("Pista: ");
                        printf("Identificacao: ");
                        aeroportos.getPistas(j).getIdentificacao();
                        printf("Comprimento: ");
                        aeroportos.getPistas(j).getComprimento();
                        printf("Largura: ");
                        aeroportos.getPistas(j).getLargura();
                        printf("Limite Peso: ");
                        aeroportos.getPistas(j).getLimitePeso();
                        printf("/n");
                    }
                }
            }
        }

        break;


    case 3:
        system("cls");
        if(aeroportos[0].getIdentificadorAeroporto() != "")
        {
            if(aeroportos[0].getPlanos(0).getCodigo() != "")
            {
                for(int i = 0; aeroportos.getLatitude() != -1 && i < sizeof(aeroportos); i++)
                {
                    for(int j = 0; aeroportos.getPlanos(j).getCodigo() != "" && j < aeroportos.getTamanhoPlanos(); j++)
                    {
                        printf("/n");
                        printf("Aeroporto: ");
                        aeroportos.getIdentificadorAeroporto();
                        printf("Voo: ");
                        printf("Codigo: " );
                        aeroportos.getPlanos(j).getCodigo();
                        printf("Destino: " );
                        aeroportos.getPlanos(j).getDestino();
                        printf( "Origem: " );
                        aeroportos.getPlanos(j).getOrigem();
                        printf( "Peso Aviao: "  );
                        aeroportos.getPlanos(j).getPesoAviao();
                        printf( "KM Percurso: " );
                        aeroportos.getPlanos(j).getKMPercurso();
                        printf( "Velocidade Maxima (km/h): ");
                        aeroportos.getPlanos(j).getVelocidadeMaxima();
                        printf("Tempo de Voo: ");
                        tempoVoo(aeroportos.getPlanos(j).getKMPercurso(),aeroportos.getPlanos(j).getVelocidadeMaxima();
                                 printf("/n");
                    }
                }
            }
        }
        break;
    }

}

 

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

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!