人员管理系统 java_员工管理系统java版

员工管理系统要求如下:

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

实现页面:

3cc4fc62ea8984453d37b5533fbb8096.png

添加员工

79187b2d7a2dd0c8c51ed1a3bedc636f.png

查找员工

281bd0b1a704d716dea26d1233d912eb.png

修改员工

c9a38ff2627242781b430be317346893.png

删除员工、退出

工程目录结构:

3a217626bcdc50662d6297d27568965b.png

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;

}

}

}

}

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

  • 1
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值