KnowledgeBoat Logo

Chapter 6

Class as the Basis of All Computation

Class 10 - APC Understanding Computer Applications with BlueJ


Tick the correct answer

Question 1

Which keyword makes class members accessible outside the class in which they are declared?

  1. Private
  2. Protected
  3. Public ✓
  4. Hidden

Question 2

Find the access specifier which prohibits a class member from being used outside a class:

  1. Private ✓
  2. Public
  3. Protected
  4. None

Question 3

A class object is also known as:

  1. Identifier
  2. Instance ✓
  3. Specifier
  4. Modifier

Question 4

Which of the following statements is the most appropriate for the private members?

  1. They are visible out of the class in which they are defined.
  2. They can be used in the sub-classes.
  3. They are only visible in the class in which they are declared. ✓
  4. None of the above.

Question 5

Which of the following keywords are used to control access to a class member?

  1. Default
  2. Abstraction
  3. Protected ✓
  4. Interface

Question 6

Which of the members can be accessed globally?

  1. Private
  2. Public ✓
  3. Protected
  4. All of the above

Question 7

The maximum number of objects of a class can be created as:

  1. 1
  2. 2
  3. On the user's choice ✓
  4. Number of variables

Question 8

A class contains:

  1. Attributes and methods
  2. A number of object of same types
  3. Data and member function
  4. All of the above ✓

Question 9

Which of the following features is not the principle of OOP?

  1. Encapsulation
  2. Transparency ✓
  3. Inheritance
  4. Polymorphism

Question 10

A package is a:

  1. collection of data.
  2. collection of functions.
  3. collection of classes. ✓
  4. a nested class.

Fill in the blanks with appropriate words

Question 1

Primitive data types are also called as fundamental data types.

Question 2

A user defined data type can be created by using a/an object.

Question 3

this keyword represents the current object in the member method.

Question 4

public members are accessible from anywhere in the program.

Question 5

If no access specifier is mentioned then default specifier is referred by default.

Question 6

private members are accessible only within the same class.

Question 7

protected members are accessible in its own class as well as in a sub class.

Answer the following questions

Question 1

Why is a class known as composite data type?

A composite data type is one which is composed with various primitive data types. A class can contain various primitive data types as its data members so it is known as a composite data type.

Question 2

Name the types of data used in a class.

  1. Access Specifiers
  2. Instance Variables
  3. Class Variables
  4. Local Variables
  5. Constructors
  6. Member Methods

Question 3

What is the purpose of the new operator?

The purpose of new operator is to instantiate an object of the class by dynamically allocating memory for it.

Question 4

Can a class be referred to as user defined data type?

Since a class is created by the user, it is also known as user defined data type.

Question 5

What is public access of a class?

When a class is declared with public access specifier it is said that the class is publicly accessible. A publicly accessible class is visible everywhere both within and outside its package. For example:

public class Example {
    //Class definition
}

Question 6

How are private members of a class different from public members?

private members of a class are accessible only within the class in which they are declared. public members of the class are accessible both within and outside their class.

Question 7

Mention any two attributes required for class declaration.

Two attributes required for class declaration are the keyword 'class' and the name of the class.

Question 8

Explain instance variables. Give an example.

Variables that are declared inside a class without using the keyword 'static' and outside any member methods are termed instance variables. Each object of the class gets its own copy of instance variables. For example, in the below class:

class Cuboid {
    private double height;
    private double width;
    private double depth;
    private double volume;

    public void input(int h, int w, int d) {
        height = h;
        width = w;
        depth = d;
    }

    public void computeVolume() {
        volume = height * width * depth;
        System.out.println("Volume = " + volume);
    }
}

height, width, depth and volume are instance variables.

Question 9

Explain any two types of access specifiers.

private — A data member or member method declared as private is only accessible inside the class in which it is declared.

public — A data member or member method declared as public is accessible inside as well as outside of the class in which it is declared.

Question 10

What is meant by private visibility of a method?

A member method of a class declared with private access specifier is said to have private visibility. Only other member methods of its class can call this method.

Answer the questions given below (Long answer type)

Question 1

How can class be used as user defined data types? Explain it with the help of an example.

Since a class is created by the user, it is also known as user defined data type. Take the example of the below class:

class Cuboid {
    private double height;
    private double width;
    private double depth;
    private double volume;

    public void input(int h, int w, int d) {
        height = h;
        width = w;
        depth = d;
    }

    public void computeVolume() {
        volume = height * width * depth;
        System.out.println("Volume = " + volume);
    }
}

