[Código] Automovel
#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");
}Discussão (2)
Carregando comentários...