加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

员工管理系统java版

发布时间:2020-12-14 21:06:08 所属栏目:Java 来源:网络整理
导读:员工管理系统要求如下: 通过面向对象的编程思想,实现员工信息的增删改查,存储结构为数组。限定数组长度为100。 实现页面: 添加员工 查找员工 修改员工 删除员工、退出 工程目录结构: 1.Employee基类 /** * @author 李广亮 * */public class Employee {

员工管理系统要求如下:

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

}

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读