0% found this document useful (0 votes)
4 views4 pages

Untitled Document-1

The document contains a Java implementation of an employee management system with classes for Employee, Manager, Developer, and Programmer. Each class includes methods for calculating bonuses, displaying information, and performing specific tasks related to their roles. The main method demonstrates the creation of instances for each employee type and showcases their functionalities.

Uploaded by

ganeshchoti420
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
4 views4 pages

Untitled Document-1

The document contains a Java implementation of an employee management system with classes for Employee, Manager, Developer, and Programmer. Each class includes methods for calculating bonuses, displaying information, and performing specific tasks related to their roles. The main method demonstrates the creation of instances for each employee type and showcases their functionalities.

Uploaded by

ganeshchoti420
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 4

// Base class for Employee

class Employee {
protected String name;
protected String address;
protected double salary;
protected String jobTitle;

public Employee(String name, String address, double salary, String jobTitle) {


this.name = name;
this.address = address;
this.salary = salary;
this.jobTitle = jobTitle;
}

// Method to calculate the bonus (basic version)


public double calculateBonus() {
return salary * 0.05; // 5% bonus for all employees
}

// Method to generate a performance report


public void generatePerformanceReport() {
System.out.println("Performance Report for " + name + ": Excellent performance.");
}

// Display basic information about the employee


public void displayInfo() {
System.out.println("Name: " + name);
System.out.println("Address: " + address);
System.out.println("Salary: " + salary);
System.out.println("Job Title: " + jobTitle);
}
}

// Manager subclass
class Manager extends Employee {
private int numOfProjectsManaged;

public Manager(String name, String address, double salary, String jobTitle, int
numOfProjectsManaged) {
super(name, address, salary, jobTitle);
this.numOfProjectsManaged = numOfProjectsManaged;
}

// Override method to calculate bonus (managers get a higher bonus)


@Override
public double calculateBonus() {
return salary * 0.1; // 10% bonus for managers
}

// Method to manage projects


public void manageProjects() {
System.out.println(name + " is managing " + numOfProjectsManaged + " projects.");
}

// Override displayInfo to include projects managed


@Override
public void displayInfo() {
super.displayInfo();
System.out.println("Number of Projects Managed: " + numOfProjectsManaged);
}
}

// Developer subclass
class Developer extends Employee {
private String programmingLanguage;

public Developer(String name, String address, double salary, String jobTitle, String
programmingLanguage) {
super(name, address, salary, jobTitle);
this.programmingLanguage = programmingLanguage;
}

// Override method to calculate bonus (developers get a standard bonus)


@Override
public double calculateBonus() {
return salary * 0.07; // 7% bonus for developers
}

// Method to develop code


public void developCode() {
System.out.println(name + " is developing code in " + programmingLanguage + ".");
}

// Override displayInfo to include programming language


@Override
public void displayInfo() {
super.displayInfo();
System.out.println("Programming Language: " + programmingLanguage);
}
}

// Programmer subclass (inherits from Developer)


class Programmer extends Developer {
private String project;

public Programmer(String name, String address, double salary, String jobTitle, String
programmingLanguage, String project) {
super(name, address, salary, jobTitle, programmingLanguage);
this.project = project;
}

// Override method to calculate bonus (programmers get a smaller bonus than


developers)
@Override
public double calculateBonus() {
return salary * 0.06; // 6% bonus for programmers
}

// Method to work on a specific project


public void workOnProject() {
System.out.println(name + " is working on the project: " + project);
}

// Override displayInfo to include project name


@Override
public void displayInfo() {
super.displayInfo();
System.out.println("Project: " + project);
}
}

public class Dim {


public static void main(String[] args) {
// Create instances of each class
Manager manager = new Manager("Nithin", "123 Main St", 80000, "Project Manager", 5);
Developer developer = new Developer("Rajesh", "456 Oak Rd", 70000, "Software
Developer", "Java");
Programmer programmer = new Programmer("Bunny", "789 Pine Ln", 60000,
"Programmer", "Python", "AI Project");

// Display information about each employee


manager.displayInfo();
System.out.println("Bonus: " + manager.calculateBonus());
manager.generatePerformanceReport();
manager.manageProjects();
System.out.println("\n");

developer.displayInfo();
System.out.println("Bonus: " + developer.calculateBonus());
developer.generatePerformanceReport();
developer.developCode();

System.out.println("\n");

programmer.displayInfo();
System.out.println("Bonus: " + programmer.calculateBonus());
programmer.generatePerformanceReport();
programmer.workOnProject();
}
}

You might also like