Código:
#include <iostream>
#include <string.h>
#include <conio.h>
using namespace std;
//Clase Base (CLASE VEHICULO)
class Vehiculo{
protected:
float motor;
string combustible;
float capacidad;
public:
Vehiculo(float m, string com, float cap);
void Mostrar_Datos();
};
//Declaracion del constructor
Vehiculo::Vehiculo(float m, string com, float cap){
motor=m; combustible=com; capacidad=cap;
}
//metodo Mostrar_Datos
void Vehiculo::Mostrar_Datos(){
cout<<"Motor: "<<motor;
cout<<"\nCombustible: "<<combustible;
cout<<"\nCapacidad: "<<capacidad<<endl;
}
//CLASE DERIVADA (CLASE TERRESTRE)
class Terrestre:public Vehiculo{
protected:
float precio;
public:
Terrestre(float m, string com, float cap);
void Update_Price();
void Mostrar();
};
//Contructor de clase Terrestre
Terrestre::Terrestre(float m, string com, float cap):Vehiculo(motor,combustible,capacidad){
precio=25000;
}
void Terrestre::Update_Price(){
float x;
cout<<"Precio original: "<<precio;
cout<<"\nNuevo precio: ";
cin>>x;
cout<<"\nAhora el nuevo precio es: "<<x;
precio=x;
}
void Terrestre::Mostrar(){
float x,x1;
cout<<"\n¿Cuando se compro el auto? ";cin>>x;
x1=2018-x;
if(x1>5){
cout<<"\nSu auto es mayor a 5 años";
}
}
//CLASE DERIVADA (MARITIMO)
class Maritimo:public Vehiculo{
protected:
float motores;
public:
Maritimo(float m, string com, float cap);
void Change_M();
void Mostrar1();
};
//Constructor por defecto de la clase Maritimo
Maritimo::Maritimo(float m, string com, float cap):Vehiculo(motor,combustible,capacidad){}
//Metodo de cambio de motores
void Maritimo::Change_M(){
float x;
cout<<"\n¿Cual es la nueva potencia de motores? ";cin>>x;
motores=x;
}
void Maritimo::Mostrar1(){
cout<<"\nPotencia de los motores es: "<<motores;
cout<<"\nCapacidad del tanque: "<<capacidad;
cout<<"\nCombustible: "<<combustible;
}
int main(){
float mot=0,c=0;
string combu;
int s,n;
cout<<"Introduce potencia de motor de Bote: "; cin>>mot;
cout<<"Introduce la capacidad del tanque: ";cin>>c;
cout<<"Tipo de combustible del vehiculo: ";cin>>combu;
Vehiculo A1(mot,combu, c);
Terrestre MiAuto(mot,combu, c);
Maritimo MiBarco(mot,combu, c);
cout<<"\n¿Desea actualizar la precio del auto? 0=no/1=si ";
cin>>n;
if (n==1)
MiAuto.Update_Price();
else
cout<<"fin de objeto Mi Auto";
MiAuto.Mostrar();
cout<<"\n¿Desea actualizar la potencia de motores? 0=no/1=si ";
cin>>s;
if (s==1)
MiBarco.Change_M();
else
cout<<"listo";
MiBarco.Mostrar1();
return 0;
}