Java 教职工工资管理系统:实现教师、实验人员和行政人员的工资计算
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;
}
}
}
}
说明
- 代码中使用了面向对象编程思想,将员工抽象成一个 Employee 类,并定义了不同类型的员工类继承 Employee 类。
- 代码中使用了 ArrayList 存储员工信息,方便进行添加、删除和查询操作。
- 代码中使用了 Scanner 类获取用户输入,并在控制台输出结果。
扩展功能
该系统可以进一步扩展功能,例如:
- 增加数据库操作,将员工信息存储在数据库中,提高系统的可靠性和数据持久性。
- 增加工资发放功能,将员工工资信息记录下来,以便进行工资发放。
- 增加用户权限管理,将系统功能分为不同的权限等级,以便进行安全管理。
总结
该系统提供了一个简单的教职工工资管理解决方案,能够有效地管理不同类型的员工信息并计算他们的工资。开发者可以根据自己的需求进行扩展和改进。
原文地址: https://www.cveoy.top/t/topic/oTaz 著作权归作者所有。请勿转载和采集!