Java 教职工工资管理系统:实现教师、实验人员和行政人员的工资计算

本项目使用 Java 语言编写,实现了一个简单的教职工工资管理系统。该系统能够处理不同类型的员工,包括教师、实验人员、行政人员以及兼职人员,并根据不同的工资计算规则计算其工资。

系统功能

  • 添加员工:支持添加不同类型的员工,包括教师、实验人员、行政人员以及兼职人员。
  • 删除员工:支持根据员工编号或姓名删除员工。
  • 查询员工工资:支持根据员工编号或姓名查询员工工资。

代码实现

以下代码实现了教职工工资管理系统的核心功能:

Employee.java

public abstract class Employee {
    private String name;
    private String id;
    private double basicSalary;

    public Employee(String name, String id, double basicSalary) {
        this.name = name;
        this.id = id;
        this.basicSalary = basicSalary;
    }

    public String getName() {
        return name;
    }

    public String getId() {
        return id;
    }

    public double getBasicSalary() {
        return basicSalary;
    }

    public abstract double getSalary();
}

Teacher.java

public class Teacher extends Employee {
    private int teachingHours;

    public Teacher(String name, String id) {
        super(name, id, 1000);
        this.teachingHours = 0;
    }

    public void setTeachingHours(int teachingHours) {
        this.teachingHours = teachingHours;
    }

    @Override
    public double getSalary() {
        return getBasicSalary() + teachingHours * 40;
    }
}

LabStaff.java

public class LabStaff extends Employee {
    private double labAllowance;

    public LabStaff(String name, String id) {
        super(name, id, 850);
        this.labAllowance = 0;
    }

    public void setLabAllowance(double labAllowance) {
        this.labAllowance = labAllowance;
    }

    @Override
    public double getSalary() {
        return getBasicSalary() + labAllowance;
    }
}

AdminStaff.java

public class AdminStaff extends Employee {
    private double adminAllowance;

    public AdminStaff(String name, String id) {
        super(name, id, 950);
        this.adminAllowance = 350;
    }

    public void setAdminAllowance(double adminAllowance) {
        this.adminAllowance = adminAllowance;
    }

    @Override
    public double getSalary() {
        return getBasicSalary() + adminAllowance;
    }
}

PartTimeTeacherLabStaff.java

public class PartTimeTeacherLabStaff extends Employee {
    private int teachingHours;
    private double labAllowance;

    public PartTimeTeacherLabStaff(String name, String id) {
        super(name, id, 1000);
        this.teachingHours = 0;
        this.labAllowance = 250;
    }

    public void setTeachingHours(int teachingHours) {
        this.teachingHours = teachingHours;
    }

    public void setLabAllowance(double labAllowance) {
        this.labAllowance = labAllowance;
    }

    @Override
    public double getSalary() {
        return getBasicSalary() + teachingHours * 40 + labAllowance;
    }
}

PartTimeTeacherAdminStaff.java

public class PartTimeTeacherAdminStaff extends Employee {
    private int teachingHours;
    private double adminAllowance;

    public PartTimeTeacherAdminStaff(String name, String id) {
        super(name, id, 1000);
        this.teachingHours = 0;
        this.adminAllowance = 350;
    }

    public void setTeachingHours(int teachingHours) {
        this.teachingHours = teachingHours;
    }

    public void setAdminAllowance(double adminAllowance) {
        this.adminAllowance = adminAllowance;
    }

    @Override
    public double getSalary() {
        return getBasicSalary() + teachingHours * 40 + adminAllowance;
    }
}

SalaryManagementSystem.java

import java.util.ArrayList;
import java.util.Scanner;

public class SalaryManagementSystem {
    private ArrayList<Employee> employees;

    public SalaryManagementSystem() {
        employees = new ArrayList<>();
    }

    public void addEmployee(Employee employee) {
        employees.add(employee);
    }

    public void removeEmployee(String id) {
        for (Employee employee : employees) {
            if (employee.getId().equals(id)) {
                employees.remove(employee);
                break;
            }
        }
    }

    public void removeEmployeeByName(String name) {
        for (Employee employee : employees) {
            if (employee.getName().equals(name)) {
                employees.remove(employee);
                break;
            }
        }
    }

    public Employee findEmployeeById(String id) {
        for (Employee employee : employees) {
            if (employee.getId().equals(id)) {
                return employee;
            }
        }
        return null;
    }

    public Employee findEmployeeByName(String name) {
        for (Employee employee : employees) {
            if (employee.getName().equals(name)) {
                return employee;
            }
        }
        return null;
    }

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        SalaryManagementSystem system = new SalaryManagementSystem();

