Glaucco 1 Denunciar post Postado Março 25, 2009 #include<iostream> using namespace std; class Automovel { public: string tipo; // tipo do veículo: passeio, carga, utilitario, onibus etc... int porta; // quantidade de portas string cor; // cor do veículo float capacidade; // capacidade máxima do tanque de combustível float tanque; // quantidade de combustível no tanque float consumo; // consumo médio do veículo em km/l Automovel() { cout << "Construindo o objeto...\n"; } Automovel(string ti, int p, string c, float t, float cons) { tipo = ti; porta = p; cor = c; tanque = capacidade = t; consumo = cons; } void print() { cout << "----------------\n" << "Dados do veiculo\n" << "----------------" << "\nTipo: " << tipo << "\nPortas: " << porta << "\nCor: " << cor << "\nTanque: " << tanque << " litros" << "\nConsumo: " << consumo << " km/l\n" << "----------------\n"; } float autonomia() { return tanque*consumo; } bool ande(float distancia) { if (distancia/consumo > tanque) { return false; } tanque-=distancia/consumo; return true; } bool abastece(float litros) { if ((tanque+litros) > capacidade) { return false; } tanque+=litros; return true; } }; int main() { Automovel gol("passeio",4,"preta",45,18); bool abasteceu; bool andou; float km, l; int menu; gol.print(); system("pause"); system("cls"); do { cout << "---- MENU ----\n" << "0: Sair\n" << "1: Abastecer\n" << "2: Andar\n" << "--------------\n"; cout << "-> Autonomia atual: " << gol.autonomia() << "km\n"; cout << "Sua opcao: "; cin >> menu; switch (menu) { case 0: break; case 1: do { cout << "Quantos litros deseja abastecer? "; cin >> l; abasteceu = gol.abastece(l); // chamada do método uma única vez! if (abasteceu) { cout << "\n***INFO: Voce abasteceu " << l << " litros.\n" << " Voce possui agora " << gol.tanque << " litros de combustivel no tanque.\n\n"; } else { cout << "\n***AVISO: Seu tanque aceita somente " << gol.capacidade-gol.tanque << " litros.\n" << " Abastecimento nao realizado!\n\n"; } } while (!abasteceu); break; case 2: do { cout << "Quantos km deseja rodar? "; cin >> km; if (andou = gol.ande(km)) { cout << "\n***INFO: Voce percorreu " << km << "km.\n" << " Voce possui agora " << gol.tanque << " litros de combustivel no tanque.\n\n"; } else { cout << "\n***AVISO: Voce nao tem autonomia para essa distancia!\n" << " Sua autonomia atual com " << gol.tanque << " litros eh de " << gol.autonomia() << " km.\n\n"; } } while (!andou); break; } system("pause"); system("cls"); } while (menu != 0); system("pause"); } Compartilhar este post Link para o post Compartilhar em outros sites
VictorCacciari 42 Denunciar post Postado Março 25, 2009 tópico movido. C/C++ http://forum.imasters.com.br/public/style_emoticons/default/seta.gif C/C++ -- Laboratório de códigos fontes Compartilhar este post Link para o post Compartilhar em outros sites
Will Marrola 0 Denunciar post Postado Julho 29, 2009 Fui testar aqui em casa e foi necessário adicionar "#include <string>", pois nao estava lendo as variaveis Automovel.tipo e as demais strings. vlw Compartilhar este post Link para o post Compartilhar em outros sites