首页 > 编程 > Java > 正文

员工管理系统java版

2019-11-26 10:56:23
字体:
来源:转载
供稿:网友

员工管理系统要求如下:

通过面向对象的编程思想,实现员工信息的增删改查,存储结构为数组。限定数组长度为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;   }  } }}

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

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表