A library issues books on rental basis at a 2% charge on the cost price of the book per day. As per the rules of the library, a book can be retained for 7 days without any fine. If the book is returned after 7 days, a fine will also be charged for the excess days as per the chart given below:
Number of excess days | Fine per day (Rs.) |
1 to 5 | 2.00 |
6 to 10 | 3.00 |
Above 10 | 5.00 |
A super class Library has been defined. Define a subclass Compute to calculate the fine and the total amount. The details of the members of both the classes are given below:
Class name: Library
Data members/instance variables:
name: to store the name of the book
author: to store the author of the book
p: to store the price of the book (in decimals)
Methods/Member functions:
Library(…): parameterized constructor to assign values to the data members
void show(): displays the book details
Class name: Compute
Data members/instance variables:
d: number of days taken in returning the book
f: to store the fine (in decimals)
Methods/Member functions:
Compute(…): parameterized constructor to assign values to the data members of both the classes
void fine(): calculates the fine for the excess days as given in the table above
void show(): displays the book details along with the number of days, fine and the total amount to be paid. Total amount is (2% of price of book * total no. of days) + fine
Assume that the super class Library has been defined. Using the concept of inheritance, specify the class Compute giving the details of the constructor, void fine() and void show() functions.
The super class, main() function and algorithm need not be written.
{
public String name,author;
double p;
Library(String name,String author,double p)
{
this.name=name;
this.author=author;
this.p=p;
}
void show()
{
System.out.println("Book name:"+name);
System.out.println("Author name:"+author);
System.out.println("Price:"+p);
}
}
{
public int d;
public double f;
Compute(String name,String author,double p,int d,double f)
{
super(name,author,p);
this.d=d;
this.f=f;
}
void fine()
{
if(d>0 && d<=5)
f=2*d;
else if(d>5 && d<=10)
f=3*d;
else
f=10*d;
}
void show()
{
System.out.println("Number of days:"+d);
System.out.println("Fine amount:"+f);
double total=(2.0/100*p*d)+f;
System.out.println("Total amount:"+total);
}
}