After defining this class, I can use Cuboid as a new data type and create variables of Cuboid type as shown below:

public static void main(String[] args) {
    Cuboid c1 = new Cuboid();
    c1.input(5, 10, 5);
    c1.computeVolume();

    Cuboid c2 = new Cuboid();
    c2.input(2, 4, 9);
    c2.computeVolume();
}

This is how we can use class as a user defined data type.

Question 2

Differentiate between built-in data types and user defined data types.

Built-In Data TypesUser Defined Data Types
Built-In Data Types are fundamental data types defined by Java language specification.User Defined Data Types are created by the user.
Sizes of Built-In Data Types are fixed.Sizes of User Defined data types depend upon their constituent members.
Built-In Data Types are available in all parts of a Java program.Availability of User Defined data types depends upon their scope.
Built-In Data Types are independent components.User Defined data types are composed of Built-In Data Types.

Question 3

Which of the following declarations are illegal and why?

(a) class abc{...}
Legal

(b) public class NumberOfDaysWorked{...}
Legal

(c) private int x;
Legal

(d) private class abc{...}
Illegal — only 'public' or no access specifier are allowed for class declaration

(e) default key getkey(...)
Illegal — member method can't be explicitly marked 'default'

Question 4

Why can't every class be termed as user defined data type?

The classes that contain public static void main(String args[]) method are not considered as user defined data type. Only the classes that don't contain this method are called user defined data type. The presence of public static void main(String args[]) method in a class, converts it into a Java application so it is not considered as a user defined data type.

Question 5

Differentiate between static data members and non-static data members.

Static Data MembersNon-Static Data Members
They are declared using keyword 'static'.They are declared without using keyword 'static'.
All objects of a class share the same copy of Static data members.Each object of the class gets its own copy of Non-Static data members.
They can be accessed using the class name or object.They can be accessed only through an object of the class.

Question 6

Differentiate between private and protected visibility modifiers.

Private members are only accessible inside the class in which they are defined and they cannot be inherited by derived classes. Protected members are also only accessible inside the class in which they are defined but they can be inherited by derived classes.

Question 7

Differentiate between instance variable and class variable.

Instance VariableClass Variable
They are declared without using keyword 'static'.They are declared using keyword 'static'.
Each object of the class gets its own copy of instance variables.All objects of a class share the same copy of class variables.
They can be accessed only through an object of the class.They can be accessed using the class name or object.

Solutions to Unsolved Java Programs

Question 1

Write a class program to accept two numbers as instance variables. Use the following functions for the given purposes:
Class Name — Calculate
void inputdata() — to input both the values
void calculate() — to find sum and difference
void outputdata() — to print sum and difference of both the numbers
Use a main method to call the functions.

import java.util.Scanner;

public class Calculate
{
    private int a;
    private int b;
    private int sum;
    private int diff;

    public void inputdata() {
        Scanner in = new Scanner(System.in);
        System.out.print("Enter first number: ");
        a = in.nextInt();
        System.out.print("Enter second number: ");
        b = in.nextInt();
    }
    
    public void calculate() {
        sum = a + b;
        diff = a - b;
    }
    
    public void outputdata() {
        System.out.println("Sum = " + sum);
        System.out.println("Difference = " + diff);
    }
    
    public static void main(String args[]) {
        Calculate obj = new Calculate();
        obj.inputdata();
        obj.calculate();
        obj.outputdata();
    }
}
Output
BlueJ output of Calculate.java

Question 2

Write a class program with the following specifications:
Class Name — Triplet
Data Members — int a, b, c
Member Methods:
void getdata() — to accept three numbers
void findprint() — to check and display whether the numbers are Pythagorean Triplets or not.

import java.util.Scanner;

public class Triplet
{
    private int a;
    private int b;
    private int c;
    
    public void getdata() {
        Scanner in = new Scanner(System.in);
        System.out.print("Enter a: ");
        a = in.nextInt();
        System.out.print("Enter b: ");
        b = in.nextInt();
        System.out.print("Enter c: ");
        c = in.nextInt();
    }
    
    public void findprint() {
        if ((Math.pow(a, 2) + Math.pow(b, 2)) == Math.pow(c, 2)
                || (Math.pow(b, 2) + Math.pow(c, 2)) == Math.pow(a, 2)
                || (Math.pow(a, 2) + Math.pow(c, 2)) == Math.pow(b, 2))
            System.out.print("Numbers are Pythagorean Triplets");
        else
            System.out.print("Numbers are not Pythagorean Triplets");
    }
    
