Tuesday, 4 March 2025

Write a java program to create a base class person (name, address, phoneno). Derive a class employee (eno,ename) from person derive a class manager (designation, department, basic-salary) from Employee. Accept all details of 'n' managers and display manager having highest basic salary.

import java.util.Scanner;


class Person {

    String name, address;

    String phoneNo;

    

    Person(String name, String address, String phoneNo) {

        this.name = name;

        this.address = address;

        this.phoneNo = phoneNo;

    }

}


class Employee extends Person {

    int eno;

    String ename;

    

    Employee(int eno, String ename, String name, String address, String phoneNo) {

        super(name, address, phoneNo);

        this.eno = eno;

        this.ename = ename;

    }

}


class Manager extends Employee {

    String designation, department;

    double basicSalary;

    

    Manager(int eno, String ename, String name, String address, String phoneNo, String designation, String department, double basicSalary) {

        super(eno, ename, name, address, phoneNo);

        this.designation = designation;

        this.department = department;

        this.basicSalary = basicSalary;

    }

    

    void display() {

        System.out.println("Manager Details:");

        System.out.println("Employee No: " + eno);

        System.out.println("Name: " + ename);

        System.out.println("Address: " + address);

        System.out.println("Phone No: " + phoneNo);

        System.out.println("Designation: " + designation);

        System.out.println("Department: " + department);

        System.out.println("Basic Salary: " + basicSalary);

    }

}


public class ManagerDetails {

    public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);

        

        System.out.print("Enter number of managers: ");

        int n = sc.nextInt();

        sc.nextLine();

        

        Manager[] managers = new Manager[n];

        

        for (int i = 0; i < n; i++) {

            System.out.println("Enter details of Manager " + (i + 1) + ":");

            System.out.print("Enter Employee No: ");

            int eno = sc.nextInt();

            sc.nextLine();

            System.out.print("Enter Name: ");

            String ename = sc.nextLine();

            System.out.print("Enter Address: ");

            String address = sc.nextLine();

            System.out.print("Enter Phone No: ");

            String phoneNo = sc.nextLine();

            System.out.print("Enter Designation: ");

            String designation = sc.nextLine();

            System.out.print("Enter Department: ");

            String department = sc.nextLine();

            System.out.print("Enter Basic Salary: ");

            double basicSalary = sc.nextDouble();

            sc.nextLine();

            

managers[i] = new Manager(eno, ename, ename, address, phoneNo, designation, department, basicSalary);

        }

        

            Manager highestSalaryManager = managers[0];

        for (int i = 1; i < n; i++) {

         if (managers[i].basicSalary > highestSalaryManager.basicSalary) {

                highestSalaryManager = managers[i];

            }

        }

        

        System.out.println("\nManager with Highest Basic Salary:");

        highestSalaryManager.display();

        

        sc.close();

    }

}