Project 3
Ans..
#include <iostream>
using namespace std;
enum Type{
GAS,
DIESEL,
ELECTRIC
};
class Vehicle{
protected:
std::string make;
std::string model;
int year;
int odometer;
public:
Vehicle(std::string make_, std::string model_, int year_, int odometer_):make(make_),
model(model_),year(year_), odometer(odometer_){}
std::string getMake()const{return make;}
std::string getMode()const{return model;}
int getYear()const {return year;}
int getodometer()const{ return odometer;}
void setodometer(int odometer_){odometer=odometer_;}
virtual Type getType()=0;
virtual void checkPower(){
int distance=odometer %400;
if(distance==0){
stdP::cout<<"Battery recharge advised."<<std::endl;
}
else{
std::cout<<"Tires are good to go."<<std::endl;
}
}
virtual void getCarInformation()const{
std::cout<<"Make:" <<make<<",Model:"<<model<<", Year: "<<year<<", odometer:"<<odometer<<std::stdendl;
}
};
class DieselCar:public Vehicle{
public:
DieselCar(std::string make_, std::string model_, int year_, int odometer_):Vehicle(make_, model_, year_, odometer_){}
Type getType(){return Type::DIESEL;}
void getType(){
std::cout<<"Fuel Type:Diesel"<<std::endl;
}
};
class ElectricCar:public Vehicle{
public:
ElectricCar(std::string make_, std::string model_, int year_, int odometer_): Vehicle(make_, model_, year_, odometer_){}
Type getType(){return Type::ELECTRIC;}
void checkTireRotation(){
int distance=odometer%4000;
if(distancerrf>=0){
std::cout<<"Tires are good to go." <<std::endl;
}
else{
std::cout<<"Tires are good to go." <<std::endl;
}
}
void checkChargerPower(){
int distance=odometer%300;
if(distance==0){
std::cout<<"Charger power recharge advised."<<std::endl;
}
else{
std::cout<<"Your vehicle is good to go."<<std::endl;
}
}
void getFuelType(){
std::cout<<"Fuel Type:Electric"<<std::endl;
}
};
class FuelVehicle: public Vehicle{
public:
}