    public static void main(String args[]) {
        Triplet obj = new Triplet();
        obj.getdata();
        obj.findprint();
    }
}
Output
BlueJ output of Triplet.java
BlueJ output of Triplet.java

Question 3

Define a class Employee having the following description:

Data MembersPurpose
int panTo store personal account number
String nameTo store name
double taxincomeTo store annual taxable income
double taxTo store tax that is calculated
Member functionsPurpose
void input()Store the pan number, name, taxable income
void cal()Calculate tax on taxable income
void display()Output details of an employee

Calculate tax based on the given conditions and display the output as per the given format.

Total Annual Taxable IncomeTax Rate
Up to ₹2,50,000No tax
From ₹2,50,001 to ₹5,00,00010% of the income exceeding ₹2,50,000
From ₹5,00,001 to ₹10,00,000₹30,000 + 20% of the income exceeding ₹5,00,000
Above ₹10,00,000₹50,000 + 30% of the income exceeding ₹10,00,000

Output:

Pan Number  Name    Tax-Income  Tax
..........  ....    ..........  ...
..........  ....    ..........  ...
import java.util.Scanner;

public class Employee
{
    private int pan;
    private String name;
    private double taxincome;
    private double tax;
    
    public void input() {
        Scanner in = new Scanner(System.in);
        System.out.print("Enter pan number: ");
        pan = in.nextInt();
        in.nextLine();
        System.out.print("Enter Name: ");
        name = in.nextLine();
        System.out.print("Enter taxable income: ");
        taxincome = in.nextDouble();
    }
    
    public void cal() {
        if (taxincome <= 250000)
            tax = 0;
        else if (taxincome <= 500000)
            tax = (taxincome - 250000) * 0.1;
        else if (taxincome <= 1000000)
            tax = 30000 + ((taxincome - 500000) * 0.2);
        else
            tax = 50000 + ((taxincome - 1000000) * 0.3);
    }
    
    public void display() {
        System.out.println("Pan Number\tName\tTax-Income\tTax");
        System.out.println(pan + "\t" + name + "\t" 
            + taxincome + "\t" + tax);
    }
    
    public static void main(String args[]) {
        Employee obj = new Employee();
        obj.input();
        obj.cal();
        obj.display();
    }
}
Output
BlueJ output of Employee.java

Question 4

Define a class Discount having the following description:

Data MembersPurpose
int costto store the price of an article
String nameto store the customer's name
double dcto store the discount
double amtto store the amount to be paid
Member functionsPurpose
void input()Stores the cost of the article and name of the customer
void cal()Calculates the discount and amount to be paid
void display()Displays the name of the customer, cost, discount and amount to be paid

Write a program to compute the discount according to the given conditions and display the output as per the given format.

List PriceRate of discount
Up to ₹5,000No discount
From ₹5,001 to ₹10,00010% on the list price
From ₹10,001 to ₹15,00015% on the list price
Above ₹15,00020% on the list price

Output:

Name of the customer  Discount    Amount to be paid
....................  ........    .................
....................  ........    .................
import java.util.Scanner;

public class Discount
{
    private int cost;
    private String name;
    private double dc;
    private double amt;
    
    public void input() {
        Scanner in = new Scanner(System.in);
        System.out.print("Enter customer name: ");
        name = in.nextLine();
        System.out.print("Enter article cost: ");
        cost = in.nextInt();
    }
    
    public void cal() {
        if (cost <= 5000)
            dc = 0;
        else if (cost <= 10000)
            dc = cost * 0.1;
        else if (cost <= 15000)
            dc = cost * 0.15;
        else
            dc = cost * 0.2;
            
        amt = cost - dc;
    }
    
    public void display() {
        System.out.println("Name of the customer\tDiscount\tAmount to be paid");
        System.out.println(name + "\t" + dc + "\t" + amt);   
    }
    
    public static void main(String args[]) {
        Discount obj = new Discount();
        obj.input();
        obj.cal();
        obj.display();
    }
}
Output
BlueJ output of Discount.java

Question 5

Define a class Telephone having the following description:

Data MembersPurpose
int prv, preto store the previous and present meter readings
int callto store the calls made (i.e. pre - prv)
String nameto store name of the consumer
double amtto store the amount
double totalto store the total amount to be paid
Member functionsPurpose
void input()Stores the previous reading, present reading and name of the consumer
void cal()Calculates the amount and total amount to be paid
void display()Displays the name of the consumer, calls made, amount and total amount to be paid

Write a program to compute the monthly bill to be paid according to the given conditions and display the output as per the given format.