        while (true) {
            System.out.println("请选择操作:");
            System.out.println("1. 添加员工");
            System.out.println("2. 删除员工");
            System.out.println("3. 查询员工工资");
            System.out.println("4. 退出程序");

            int choice = scanner.nextInt();
            scanner.nextLine();

            switch (choice) {
                case 1:
                    System.out.println("请选择员工类型:");
                    System.out.println("1. 教师");
                    System.out.println("2. 实验人员");
                    System.out.println("3. 行政人员");
                    System.out.println("4. 教师和兼职实验室人员");
                    System.out.println("5. 教师和兼职行政人员");
                    int type = scanner.nextInt();
                    scanner.nextLine();

                    System.out.println("请输入员工姓名:");
                    String name = scanner.nextLine();

                    System.out.println("请输入员工编号:");
                    String id = scanner.nextLine();

                    Employee employee = null;
                    if (type == 1) {
                        employee = new Teacher(name, id);
                    } else if (type == 2) {
                        employee = new LabStaff(name, id);
                    } else if (type == 3) {
                        employee = new AdminStaff(name, id);
                    } else if (type == 4) {
                        employee = new PartTimeTeacherLabStaff(name, id);
                    } else if (type == 5) {
                        employee = new PartTimeTeacherAdminStaff(name, id);
                    }

                    if (employee != null) {
                        system.addEmployee(employee);
                        System.out.println("员工添加成功!");
                    } else {
                        System.out.println("员工添加失败!");
                    }
                    break;
                case 2:
                    System.out.println("请选择删除方式:");
                    System.out.println("1. 根据员工编号删除");
                    System.out.println("2. 根据员工姓名删除");
                    int deleteChoice = scanner.nextInt();
                    scanner.nextLine();

                    if (deleteChoice == 1) {
                        System.out.println("请输入员工编号:");
                        String deleteId = scanner.nextLine();
                        system.removeEmployee(deleteId);
                    } else if (deleteChoice == 2) {
                        System.out.println("请输入员工姓名:");
                        String deleteName = scanner.nextLine();
                        system.removeEmployeeByName(deleteName);
                    }

                    System.out.println("员工删除成功!");
                    break;
                case 3:
                    System.out.println("请选择查询方式:");
                    System.out.println("1. 根据员工编号查询");
                    System.out.println("2. 根据员工姓名查询");
                    int findChoice = scanner.nextInt();
                    scanner.nextLine();

                    if (findChoice == 1) {
                        System.out.println("请输入员工编号:");
                        String findId = scanner.nextLine();
                        Employee findEmployee = system.findEmployeeById(findId);
                        if (findEmployee != null) {
                            System.out.println("员工姓名:" + findEmployee.getName());
                            System.out.println("员工工资:" + findEmployee.getSalary());
                        } else {
                            System.out.println("未找到该员工!");
                        }
                    } else if (findChoice == 2) {
                        System.out.println("请输入员工姓名:");
                        String findName = scanner.nextLine();
                        Employee findEmployee = system.findEmployeeByName(findName);
                        if (findEmployee != null) {
                            System.out.println("员工编号:" + findEmployee.getId());
                            System.out.println("员工工资:" + findEmployee.getSalary());
                        } else {
                            System.out.println("未找到该员工!");
                        }
                    }
                    break;
                case 4:
                    System.out.println("程序即将退出,谢谢使用!");
                    System.exit(0);
                    break;
                default:
                    System.out.println("输入错误,请重新输入!");
                    break;
            }
        }
    }
}

说明

  1. 代码中使用了面向对象编程思想,将员工抽象成一个 Employee 类,并定义了不同类型的员工类继承 Employee 类。
  2. 代码中使用了 ArrayList 存储员工信息,方便进行添加、删除和查询操作。
  3. 代码中使用了 Scanner 类获取用户输入,并在控制台输出结果。

扩展功能

该系统可以进一步扩展功能,例如:

  • 增加数据库操作,将员工信息存储在数据库中,提高系统的可靠性和数据持久性。
  • 增加工资发放功能,将员工工资信息记录下来,以便进行工资发放。
  • 增加用户权限管理,将系统功能分为不同的权限等级,以便进行安全管理。

总结

该系统提供了一个简单的教职工工资管理解决方案,能够有效地管理不同类型的员工信息并计算他们的工资。开发者可以根据自己的需求进行扩展和改进。

Java 教职工工资管理系统:实现教师、实验人员和行政人员的工资计算

原文地址: https://www.cveoy.top/t/topic/oTaz 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录