跳转到主内容
趣航编程网 - 趣学编程,启航技术之路!

员工管理系统java版

员工管理系统要求如下:

通过面向对象的编程思想,实现员工信息的增删改查,存储结构为数组。限定数组长度为100。

实现页面:

添加员工

查找员工

修改员工

删除员工、退出

工程目录结构:

1.Employee基类

/*** @author 李广亮**/ public class Employee {

/*** 成员属性:ID、姓名、职务、请假天数、基本工资*/ private String ID;private String name;private String job;private int holiday;private double salary;

/*** 计算工资*/ public double sunSalary(double salary, int holiday) {return salary - (salary/30) * holiday;}

/*** get和set方法*/ 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 getJob() {return job;}

public void setJob(String job) {this.job = job;}

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;}

/*** toString()方法*/ public String toString() {return "编号:" + ID + ", 姓名:" + name + ", 职务" + job+ ", 请假天数:" + holiday + ", 工资:" + salary;}

}

2.普通员工类CommonEmployee

public class CommonEmployee extends Employee {

/*** 普通员工工资* 在基本工资的基础上增加10%的工作餐,50%的岗位补助,200元住房补助* @param 工资* @param 请假天数*/@Override public double sunSalary(double salary, int holiday) {double sum = salary + salary*0.1 + salary*0.5 + 200;return sum - sum/30 * holiday;}

}

3.经理ManagerEmployee

public class ManagerEmployee extends Employee {

/*** 经理工资* 在基本工资的基础上增加20%的工作餐,50%的岗位补助,500元住房补助* @param 工资* @param 请假天数*/@Override public double sunSalary(double salary, int holiday) {double sum = salary + salary*0.2 + salary*0.5 + 500;return sum - sum/30 * holiday;}

}

4.懂事DirectorEmployee

public class ManagerEmployee extends Employee {

/*** 经理工资* 在基本工资的基础上增加20%的工作餐,50%的岗位补助,500元住房补助* @param 工资* @param 请假天数*/@Override public double sunSalary(double salary, int holiday) {double sum = salary + salary*0.2 + salary*0.5 + 500;return sum - sum/30 * holiday;}

}

5.业务逻辑类TestEMD

/*** @author 李广亮**/ public class TestEMD {

/*** len代表数组的当前下标*/ static int len = -1;static Employee[] emp = new Employee[100];static Scanner sc = new Scanner(System.in);

/*** 增加新雇员*/ public void addEmployee() {Employee em = null;System.out.println("---增加员工---");

System.out.print("请输入员工编号:");String id = sc.next();System.out.print("请输入员工姓名:");String name = sc.next();

System.out.print("请输入员工职务(员工、经理、懂事):");String job = sc.next();System.out.print("请输入员工请假天数:");int holiday = sc.nextInt();

System.out.print("请输入员工基本工资:");double salary = sc.nextDouble();

//在此作一下逻辑判断,根据job的不同,创建不同的Employee子类if(job.equals("员工")) {em = new CommonEmployee();} else if(job.equals("经理")) {em = new ManagerEmployee();} else if(job.equals("懂事")) {em = new DirectorEmployee();} else {System.out.println("输入不正确!");}

em.setID(id);em.setName(name);em.setJob(job);em.setHoliday(holiday);em.setSalary(salary);//len先加1后使用,变为emp[0]emp[++len] = em;printEmployee(emp[len]);System.out.println("添加成功!");}

/*** 删除员工*/ public void deleteEmployee() {System.out.println("------删除员工------");System.out.println("---请输入员工姓名:---");//设置一个boolean类型的flg标志,若查找不到则为false boolean flg = false;String name = sc.next();for(int i=0; i<=len; i++) {//若查找成功,则把emp[i]数组后面的指针往前移一位,覆盖掉当前的指向对象if(emp[i].getName().equals(name)) {printEmployee(emp[i]);for(int j=i; j<=len; j++) {emp[j] = emp[j+1];}//前移后,最后一位置空,len--emp[len] = null;len--;System.out.println("删除成功!");flg = true;break;}}if(!flg) {System.out.println("查无此人,请重新输入:");deleteEmployee();}}/*** 修改雇员信息* @param args* @return*/ public void updateEmployee() {System.out.println("------修改员工------");System.out.println("---请输入员工姓名:---");//设置一个boolean类型的flg标志,若查找不到则为false boolean flg = false;String name = sc.next();for(int i=0; i<=len; i++) {if(emp[i].getName().equals(name)) {printEmployee(emp[i]);System.out.println("---请按照提示输入修改信息---");System.out.print("请输入员工编号:");emp[i].setID(sc.next());System.out.print("请输入员工姓名:");emp[i].setName(sc.next());System.out.print("请输入员工职务(员工、经理、懂事):");emp[i].setJob(sc.next());System.out.print("请输入员工请假天数:");emp[i].setHoliday(sc.nextInt());System.out.print("请输入员工基本工资:");emp[i].setSalary(sc.nextDouble());//修改完成后打印一下printEmployee(emp[i]);System.out.println("修改成功!");flg = true;break;}}if(!flg) {System.out.println("查无此人,请重新输入:");updateEmployee();}}/*** 根据姓名查找雇员信息* @param args*/ public void findEmployee() {System.out.println("------查找员工------");System.out.println("---请输入员工姓名:---");//设置一个boolean类型的flg标志,若查找不到则为false boolean flg = false;String name = sc.next();for( int i=0; i<=len; i++) {if(emp[i].getName().equals(name)) {printEmployee(emp[i]);System.out.println("查找成功!");flg = true;break;}}if(!flg) {System.out.println("查无此人,请重新输入:");findEmployee();}}

/*** 打印雇员信息* @param args*/ public void printEmployee(Employee em) {System.out.print(" 编号: " + em.getID());System.out.print(" 姓名: " + em.getName());System.out.print(" 职务: " + em.getJob());System.out.print(" 请假天数 : " + em.getHoliday());//参数:1.基本工资 2.请假天数double sum = em.sunSalary(em.getSalary(), em.getHoliday());System.out.println(" 工资:" + sum);}

public static void main(String[] args) {

TestEMD te = new TestEMD();

//开始界面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("|----------------|");

//业务选择label : while(true) {System.out.println("请选择业务:");int select = sc.nextInt();switch (select) {case 1: //添加新雇员te.addEmployee();break;case 2: //删除雇员te.deleteEmployee();break;case 3: //修改雇员信息te.updateEmployee();break;case 4: //根据姓名查找雇员信息te.findEmployee();break;case 0: //退出System.out.println("退出成功!");break label;

default:System.out.println("您输入的数字不正确!");break;}}}

}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

您可能感兴趣的文章:Java精品项目瑞吉外卖之员工信息管理篇Java实现企业员工管理系统java实现员工工资管理系统Java实现员工信息管理系统Java实现简单员工管理系统Java实战员工绩效管理系统的实现流程Java 实战范例之员工管理系统的实现Java实现员工管理系统Java实现部门员工管理

相关文章