Calls madeRate
Up to 100 callsNo charge
For the next 100 calls90 paise per call
For the next 200 calls80 paise per call
More than 400 calls70 paise per call

However, every consumer has to pay ₹180 per month as monthly rent for availing the service.

Output:

Name of the customer    Calls made  Amount to be paid
....................    ..........  .................
....................    ..........  .................
import java.util.Scanner;

public class Telephone
{
    private int prv;
    private int pre;
    private int call;
    private String name;
    private double amt;
    private double total;
    
    public void input() {
        Scanner in = new Scanner(System.in);
        System.out.print("Enter Customer Name: ");
        name = in.nextLine();
        System.out.print("Enter previous reading: ");
        prv = in.nextInt();
        System.out.print("Enter present reading: ");
        pre = in.nextInt();
    }
    
    public void cal() {
        call = pre - prv;
        if (call <= 100)
            amt = 0;
        else if (call <= 200)
            amt = (call - 100) * 0.9;
        else if (call <= 400)
            amt = (100 * 0.9) + (call - 200) * 0.8;
        else
            amt = (100 * 0.9) + (200 * 0.8) + ((call - 400) * 0.7);
            
        total = amt + 180;
    }
    
    public void display() {
        System.out.println("Name of the customer\tCalls made\tAmount to be paid");
        System.out.println(name + "\t" + call + "\t" + total);
    }
    
    public static void main(String args[]) {
        Telephone obj = new Telephone();
        obj.input();
        obj.cal();
        obj.display();
    }
}
Output
BlueJ output of Telephone.java

Question 6

Define a class Interest having the following description:

Data MembersPurpose
int pto store principal (sum)
int rto store rate
int tto store time
double interestto store the interest to be paid
double amtto store the amount to be paid
Member functionsPurpose
void input()Stores the principal, rate, time
void cal()Calculates the interest and amount to be paid
void display()Displays the principal, interest and amount to be paid

Write a program to compute the interest according to the given conditions and display the output.

TimeRate of interest
For 1 year6.5%
For 2 years7.5%
For 3 years8.5%
For 4 years or more9.5%

(Note: Time to be taken only in whole years)

import java.util.Scanner;

public class Interest
{
    private int p;
    private float r;
    private int t;
    private double interest;
    private double amt;
    
    public void input() {
        Scanner in = new Scanner(System.in);
        System.out.print("Enter principal: ");
        p = in.nextInt();
        System.out.print("Enter time: ");
        t = in.nextInt();
    }
    
    public void cal() {
        if (t == 1)
            r = 6.5f;
        else if (t == 2)
            r = 7.5f;
        else if (t == 3)
            r = 8.5f;
        else
            r = 9.5f;
            
        interest = (p * r * t) / 100.0;
        amt = p + interest;
    }
    
    public void display() {
        System.out.println("Principal: " + p);
        System.out.println("Interest: " + interest);
        System.out.println("Amount Payable: " + amt);
    }
    
    public static void main(String args[]) {
        Interest obj = new Interest();
        obj.input();
        obj.cal();
        obj.display();
    }
}
Output
BlueJ output of Interest.java

Question 7

Define a class Library having the following description:

Data MembersPurpose
String nameto store name of the book
int priceto store the printed price of the book
int dayto store the number of days for which fine is to be paid
double fineto store the fine to be paid
Member functionsPurpose
void input()To accept the name of the book and printed price of the book
void cal()Calculates the fine to be paid
void display()Displays the name of the book and fine to be paid

Write a program to compute the fine according to the given conditions and display the fine to be paid.

DaysFine
First seven days25 paise per day
Eight to fifteen days40 paise per day
Sixteen to thirty days60 paise per day
More than thirty days80 paise per day
import java.util.Scanner;

public class Library
{
    private String name;
    private int price;
    private int day;
    private double fine;
    
    public void input() {
        Scanner in = new Scanner(System.in);
        System.out.print("Enter name of the book: ");
        name = in.nextLine();
        System.out.print("Enter printed price of the book: ");
        price = in.nextInt();
        System.out.print("For how many days fine needs to be paid: ");
        day = in.nextInt();
    }
    
    public void cal() {
        if (day <= 7)
            fine = day * 0.25;
        else if (day <= 15)
            fine = (7 * 0.25) + ((day - 7) * 0.4);
        else if (day <= 30)
            fine = (7 * 0.25) + (8 * 0.4) + ((day - 15) * 0.6);
        else
            fine = (7 * 0.25) + (8 * 0.4) + (15 * 0.6) + ((day - 30) * 0.8);
    }
    
    public void display() {
        System.out.println("Name of the book: " + name);
        System.out.println("Fine to be paid: " + fine);
    }
    
    public static void main(String args[]) {
        Library obj = new Library();
        obj.input();
        obj.cal();
        obj.display();
    }
}
Output
BlueJ output of Library.java

Question 8

Bank charges interest for the vehicle loan as given below:

Number of yearsRate of interest
Up to 5 years15%
More than 5 and up to 10 years12%
Above 10 years10%

Write a program to model a class with the specifications given below:

Class name: Loan

Data MembersPurpose
int timeTime for which loan is sanctioned
double principalAmount sanctioned
double rateRate of interest
double interestTo store the interest
double amtAmount to pay after given time
Member MethodsPurpose
void getdata()To accept principal and time
void calculate()To find interest and amount.
Interest = (Principal*Rate*Time)/100
Amount = Principal + Interest
void display()To display interest and amount
import java.util.Scanner;

public class Loan
{
    private int time;
    private double principal;
    private double rate;
    private double interest;
    private double amt;
    
    public void getdata() {
        Scanner in = new Scanner(System.in);
        System.out.print("Enter principal: ");
        principal = in.nextInt();
        System.out.print("Enter time: ");
        time = in.nextInt();
    }
    
    public void calculate() {
        if (time <= 5)
            rate = 15.0;
        else if (time <= 10)
            rate = 12.0;
        else
            rate = 10.0;
            
        interest = (principal * rate * time) / 100.0;
        amt = principal + interest;
    }
    
    public void display() {
        System.out.println("Interest = " + interest);
        System.out.println("Amount Payable = " + amt);
    }
    
    public static void main(String args[]) {
        Loan obj = new Loan();
        obj.getdata();
        obj.calculate();
        obj.display();
    }
}
Output
BlueJ output of Loan.java

Question 9

Hero Honda has increased the cost of its vehicles as per the type of the engine using the following criteria:

Type of EngineRate of increment
2 stroke10% of the cost
4 stroke12% of the cost

Write a program by using a class to find the new cost as per the given specifications:

Class name: Honda

Data MembersPurpose
int typeTo accept type of engine 2 stroke or 4 stroke
int costTo accept previous cost
Member MethodsPurpose
void gettype()To accept the type of engine and previous cost
void find()To find the new cost as per the criteria given above
void printcost()To print the type and new cost of the vehicle
import java.util.Scanner;

public class Honda
{
    private int type;
    private int cost;
    private double newCost;
    
    public void gettype() {
        Scanner in = new Scanner(System.in);
        System.out.print("Enter type: ");
        type = in.nextInt();
        System.out.print("Enter cost: ");
        cost = in.nextInt();
    }
    
    public void find() {
        switch (type) {
            case 2:
            newCost = cost + (cost * 0.1);
            break;
            
            case 4:
            newCost = cost + (cost * 0.12);
            break;
            
            default:
            System.out.println("Incorrect type");
            break;
        }
    }
    
    public void printcost() {
        System.out.println("Type: " + type);
        System.out.println("New cost: " + newCost);
    }
    
    public static void main(String args[]) {
        Honda obj = new Honda();
        obj.gettype();
        obj.find();
        obj.printcost();
    }
}
Output
BlueJ output of Honda.java

Question 10

Define a class called 'Mobike' with the following specifications:

Data MembersPurpose
int bnoTo store the bike number
int phnoTo store the phone number of the customer
String nameTo store the name of the customer
int daysTo store the number of days the bike is taken on rent
int chargeTo calculate and store the rental charge
Member MethodsPurpose
void input()To input and store the details of the customer
void compute()To compute the rental charge
void display()To display the details in the given format

The rent for a mobike is charged on the following basis:

DaysCharge
For first five days₹500 per day
For next five days₹400 per day
Rest of the days₹200 per day

Output:

Bike No.    Phone No.   Name    No. of days     Charge       
xxxxxxx     xxxxxxxx    xxxx        xxx         xxxxxx       
import java.util.Scanner;

public class Mobike
{
    private int bno;
    private int phno;
    private int days;
    private int charge;
    private String name;
    
    public void input() {
        Scanner in = new Scanner(System.in);
        System.out.print("Enter Customer Name: ");
        name = in.nextLine();
        System.out.print("Enter Customer Phone Number: ");
        phno = in.nextInt();
        System.out.print("Enter Bike Number: ");
        bno = in.nextInt();
        System.out.print("Enter Number of Days: ");
        days = in.nextInt();
    }
    
