1. 新建工程StaffManagement,包名:my.employee
2. 添加员工类Employee, 该类中主要属性及方法:
package my.employee;
//员工类方法
public class Employee {
private String ID;
private String name;
private String position;
private int holiday;
private double salary;
//构造函数:
public Employee(String iD,String name,String position,int holiday, double salary){
super();
ID=iD;
this.name=name;
this.position=position;
this.holiday=holiday;
this.salary=salary;
}
//获得及设置属性值方法:
public String getID(){
return ID;
}
public void setID(String iD){
ID=iD;
}
public String getName(){
return name;
}
public void setName(String name){
this.name=name;
}
public String getPosition(){
return position;
}
public void setPosition(String position){
this.position=position;
}
public int getHoliday(){
return holiday;
}
public void setHoliday(int holiday){
this.holiday=holiday;
}
public double getSalary(){
return salary;
}
public void setSalary(double salary){
this.salary=salary;
}
//总薪水方法:
public double sumSalary(int holiday){
return 1;
}
//显示详细信息:
public void display(){
System.out.println("编号:"+this.ID+"姓名:"+this.name+"职务:"+this.position+"请假天数:"+this.holiday+"工资:"+this.sumSalary(this.holiday));
}
}
3. 添加懂事类Director继承于员工类Employee
package my.employee;
//继承员工类Employee
public class Director extends Employee{
//董事长的构造方法及薪水方法:
public Director(String iD, String name, String position, int holiday,
double salary) {
super(iD, name, position, holiday, salary);
this.setID(iD);
this.setName(name);
this.setPosition(position);
this.setHoliday(holiday);
this.setSalary(salary);
}
public double sumSalary(int holiday){
return(this.getSalary()*1.38+5000)/30*(30-this.getHoliday());
}
}
4. 添加经理类Manager继承于员工类Employee
package my.employee;
//继承员工类Employee
public class Manager extends Employee {
//经理的构造方法及薪水方法:
public Manager(String iD, String name, String position, int holiday,
double salary) {
super(iD, name, position, holiday, salary);
this.setID(iD);
this.setName(name);
this.setPosition(position);
this.setHoliday(holiday);
this.setSalary(salary);
}
public double sumSalary(int holiday){
return(this.getSalary()*1.7+500)/30*(30-this.getHoliday());
}
}
5. 添加普通员工类CommonEmployee继承于员工类Employee
package my.employee;
//继承员工类Employee
public class CommonEmployee extends Employee {
//普通员工的构造方法及薪水方法:
public CommonEmployee(String iD, String name, String position, int holiday,
double salary) {
super(iD, name, position, holiday, salary);
this.setID(iD);
this.setName(name);
this.setPosition(position);
this.setHoliday(holiday);
this.setSalary(salary);
}
public double sumSalary(int holiday){
return(this.getSalary()*1.6+200)/30*(30-this.getHoliday());
}
}
6. 员工信息处理类EmployeeInformationPro
package my.employee;
import java.util.*;
//员工信息处理类
public class EmployeeInformationPro {
//新建数组列表类对象,用于保存员工信息
public static ArrayList<Employee> ems=new ArrayList<Employee>();
//添加员工信息:
public static void addEmployee(){
Scanner sc = new Scanner(System.in);
System.out.println("请输入员工编号:");
String id=sc.nextLine();
System.out.println("请输入员工姓名:");
String name=sc.nextLine();
System.out.println("请输入员工职务:(employee,manager,chairman)");
String position=sc.nextLine();
System.out.println("请输入员工请假天数:");
int holiday=sc.nextInt();
System.out.println("请输入员工基本工资:");
double salary=sc.nextDouble();
if(position.equals("employee")){
Employee newOne=new CommonEmployee(id,name,position,holiday,salary);
ems.add(newOne);
System.out.print("增加数据成功");
newOne.display();
}
else if(position.equals("manager")){
Employee newOne=new CommonEmployee(id,name,position,holiday,salary);
ems.add(newOne);
System.out.print("增加数据成功");
newOne.display();
}
else if(position.equals("chairman")){
Employee newOne=new CommonEmployee(id,name,position,holiday,salary);
ems.add(newOne);
System.out.print("增加数据成功");
newOne.display();
}
else System.out.println("您所输入的职务不存在");
}
//删除员工信息:
public static void delEmployee(){
Scanner sc = new Scanner(System.in);
System.out.println("请输入员工姓名:");
sc.next();
boolean b1=false;
for(Employee employee:ems){
if(employee.getName().equals(employee)){
employee.display();
ems.remove(employee);
System.out.println("删除数据成功");
b1=true;
break;
}
}
if(!b1){
System.out.println("您所删除的人不存在");
}
}
//更新员工信息:
public static void updateEmployee(){
Scanner sc = new Scanner(System.in);
System.out.println("请输入要修改的员工姓名:");
sc.nextLine();
boolean b1=false;
for(Employee employee :ems){
if(employee.getName().equals(employee)){
System.out.println("请输入员工信息:");
System.out.println("请输入员工编号:");
String id=sc.nextLine();
employee.setID(id);
System.out.println("请输入员工姓名:");
String name=sc.nextLine();
employee.setName(name);
System.out.println("请输入员工职务:(employee,manager,chairman)");
String position=sc.nextLine();
employee.setPosition(position);
System.out.println("请输入员工请假天数:");
int holiday=sc.nextInt();
employee.setHoliday(holiday);
System.out.println("请输入员工基本工资:");
double salary=sc.nextDouble();
employee.setSalary(salary);
b1=true;
break;
}
}
if(!b1){
System.out.println("您要修改的人不存在");
}
}
//查询员工信息:
public static void queryEmployee(){
Scanner sc = new Scanner(System.in);
System.out.println("请输入要查询的员工姓名:");
sc.nextLine();
boolean b1=false;
for(Employee employee :ems){
if(employee.getName().equals(employee)){
employee.display();
b1=true;
}
}
if(!b1){
System.out.println("您要查询的人不存在");
}
}
}
7. 测试类TestEmployee继承EmployeeInformationPro
package my.employee;
import java.util.Scanner;
//main方法
public class TestEmployee extends EmployeeInformationPro{
public static void main(String[] args){
//业务选择界面:
Scanner sc = new Scanner(System.in);
while(true){
System.out.println("|---------------|");
System.out.println("|-----1 增加-----|");
System.out.println("|-----2 删除-----|");
System.out.println("|-----3 修改-----|");
System.out.println("|-----4 查询-----|");
System.out.println("|-----0 退出-----|");
System.out.println("|---------------|");
System.out.println("请选择业务!");
int choose=sc.nextInt();
switch(choose){
case 1:
addEmployee();
break;
case 2:
delEmployee();
break;
case 3:
updateEmployee();
break;
case 4:
queryEmployee();
break;
case 5:
System.exit(0);
default:
System.out.println("您选择的业务不存在,请再次输入!");
}
}
}
}
<!--EndFragment-->
<!--EndFragment-->
<!--EndFragment--><!--EndFragment-->
<!--EndFragment-->