Detail Bill Inheritance Program ISC 2012 Theory

A super class Detail has been defined to store the details of a customer. Define a sub-class Bill to compute the monthly telephone charge of the customer as per the chart given below:

NUMBER OF CALLS RATE
1 – 100 Only Rental Charge
101 – 200 60 paisa per call + rental charge
201 – 300 80 paisa per call + rental charge
Above 300 1 rupee per call + rental charge

The details of both the classes are given below:

Class name: Detail
Data members/instance variables:
name: to store the name of the customer.
address: to store the address of the customer.
telno: to store the phone number of the customer.
rent: to store the monthly rental charge.
Member functions:
Detail(…): parameterized constructor to assign values to data members.
void show(): to display the details of the customer.

Class name: Bill
Data members/instance variables:
n: to store the number of calls.
amt: to store the amount to be paid by the customer.
Member functions:
Bill(…): parameterized constructor to assign values to data members of both classes and to initialize amt = 0.0.
void cal(): calculates the monthly telephone charge as per the chart given above.
void show(): displays the details of the customer and amount to be paid.

Specify the class Detail giving details of the constructor and void show(). Using the concept of inheritance, specify the class Bill giving details of the constructor, void cal() and void show().

The main() function and algorithm need not be written.

class Detail{
    String name;
    String address;
    int telno;
    double rent;
    public Detail(String n, String a, int t, double r){
        name = n;
        address = a;
        telno = t;
        rent = r;
    }
    public void show(){
        System.out.println("Customer name: " + name);
        System.out.println("Address: " + address);
        System.out.println("Telephone Number: " + telno);
        System.out.println("Rent: Rs. " + rent);
    }
}
class Bill extends Detail{
    int n;
    double amt;
    public Bill(String cn, String a, int t, double r, int num){
        super(cn, a, t, r);
        n = num;
        amt = 0.0;
    }
    public void cal(){
        if(n >= 1 && n <= 100)
            amt = rent;
        else if(n >= 101 && n <= 200)
            amt = rent + 0.60 * n;
        else if(n >= 201 && n <= 300)
            amt = rent + 0.80 * n;
        else if(n > 300)
            amt = rent + n;
    }
    public void show(){
        super.show();
        System.out.println("Number of calls: " + n);
        System.out.println("Amount to be paid: Rs. " + amt);
    }
}