In: Computer Science
Write a class Battery that models a rechargeable battery. A battery has a constructor
public Battery(double capacity)
where capacity is a value measured in milliampere hours. A typical AA battery has a capacity of 2000 to 3000 mAh. The method
public void drain(double amount)
drains the capacity of the battery by the given amount. The method
public void charge()
charges the battery to its original capacity.
The method
public double getRemainingCapacity()
gets the remaining capacity of the battery.
Supply a Battery class that tests all methods. Make sure to print the remaining capacity.
If we create an instance of Battery class with 2000 mAh, call drain (500) and then call getRemainingCapacity(), it should print 1500mAh; now if we call charge() and then call getRemainingCapacity() it should print 2000mAh
Solution:
Code:
#include <iostream>
using namespace std;
class Battery{
private:
double capacity;
double originalCapacity;
public:
Battery(double capacity){
this->capacity = capacity;
originalCapacity = capacity;
}
void drain(double amount){
capacity -= amount;
if(capacity < 0){
capacity =
0;
}
}
void charge(){
capacity = originalCapacity;
}
double getRemainingCapacity(){
return capacity;
}
};
int main() {
Battery b(2000);
b.drain(500);
cout << b.getRemainingCapacity() << "mAh"
<< endl;
b.charge();
cout << b.getRemainingCapacity() << "mAh"
<< endl;
return 0;
}
Output: