Ir ao conteúdo
  • Cadastre-se

Problema com classe - C++


Mateus Lara

Posts recomendados

Boa noite pessoal. Desenvolvi o código:

#include <iostream>#include <stdio.h>#include <stdlib.h>#include <string.h>#include <time.h>using namespace std;class Automovel{    private:    string tipoAutom;    string corAutom;    int nPortas;    public:    void setTipo(int tipo){        if (tipo == 1)            tipoAutom = "Carro";        else if (tipo == 2)            tipoAutom = "Caminhao";        else            tipoAutom = "Moto";    }    string getTipo(){return tipoAutom;}    void setCor(int cor){        if (cor == 1)            corAutom = " vermelho";        else if (cor == 2)            corAutom = " branco";        else if (cor == 3)            corAutom = " preto";        else            corAutom = " azul";    }    string getCor(){return corAutom;}    void setPorta(int porta){        if (porta == 2)            nPortas = 2;        else            nPortas = 4;    }    int getPorta(){return nPortas;}    Automovel(){}    ~Automovel(){}};string setFrota (int opcao, int cor, int portas){    Automovel a;    a.setTipo(opcao);    a.setCor(cor);    a.setPorta(portas);    string resposta;    if (a.getTipo() != "Moto"){        if (a.getPorta() == 2 || a.getTipo() == "Caminhao")            resposta += (a.getTipo() + a.getCor() + " " + " 2 portas");        else            resposta += (a.getTipo() + a.getCor() + " " + " 4 portas");    } else {        resposta = a.getTipo() + a.getCor();    }    return(resposta);}int main(){    char  opcao;    const char* resposta;    int   aleatorio1,aleatorio2,aleatorio3;    int   aux1,aux2,aux3;    while(opcao != 'S' && opcao != 's'){        cout<<"A-Aleatorio\tE-Especifico\tS-Sair\nEscolha a letra que deseja ou S para sair: ";        cin>>&opcao;               switch(opcao){        case 'A':            case 'a':                srand(time(NULL));                aleatorio1 = (rand() % 3) + 1;                aleatorio2 = (rand() % 4) + 1;                aleatorio3 = (rand() % 2) + 1;                switch(aleatorio1){                case 1:                    if (aleatorio3 == 1)                        resposta = (setFrota(1, aleatorio2, 2).c_str());                    else                        resposta = (setFrota(1, aleatorio2, 4).c_str());                    cout<<"Veiculo obtido = \n",resposta;                                        break;                case 2:                    if (aleatorio3 == 1)                        resposta = (setFrota(2, aleatorio2, 2).c_str());                    else                        resposta = (setFrota(2, aleatorio2, 4).c_str());                    cout<<"Veiculo obtido = \n",resposta;                    break;                case 3:                    if (aleatorio3 == 1)                        (resposta = setFrota(3, aleatorio2, 2).c_str());                    else                        (resposta = setFrota(3, aleatorio2, 4).c_str());                    cout<<"Veiculo obtido = \n",resposta;                    break;                }                cout<<"------------------------------ // ------------------------------\n\n";            break;        case 'E':            case 'e':                cout<<"1-Carro\t\t2-Caminhao\t3-Moto\nDigite o numero do automovel especifico: "<< endl;                cin>>aux1;                if (aux1 == 1 || aux1 == 2 || aux1 == 3){                    cout<<"\n1-Vermelho    2-Branco    3-Preto    4-Azul\nDigite o numero da cor especifica:"<< endl;                   cin>>aux2;                    if (aux2 == 1 || aux2 == 2 || aux2 == 3 || aux2 == 4){                        if (aux1 != 3 && aux1 != 2){                            cout<<"\n2 portas\t\t4 portas\nDigite o numero de portas do automovel:"<< endl;                            cin>>aux3;                                                       if (aux3 == 2)                                resposta = (setFrota(aux1,aux2,2).c_str());                            else                                resposta = (setFrota(aux1,aux2,4).c_str());                            cout<<"Veiculo obtido =\n",resposta;                                                       cout<<"------------------------------ // ------------------------------\n\n";                            break;                        } else {                            resposta = (setFrota(aux1,aux2,0).c_str());                            cout<<"\nVeiculo obtido = \n",resposta;                                                       cout<<"------------------------------ // ------------------------------\n\n";                            break;                        }                    } else {                        cout<<"\nERRO! Digite apenas 1, 2, 3 ou 4! Repita o processo.\n";                        cout<<"------------------------------ // ------------------------------\n\n";                    }                } else {                    cout<<"\nERRO! Digite apenas 1, 2 ou 3! Repita o processo.\n";                    cout<<"------------------------------ // ------------------------------\n\n";                }        case 'S':            case 's':                cout<<"Fim!\n\n";                break;        default:            cout<<"Digite apenas A para aleatorio, E para especifico ou S para sair!\n\n";        }    }    return 0;}

porém não está pegando os valores pelo que parece...sempre printa - "Veiculo obtido = "

 

Preciso de uma ajuda ae huahuauhuah 

 

 

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para 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...