For this assignment you will design a set of classes that wo
For this assignment you will design a set of classes that work together to simulate a
 car’s fuel gauge and odometer. The classes you will design are:
 • The FuelGauge Class: This class will simulate a fuel gauge. Its responsibilities are
 – To know the car’s current amount of fuel, in gallons.
 – To report the car’s current amount of fuel, in gallons.
 – To be able to increment the amount of fuel by 1 gallon. This simulates putting
 fuel in the car. (The car can hold a maximum of 15 gallons.)
 – To be able to decrement the amount of fuel by 1 gallon, if the amount of fuel is
 greater than 0 gallons. This simulates burning fuel as the car runs.
 • The Odometer Class: This class will simulate the car’s odometer. Its responsibilities
 are:
 – To know the car’s current mileage.
 – To report the car’s current mileage.
 To be able to increment the current mileage by 1 mile. The maximum mileage the
 odometer can store is 999,999 miles. When this amount is exceeded, the odometer
 resets the current mileage to 0.
 – To be able to work with a FuelGauge object. It should decrease the FuelGauge
 object’s current amount of fuel by 1 gallon for every 24 miles traveled. (The car’s
 fuel economy is 24 miles per gallon.)
 -Demonstrate the classes by creating instances of each. Simulate filling the car up with
 fuel, and then run a loop that increments the odometer until the car runs out of fuel.
 During each loop iteration, print the car’s current mileage and amount of fuel.
Solution
// FuelGauge.h
 using namespace std;
#ifndef FUELGAUGE_H
 #define FUELGAUGE_H
class FuelGauge
 {
 private:
 int currentAmountOfFuel;
 public:
 FuelGauge(int gallons)
 {
 currentAmountOfFuel = gallons;
 }
 FuelGauge()
 {
 currentAmountOfFuel = 0;
 }
 int getCurrentAmountOfFuel()
 {
 return currentAmountOfFuel;
 }
 void incrementFuelTank()
 {
 if (currentAmountOfFuel < 15)
 currentAmountOfFuel++;
 }
 void decrementFuelTank()
 {
 if (currentAmountOfFuel > 0)
 currentAmountOfFuel--;
 }
 };
#endif
// Odometer.h
 #include \"FuelGauge.h\"
 using namespace std;
#ifndef ODOMETER_H
 #define ODOMTER_H
class Odometer
 {
 private:
 int currentMileage;
 FuelGauge *fuelG;
 public:
 Odometer(int miles, FuelGauge *f)
 {
 currentMileage = miles;
 fuelG = f;
 }
int getCurrentMileage()
 {
 return currentMileage;
 }
 void incrementcurrentMileage()
 {
 if (currentMileage < 999999)
 currentMileage++;
 if (currentMileage == 999999)
 currentMileage = 0;
 }
 void decrementcurrentMileage()
 {
 if (currentMileage > 24)
 currentMileage--;
 }
 };
#endif
 
// main.cpp
#include <iostream>
 #include <fstream>
 #include <cfloat>
 #include <iomanip>
 #include <climits>
 #include <cmath>
 #include <string>
 #include \"FuelGauge.h\"
 #include \"Odometer.h\"
 using namespace std;
int main()
 {
 FuelGauge fg(10);
 Odometer o(0,&fg);
while (fg.getCurrentAmountOfFuel() > 0)
 {
 o.incrementcurrentMileage();
 cout<< \"Mileage: \" << o.getCurrentMileage() << \" Fuel: \" << fg.getCurrentAmountOfFuel() << \" gallons\" << endl;
 }
return 0;
 }