    public void compute() {
        if (days <= 5)
            charge = days * 500;
        else if (days <= 10)
            charge = (5 * 500) + ((days - 5) * 400);
        else
            charge = (5 * 500) + (5 * 400) + ((days - 10) * 200);
    }
    
    public void display() {
        System.out.println("Bike No.\tPhone No.\tName\tNo. of days \tCharge");
        System.out.println(bno + "\t" + phno + "\t" + name + "\t" + days 
            + "\t" + charge);
    }
    
    public static void main(String args[]) {
        Mobike obj = new Mobike();
        obj.input();
        obj.compute();
        obj.display();
    }
}
Output
BlueJ output of Mobike.java

Question 11

Write a program using a class with the following specifications:

Class name: Caseconvert

Data MembersPurpose
String strTo store the string
Member MethodsPurpose
void getstr()to accept a string
void convert()to obtain a string after converting each upper case letter into lower case and vice versa
void display()to print the converted string
import java.util.Scanner;

public class Caseconvert
{
    private String str;
    private String convStr;
    
    public void getstr() {
        Scanner in = new Scanner(System.in);
        System.out.print("Enter the string: ");
        str = in.nextLine();
    }
    
    public void convert() {
        char arr[] = new char[str.length()];
        for (int i = 0; i < str.length(); i++) {
            if (Character.isUpperCase(str.charAt(i)))
                arr[i] = Character.toLowerCase(str.charAt(i));
            else if (Character.isLowerCase(str.charAt(i)))
                arr[i] = Character.toUpperCase(str.charAt(i));
            else
                arr[i] = str.charAt(i);
        }
        convStr = new String(arr);
    }
    
    public void display() {
        System.out.println("Converted String:");
        System.out.println(convStr);
    }
    
    public static void main(String args[]) {
        Caseconvert obj = new Caseconvert();
        obj.getstr();
        obj.convert();
        obj.display();
    }
}
Output
BlueJ output of Caseconvert.java

Question 12

Write a program by using a class with the following specifications:

Class name: Vowel

Data MembersPurpose
String sTo store the string
int cTo count vowels
Member MethodsPurpose
void getstr()to accept a string
void getvowel()to count the number of vowels
void display()to print the number of vowels
import java.util.Scanner;

public class Vowel
{
    private String s;
    private int c;
    
    public void getstr() {
        Scanner in = new Scanner(System.in);
        System.out.print("Enter the string: ");
        s = in.nextLine();
    }
    
    public void getvowel() {
        String temp = s.toUpperCase();
        c = 0;
        for (int i = 0; i < temp.length(); i++) {
            char ch = temp.charAt(i);
            if (ch == 'A' || ch == 'E' || ch == 'I' || ch == 'O'
             || ch == 'U')
                c++;
        }
    }
    
    public void display() {
        System.out.println("No. of Vowels = " + c);
    }
    
    public static void main(String args[]) {
        Vowel obj = new Vowel();
        obj.getstr();
        obj.getvowel();
        obj.display();
    }
}
Output
BlueJ output of Vowel.java

Question 13

A bookseller maintains record of books belonging to the various publishers. He uses a class with the specifications given below:

Class name — Stock

Data Members:

  1. String title — Contains title of the book
  2. String author — Contains author name
  3. String pub — Contains publisher's name
  4. int noc — Number of copies

Member Methods:

  1. void getdata() — To accept title, author, publisher's name and the number of copies.
  2. void purchase(int t, String a, String p, int n) — To check the existence of the book in the stock by comparing total, author's and publisher's name. Also check whether noc >n or not. If yes, maintain the balance as noc-n, otherwise display book is not available or stock is under flowing.

Write a program to perform the task given above.

import java.util.Scanner;

public class Stock
{
    private String title;
    private String author;
    private String pub;
    private int noc;
    
    public void getdata() {
        Scanner in = new Scanner(System.in);
        System.out.print("Enter book title: ");
        title = in.nextLine();
        System.out.print("Enter book author: ");
        author = in.nextLine();
        System.out.print("Enter book publisher: ");
        pub = in.nextLine();
        System.out.print("Enter no. of copies: ");
        noc = in.nextInt();
    }
    
    public void purchase(String t, String a, String p, int n) {
        if (title.equalsIgnoreCase(t) &&
            author.equalsIgnoreCase(a) &&
            pub.equalsIgnoreCase(p)) {
                if (noc > n) {
                    noc -= n;
                    System.out.println("Updated noc = " + noc);
                }
                else {
                    System.out.println("Stock is under flowing");
                }
        }
        else {
            System.out.println("Book is not available");
        }
    }
    
