java工资管理系统
时间: 2023-11-20 14:56:26 浏览: 58
Java工资管理系统是一个用于管理职工工资信息的系统。它可以实现职工基本信息的管理,工资等级信息管理,职工变动工资管理和统计等功能。下面是Java工资管理系统的实现步骤:
1.定义抽象类Employee,包含职工编号、姓名、性别、出生日期、工资等级等属性和计算工资的抽象方法earnings()。
2.定义类SalariedEmployee,继承Employee类,实现earnings()方法,计算月薪。
3.定义类HourlyEmployee,继承Employee类,实现earnings()方法,计算小时工资。
4.定义类CommissionEmployee,继承Employee类,实现earnings()方法,计算销售提成。
5.定义类BasePlusCommissionEmployee,继承CommissionEmployee类,添加底薪属性,重写earnings()方法,计算销售提成和底薪之和。
6.定义类EmployeeTest,包含main()方法,创建各种类型的职工对象,调用它们的earnings()方法,输出各自的工资。
7.定义类EmployeeFile,实现职工信息的读取和写入。
8.定义类SalaryGrade,实现工资等级信息的管理。
9.定义类SalaryChange,实现职工变动工资管理。
10.定义类SalaryStatistics,实现工资统计功能。
下面是Java工资管理系统的代码示例:
```java
// Employee.java
public abstract class Employee {
private String empId;
private String name;
private String gender;
private Date birthDate;
private int grade;
public Employee(String empId, String name, String gender, Date birthDate, int grade) {
this.empId = empId;
this.name = name;
this.gender = gender;
this.birthDate = birthDate;
this.grade = grade;
}
public String getEmpId() {
return empId;
}
public String getName() {
return name;
}
public String getGender() {
return gender;
}
public Date getBirthDate() {
return birthDate;
}
public int getGrade() {
return grade;
}
public abstract double earnings();
}
// SalariedEmployee.java
public class SalariedEmployee extends Employee {
private double monthlySalary;
public SalariedEmployee(String empId, String name, String gender, Date birthDate, int grade, double monthlySalary) {
super(empId, name, gender, birthDate, grade);
this.monthlySalary = monthlySalary;
}
public double getMonthlySalary() {
return monthlySalary;
}
public void setMonthlySalary(double monthlySalary) {
this.monthlySalary = monthlySalary;
}
@Override
public double earnings() {
return monthlySalary;
}
}
// HourlyEmployee.java
public class HourlyEmployee extends Employee {
private double wage;
private double hours;
public HourlyEmployee(String empId, String name, String gender, Date birthDate, int grade, double wage, double hours) {
super(empId, name, gender, birthDate, grade);
this.wage = wage;
this.hours = hours;
}
public double getWage() {
return wage;
}
public void setWage(double wage) {
this.wage = wage;
}
public double getHours() {
return hours;
}
public void setHours(double hours) {
this.hours = hours;
}
@Override
public double earnings() {
return wage * hours;
}
}
// CommissionEmployee.java
public class CommissionEmployee extends Employee {
private double grossSales;
private double commissionRate;
public CommissionEmployee(String empId, String name, String gender, Date birthDate, int grade, double grossSales, double commissionRate) {
super(empId, name, gender, birthDate, grade);
this.grossSales = grossSales;
this.commissionRate = commissionRate;
}
public double getGrossSales() {
return grossSales;
}
public void setGrossSales(double grossSales) {
this.grossSales = grossSales;
}
public double getCommissionRate() {
return commissionRate;
}
public void setCommissionRate(double commissionRate) {
this.commissionRate = commissionRate;
}
@Override
public double earnings() {
return grossSales * commissionRate;
}
}
// BasePlusCommissionEmployee.java
public class BasePlusCommissionEmployee extends CommissionEmployee {
private double baseSalary;
public BasePlusCommissionEmployee(String empId, String name, String gender, Date birthDate, int grade, double grossSales, double commissionRate, double baseSalary) {
super(empId, name, gender, birthDate, grade, grossSales, commissionRate);
this.baseSalary = baseSalary;
}
public double getBaseSalary() {
return baseSalary;
}
public void setBaseSalary(double baseSalary) {
this.baseSalary = baseSalary;
}
@Override
public double earnings() {
return super.earnings() + baseSalary;
}
}
// EmployeeTest.java
public class EmployeeTest {
public static void main(String[] args) {
Employee[] employees = new Employee[4];
employees[0] = new SalariedEmployee("001", "张三", "男", new Date(), 1, 10000);
employees[1] = new HourlyEmployee("002", "李四", "女", new Date(), 2, 50, 200);
employees[2] = new CommissionEmployee("003", "王五", "男", new Date(), 3, 50000, 0.1);
employees[3] = new BasePlusCommissionEmployee("004", "赵六", "女", new Date(), 4, 60000, 0.1, 5000);
for (Employee employee : employees) {
System.out.println(employee.getName() + "的工资为:" + employee.earnings());
}
}
}
// EmployeeFile.java
public class EmployeeFile {
public static List<Employee> readFromFile(String fileName) {
List<Employee> employees = new ArrayList<>();
// 从文件中读取职工信息,创建Employee对象,添加到employees列表中
return employees;
}
public static void writeToFile(String fileName, List<Employee> employees) {
// 将employees列表中的职工信息写入文件
}
}
// SalaryGrade.java
public class SalaryGrade {
public static List<Integer> getGrades() {
List<Integer> grades = new ArrayList<>();
// 从数据库中读取工资等级信息,添加到grades列表中
return grades;
}
public static void addGrade(int grade) {
// 将新的工资等级添加到数据库中
}
public static void updateGrade(int oldGrade, int newGrade) {
// 将旧的工资等级更新为新的工资等级
}
public static void deleteGrade(int grade) {
// 从数据库中删除指定的工资等级
}
}
// SalaryChange.java
public class SalaryChange {
public static List<SalaryChangeRecord> getRecords(String empId) {
List<SalaryChangeRecord> records = new ArrayList<>();
// 从数据库中读取指定职工的变动工资记录,添加到records列表中
return records;
}
public static void addRecord(SalaryChangeRecord record) {
// 将新的变动工资记录添加到数据库中
}
public static void updateRecord(SalaryChangeRecord oldRecord, SalaryChangeRecord newRecord) {
// 将旧的变动工资记录更新为新的变动工资记录
}
public static void deleteRecord(SalaryChangeRecord record) {
// 从数据库中删除指定的变动工资记录
}
}
// SalaryStatistics.java
public class SalaryStatistics {
public static Map<String, Double> getStatistics() {
Map<String, Double> statistics = new HashMap<>();
// 从数据库中读取所有职工的工资信息,进行统计,将结果添加到statistics中
return statistics;
}
}
```