Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Write the implementation (.cpp file) of the GasTank class of the previous exerci

ID: 3773660 • Letter: W

Question

Write the implementation (.cpp file) of the GasTank class of the previous exercise. The full specification of the class is:

A data member named  amount of type  double .

An data member named  capacity of type  double .

A constructor that accepts a parameter of type  double . The value of the parameter is used to initialize the value ofcapacity.

A function named  addGas that accepts a parameter of type  double . The value of the amount instance variable is increased by the value of the parameter . However, if the value of amount is increased beyond the value of capacity, amount is set tocapacity.

A function named  useGas that accepts a parameter of type  double . The value of the amount data member is decreased by the value of the parameter . However, if the value of amount is decreased below 0, amount is set to 0.

A function named  isEmpty that accepts no parameters and returns a boolean  value . isEmpty returns true  if the value ofamount is less than  0.1, and false  otherwise.

A function named  isFull that accepts no parameters and returns a boolean  value .. isFull returns true  if the value of amount isgreater than  capacity-0.1, and false  otherwise.

A function named  getGasLevel that accepts no parameters . getGasLevel returns the value of the amount data member.

Explanation / Answer

Solution:

GasTank::GasTank(double theAmount)
{
    capacity=theAmount;
}

void GasTank::addGas(double amountToAdd)
{
    amount+=amountToAdd;
    if (amount>capacity)
        amount=capacity;
}

void GasTank::useGas(double amountToUse)
{
    amount-=amountToUse;
    if (amount<0)
        amount=0;
}

bool GasTank::isEmpty()
{
        return (amount<0.1) ? 1 : 0;
}

bool GasTank::isFull()
{
    if (amount>(capacity-0.1))
        return 1;
    else
        return 0;
}

double GasTank::getGasLevel()
{
    return amount;
}