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