Challenge

Project 3

Code:

#include <iostream>
#include <vector>
#include <string>

class MaintenanceTask {
public:
MaintenanceTask(const std::string& name, const std::string& description)
: name(name), description(description) {}

std::string getName() const {
return name;
}

std::string getDescription() const {
return description;
}

private:
std::string name;
std::string description;
};

class Car {
public:
Car(const std::string& make, const std::string& model, int year, const std::string& fuelType)
: make(make), model(model), year(year), fuelType(fuelType) {}

void addMaintenanceTask(const MaintenanceTask& task) {
maintenanceTasks.push_back(task);
}

std::vector<MaintenanceTask> getMaintenanceTasks() const {
return maintenanceTasks;
}

private:
std::string make;
std::string model;
int year;
std::string fuelType;
std::vector<MaintenanceTask> maintenanceTasks;
};

class PetrolCar : public Car {
public:
PetrolCar(const std::string& make, const std::string& model, int year)
: Car(make, model, year, "Petrol") {
addDefaultMaintenanceTasks();
}

private:
void addDefaultMaintenanceTasks() {
addMaintenanceTask(MaintenanceTask("Oil Change", "Replace engine oil"));
addMaintenanceTask(MaintenanceTask("Replace Oil Filter", "Replace the oil filter"));
// Add more tasks here
}
};

class DieselCar : public Car {
public:
DieselCar(const std::string& make, const std::string& model, int year)
: Car(make, model, year, "Diesel") {
addDefaultMaintenanceTasks();
}

private:
void addDefaultMaintenanceTasks() {
addMaintenanceTask(MaintenanceTask("Oil Change", "Replace engine oil"));
addMaintenanceTask(MaintenanceTask("Replace Oil Filter", "Replace the oil filter"));
// Add more tasks here
}
};

class ElectricCar : public Car {
public:
ElectricCar(const std::string& make, const std::string& model, int year)
: Car(make, model, year, "Electric") {
addDefaultMaintenanceTasks();
}

private:
void addDefaultMaintenanceTasks() {
addMaintenanceTask(MaintenanceTask("Check Charging System", "Inspect the charging system"));
addMaintenanceTask(MaintenanceTask("Check Battery", "Inspect the battery"));
// Add more tasks here
}
};

int main() {
PetrolCar petrolCar("Toyota", "Corolla", 2022);
DieselCar dieselCar("Ford", "F-150", 2023);
ElectricCar electricCar("Tesla", "Model S", 2023);

std::cout << "Petrol Car Maintenance Tasks:" << std::endl;
for (const auto& task : petrolCar.getMaintenanceTasks()) {
std::cout << task.getName() << ": " << task.getDescription() << std::endl;
}

std::cout << "\nDiesel Car Maintenance Tasks:" << std::endl;
for (const auto& task : dieselCar.getMaintenanceTasks()) {
std::cout << task.getName() << ": " << task.getDescription() << std::endl;
}

std::cout << "\nElectric Car Maintenance Tasks:" << std::endl;
for (const auto& task : electricCar.getMaintenanceTasks()) {
std::cout << task.getName() << ": " << task.getDescription() << std::endl;
}

return 0;
}

OUTPUT:


Petrol Car Maintenance Tasks:
Oil Change: Replace engine oil
Replace Oil Filter: Replace the oil filter

Diesel Car Maintenance Tasks:
Oil Change: Replace engine oil
Replace Oil Filter: Replace the oil filter

Electric Car Maintenance Tasks:
Check Charging System: Inspect the charging system
Check Battery: Inspect the battery

Your portfolio, next

Ship work like this
in your own course.

Talk to a career counsellor

Free 20-minute call. We'll map the right course to where you want to work.

By submitting you agree to our Terms and Privacy Policy.