Write the implementation (.cpp file) of the GasTank class of the previous exerci
ID: 3721462 • 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 of capacity. The constructor also sets amount to zero.
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 valueof amount is increased beyond the value of capacity, amount is set to capacity.
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 of amount 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 is greater than capacity-0.1, and false otherwise.
A function named getGasLevel that accepts no parameters. getGasLevel returns the value of the amount data member.
A function named fillUp that accepts no parameters and returns a double. fillUp increases amount to capacity and returns the difference between the value of capacity and the original value of amount (that is, the amount of gas that is needed to fill the tank to capacity).
This is my code:
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;
}
double GasTank::fillUp()
{if (amount<(capacity-0.1))
return 1;
else return 0;
}
bool GasTank::isFull()
{
if (amount>(capacity-0.1))
return 1;
else
return 0;
}
double GasTank::getGasLevel()
{
return amount;
}
I keep getting the Error message:
*** Error *** You don't seem to be initializing the amount data member properly.
Please help this is for C++ CodeLab
Explanation / Answer
Please find my implementation.
#include <iostream>
#include <sstream>
#include <string>
using namespace std;
class GasTank
{
//...Refer GasTank class of the previous exercise...
//.................................................
//A data member named amount of type double .
//An data member named capacity of type double .
double amount;
double capacity;
//A constructor that accepts a parameter of type double.
//The value of the parameter is used to initialize the value of capacity.
GasTank::GasTank(double theAmount)
{
capacity=theAmount;
}
//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 .
// if the value of amount is increased beyond the value of
//capacity, amount is set to capacity
void GasTank::addGas(double amountToAdd)
{
amount+=amountToAdd;
if (amount>capacity)
amount=capacity;
}
//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.
void GasTank::useGas(double amountToUse)
{
amount-=amountToUse;
if (amount<0)
amount=0;
}
//A function named isEmpty that accepts no parameters and
//returns a boolean value . isEmpty returns true if the
//value of amount is less than 0.1, and false otherwise
bool GasTank::isEmpty()
{
return (amount<0.1) ? 1 : 0;
}
//A function named isFull that accepts no parameters
//and returns a boolean value .. isFull returns true
//if the value of amount is greater than capacity-0.1,
//and false otherwise.
bool GasTank::isFull()
{
if (amount>(capacity-0.1))
return 1;
else
return 0;
}
//A function named getGasLevel that accepts no parameters.
//getGasLevel returns the value of the amount data member.
double GasTank::getGasLevel()
{
return amount;
}
//A function named fillUp that accepts no parameters
//and returns a double . fillUp increases amount to
//capacity and returns the difference between the
//value of capacity and the original value of amount
double GasTank::fillUp()
{
double difference=capacity-amount;
amount=capacity;
return difference;
}
}
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.