    public static void main(String args[]) {
        Stock obj = new Stock();
        obj.getdata();
        obj.purchase("wings of fire", "APJ Abdul Kalam",
            "universities press", 10);
        obj.purchase("Ignited Minds", "APJ Abdul Kalam",
            "Penguin", 5);
        obj.purchase("wings of fire", "APJ Abdul Kalam",
            "universities press", 20);
    }
}
Output
BlueJ output of Stock.java

Question 14

Write a program by using class with the following specifications:

Class name — Characters

Data Members:

  1. String str — To store the string

Member Methods:

  1. void input (String st) — to assign st to str
  2. void check_print() — to check and print the following:
    (i) number of letters
    (ii) number of digits
    (iii) number of uppercase characters
    (iv) number of lowercase characters
    (v) number of special characters
import java.util.Scanner;

public class Characters
{
    private String str;
    
    public void input(String st) {
        str = st;
    }
    
    public void check_print() {
        int cLetters = 0, cDigits = 0, cUpper = 0, cLower = 0,
            cSpecial = 0;
            
        for (int i = 0; i < str.length(); i++) {
            char ch = str.charAt(i);
            if (ch >= 'A' && ch <= 'Z') {
                cLetters++;
                cUpper++;
            }
            else if (ch >= 'a' && ch <= 'z') {
                cLetters++;
                cLower++;
            }
            else if (ch >= '0' && ch <= '9') {
                cDigits++;
            }
            else if (!Character.isWhitespace(ch)) {
                cSpecial++;
            }
        }
        
        System.out.println("Number of Letters: " + cLetters);
        System.out.println("Number of Digits: " + cDigits);
        System.out.println("Number of Upppercase Characters: " 
            + cUpper);
        System.out.println("Number of Lowercase Characters: " 
            + cLower);
        System.out.println("Number of Special Characters: " 
            + cSpecial);
    }
    
    public static void main(String args[]) {
        Scanner in = new Scanner(System.in);
        System.out.print("Enter the string: ");
        String s = in.nextLine();
        Characters obj = new Characters();
        obj.input(s);
        obj.check_print();
    }
}
Output
BlueJ output of Characters.java

Question 15

Define a class Student with the following specifications:

Data MembersPurpose
String nameTo store the name of the student
int engTo store marks in English
int hnTo store marks in Hindi
int mtsTo store marks in Maths
double totalTo store total marks
double avgTo store average marks
Member MethodsPurpose
void accept()To input marks in English, Hindi and Maths
void compute()To calculate total marks and average of 3 subjects
void display()To show all the details viz. name, marks, total and average

Write a program to create an object and invoke the above methods.

import java.util.Scanner;

public class Student
{
    private String name;
    private int eng;
    private int hn;
    private int mts;
    private double total;
    private double avg;
    
    public void accept() {
        Scanner in = new Scanner(System.in);
        System.out.print("Enter student name: ");
        name = in.nextLine();
        System.out.print("Enter marks in English: ");
        eng = in.nextInt();
        System.out.print("Enter marks in Hindi: ");
        hn = in.nextInt();
        System.out.print("Enter marks in Maths: ");
        mts = in.nextInt();
    }
    
    public void compute() {
        total = eng + hn + mts;
        avg = total / 3.0;
    }
    
    public void display() {
        System.out.println("Name: " + name);
        System.out.println("Marks in English: " + eng);
        System.out.println("Marks in Hindi: " + hn);
        System.out.println("Marks in Maths: " + mts);
        System.out.println("Total Marks: " + total);
        System.out.println("Average Marks: " + avg);
    }
    
    public static void main(String args[]) {
        Student obj = new Student();
        obj.accept();
        obj.compute();
        obj.display();
    }
}
Output
BlueJ output of Student.java

Question 16

Define a class called ParkingLot with the following description:

Data MembersPurpose
int vnoTo store the vehicle number
int hoursTo store the number of hours the vehicle is parked in the parking lot
double billTo store the bill amount
Member MethodsPurpose
void input( )To input the vno and hours
void calculate( )To compute the parking charge at the rate ₹3 for the first hour or the part thereof and ₹1.50 for each additional hour or part thereof.
void display()To display the detail

Write a main method to create an object of the class and call the above methods.

import java.util.Scanner;

public class ParkingLot
{
    private int vno;
    private int hours;
    private double bill;
    
