Ir ao conteúdo
  • Cadastre-se
marcelocolborges

C++ Acessar struct usando comando Switch - C++

Recommended Posts

Senhores, 

Estou fazendo um trabalho da faculdade onde preciso fazer um "sistema de monitoramento de voos". 
Consigo fazer o cadastro e leitura das informações do aeroporto caso estejam diretamente na main, porém quando crio um menu usando switch/case toda vez que faço leitura das informações não aparece o dado cadastrado.
Linguagem utilizada: C++
Programa utilizado: Codeblocks

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

using namespace std;

int AeroNum = 0;

#define Dado 2


struct Aeroporto{
     private:
        string IdentificadorAeroporto;
        string Cidade;
    public:
        Aeroporto(){
            this->IdentificadorAeroporto = "Sem informacao";
            this->Cidade = "Sem informacao";
        }

        Aeroporto(string Nome,string cidade){
            this->setIdentificadorAeroporto(Nome);
            this->setCidade(cidade);
        }

        bool setIdentificadorAeroporto(string Nome){
            this->IdentificadorAeroporto = Nome;
            return true;
        }

        bool setCidade(string cidade){
            this->Cidade = cidade;
            return true;
        }

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

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


int main(void){
    Aeroporto CadastroAeroporto[Dado];

    int menu = 0;
    string info;

    cout << endl;
    cout << "***Selecione opcao***" << endl;
    cout << "1 - Cadastra aeroporto." << endl;
    cout << "2 - Mostra aeroporto."     << endl;
    cin >> menu;
    if (menu > 2){
        system("cls");
        main();
    }


    switch(menu){
        case 1:
            cout << endl;
            do{
                cout << " - Informe nome do aeroporto: ";
                fflush(stdin);
                getline(cin, info);
            }while(!CadastroAeroporto[AeroNum].setIdentificadorAeroporto(info));

            do{
                cout << " - Informe a cidade :";
                fflush(stdin);
                getline(cin, info);
            }while(!CadastroAeroporto[AeroNum].setCidade(info));

            AeroNum++;
            main();
            break;

        case 2:
            if(AeroNum == 0){
                cout << endl;
                cout << "Nao ha aeroportos cadastrados" << endl;
        }else{
                for(int m = 0; m < AeroNum; m++){
                    cout << endl;
                    cout << ">>Aeroporto: " << CadastroAeroporto[m].getIdentificadorAeroporto() << endl;
                    cout << ">>Cidade: " << CadastroAeroporto[m].getCidade() << endl;
                }
            }
        main();
        break;
    }
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro 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 publicações 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

×