    public void input() {
        Scanner in = new Scanner(System.in);
        System.out.print("Enter vehicle number: ");
        vno = in.nextInt();
        System.out.print("Enter hours: ");
        hours = in.nextInt();
    }
    
    public void calculate() {
        if (hours <= 1)
            bill = 3;
        else
            bill = 3 + (hours - 1) * 1.5;
    }
    
    public void display() {
        System.out.println("Vehicle number: " + vno);
        System.out.println("Hours: " + hours);
        System.out.println("Bill: " + bill);
    }
    
    public static void main(String args[]) {
        ParkingLot obj = new ParkingLot();
        obj.input();
        obj.calculate();
        obj.display();
    }
}
Output
BlueJ output of ParkingLot.java

Question 17

Define a class ElectricityBill with the following specifications:

Data MembersPurpose
String nstores the name of the customer
int unitsstores the number of units consumed
double billstores the amount to be paid
Member MethodsPurpose
void accept()to store the name of the customer and number of units consumed
void calculate()to calculate the bill as per the tariff table given below
void print()to prints the details in the format given below

Tariff Table

Number of unitsRate per unit
First 100 units₹2.00
Next 200 units₹3.00
Above 300 units₹5.00

A surcharge of 2.5% charged if the number of units consumed is above 300 units.

Output:
Name of the customer: _________________________
Number of units consumed: _____________________
Bill amount: ________________

Write a main method to create an object of the class and call the above member methods.

import java.util.Scanner;

public class ElectricityBill
{
    private String n;
    private int units;
    private double bill;
    
    public void accept() {
        Scanner in = new Scanner(System.in);
        System.out.print("Enter customer name: ");
        n = in.nextLine();
        System.out.print("Enter units consumed: ");
        units = in.nextInt();
    }
    
    public void calculate() {
        if (units <= 100)
            bill = units * 2;
        else if (units <= 300)
            bill = 200 + (units - 100) * 3;
        else {
            double amt = 200 + 600 + (units - 300) * 5;
            double surcharge = (amt * 2.5) / 100.0;
            bill = amt + surcharge;
        }
    }
    
    public void print() {
        System.out.println("Name of the customer\t\t: " + n);
        System.out.println("Number of units consumed\t: " + units);
        System.out.println("Bill amount\t\t\t: " + bill);
    }
    
    public static void main(String args[]) {
        ElectricityBill obj = new ElectricityBill();
        obj.accept();
        obj.calculate();
        obj.print();
    }
}
Output
BlueJ output of ElectricityBill.java

Question 18

Design a class RailwayTicket with following description:

Data MembersPurpose
String nameTo store the name of the customer
String coachTo store the type of coach customer wants to travel
long mob noTo store customer's mobile number
int amtTo store basic amount of ticket
int totalamtTo store the amount to be paid after updating the original amount
Member MethodsPurpose
void accept()To take input for name, coach, mobile number and amount
void update()To update the amount as per the coach selected (extra amount to be added in the amount as per the table below)
void display()To display all details of a customer such as name, coach, total amount and mobile number
Type of CoachesAmount
First_AC₹700
Second_AC₹500
Third_AC₹250
SleeperNone

Write a main method to create an object of the class and call the above member methods.

import java.util.Scanner;

public class RailwayTicket
{
    private String name;
    private String coach;
    private long mobno;
    private int amt;
    private int totalamt;
    
    private void accept() {
        Scanner in = new Scanner(System.in);
        System.out.print("Enter name: ");
        name = in.nextLine();
        System.out.print("Enter coach: ");
        coach = in.nextLine();
        System.out.print("Enter mobile no: ");
        mobno = in.nextLong();
        System.out.print("Enter amount: ");
        amt = in.nextInt();
    }
    
    private void update() {
        if(coach.equalsIgnoreCase("First_AC"))
            totalamt = amt + 700;
        else if(coach.equalsIgnoreCase("Second_AC"))
            totalamt = amt + 500;
        else if(coach.equalsIgnoreCase("Third_AC"))
            totalamt = amt + 250;
        else if(coach.equalsIgnoreCase("Sleeper"))
            totalamt = amt;
    }
    
    private void display() {
        System.out.println("Name: " + name);
        System.out.println("Coach: " + coach);
        System.out.println("Total Amount: " + totalamt);
        System.out.println("Mobile number: " + mobno);
    }
    
    public static void main(String args[]) {
        RailwayTicket obj = new RailwayTicket();
        obj.accept();
        obj.update();
        obj.display();
    }
}
Output
BlueJ output of RailwayTicket.java
PrevNext