员工管理系统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;
      }
    }
  }

}

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

(0)

相关推荐

  • Java+MySQL实现学生信息管理系统源码

    基于Java swing+MySQL实现学生信息管理系统:主要实现JDBC对学生信息进行增删改查,应付一般课设足矣,分享给大家.(由于篇幅原因,代码未全部列出,如有需要留下邮箱) 鉴于太多同学要源码,实在发不过来,上传到github上 https://github.com/ZhuangM/student.git 1. 开发环境:jdk7+MySQL5+win7 代码结构:model-dao-view 2. 数据库设计--建库建表语句: CREATE DATABASE student; DROP

  • java利用Apache commons codec进行MD5加密,BASE64加密解密,执行系统命令

    编写代码之前先来介绍一下我们要用到的两个包; commons-codec-1.10.jar Commons项目中用来处理常用的编码方法的工具类包,例如DES.SHA1.MD5.Base64,URL,Soundx等等. commons-exec-1.3.jar Apache Commons Exec 是 Apache 上的一个 Java 项目,提供一些常用的方法用来执行外部进程 你可以到本站直接下载 Apache Commons 官方包 下面看一下代码结构: import org.apache.c

  • Java获取当前操作系统的信息实例代码

    主流有几种方法,一种是用下面的函数 publicstaticStringgetProperty(Stringkey) 键 相关值的描述 java.version java.version Java 运行时环境版本 java.vendor java.vendor Java 运行时环境供应商 java.vendor.url java.vendor.url Java 供应商的 URL java.home java.home Java 安装目录 java.vm.specification.version

  • java通过JFrame做一个登录系统的界面完整代码示例

    在java的JFrame内通过创建匿名对象的方式做登录界面 package com.sxt; import java.awt.Container; import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.J

  • Java实现电影院订票系统代码

    程序是为了方便用户使用的,因此实现图形化界面的程序编写是所有编程语言发展的必然趋势...但是由于时间原因,小编并未在代码中添加可视化图形界面,有兴趣的朋友可自行添加. 可参阅:Java图形化界面设计之容器(JFrame)详解 演示结果: 下面是具体实现代码: public class Test { public static void main(String[] args) { BookTicket bookTicket = new BookTicket(); bookTicket.init()

  • 学生信息管理系统java版

    本文为大家分享了java学生信息管理系统的源代码,供大家参考,具体内容如下 /*学生信息管理系统,实现学生信息: *增加 int[] a=new int[9] *删除 *查找 *更改 */ import java.util.Scanner;//导入java输入流 import java.lang.*; import java.io.*; class Student { private static Student[] s=new Student[2]; int n=0; private Stri

  • java学生信息管理系统MVC架构详解

    本文实例为大家分享了java学生信息管理系统MVC架构,供大家参考,具体内容如下 一.项目结构 学生信息管理系统分三层进行实现.student.java主要提供数据,cotroller.java的功能是绑定试图和计算数据.Stuview.java用于单一的用来显示数据. 二.源码 1.1.Student 类 /* * @FileName: Student.class * @version:1.0 * @author:nazi * 描述:模型层 * */ import java.io.Serial

  • java(swing)+ mysql实现学生信息管理系统源码

    本文实例为大家分享了java实现学生信息管理系统源码,供大家参考,具体内容如下 import java.awt.BorderLayout; import java.awt.Color; import java.awt.Font; import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.sql.Connection; import

  • 员工管理系统java版

    员工管理系统要求如下: 通过面向对象的编程思想,实现员工信息的增删改查,存储结构为数组.限定数组长度为100. 实现页面: 添加员工 查找员工 修改员工 删除员工.退出 工程目录结构: 1.Employee基类 /** * @author 李广亮 * */ public class Employee { /** * 成员属性:ID.姓名.职务.请假天数.基本工资 */ private String ID; private String name; private String job; priv

  • 图书管理系统java版

    本文的目的就是通过图书管理系统掌握数据库编程技术,能正确连接数据库,能对数据库中信息进行查询.插入.删除.修改. 内容:在数据库中创建一张书目信息表,包括书名.作者.出版社.出版日期.书号.价格字段.设计一个GUI界面进行书目管理.在该界面上有四个选项卡,分别是查询.插入.删除.修改.点击查询选项卡,出现的界面上有书名.作者.出版社.书号四个文本框,一个按钮和一个只读文本区.文本框内容可以为空,输入相应的查询信息后(例如根据书名查询可以仅输入书名),点击界面上的"查询"按钮,可以在界面

  • Java实现员工管理系统

    本文实例为大家分享了Java实现员工管理系统的具体代码,供大家参考,具体内容如下 本系统主要练习到的相关内容: 1. 流程控制语句 2. 类.对象 3. 封装.继承.多态 4. 方法的重载.重写 5. 访问修饰符 6. static 需求说明: 员工信息的基本情况 ---------普通员工---------– 属性:员工编号.员工姓名.员工职务.请假天数.基本工资 普通员工工资: 在基本工资的基础上增加10%的工作餐,50%的岗位补助,200元住房补助 基本工资+基本工资*0.1+基本工资*0

  • Java版水果管理系统源码

    水果管理系统Java版分享给大家. 主类 FruitsDemo /** * 功能: * 1. 查看所有的水果 * 2. 添加新的水果(添加的时候判断水果名是否有重复) * 3. 对所有的水果进行排序(价格排序.库存排序) * 4. 删除指定的水果 * 5. 退出系统 * * 注意: * 1. 每种水果都必须有水果id,水果名,水果数量,水果价格 * 2. 添加水果时,要由用户输入水果名.数量和价格 * 3. 删除水果时要二次确认 * * 评分依据: 功能实现的情况,代码规范性(命名规范.格式规范

  • java控制台实现学生信息管理系统(IO版)

    使用java语言用本地文件存储数据实现学生信息管理系统,在控制台上编译执行,也就是学生管理系统IO版 可以实现基本的学生信息增加.删除.修改.查询功能(细化了查询功能) 集合版可以参考我的另外一篇博文. 代码如下 StudentManager 提供用户界面 import java.io.IOException; import java.util.Scanner; public class StudentManager { public static void main(String[] args

  • Java 实战范例之员工管理系统的实现

    一.项目简述 本系统功能包括:分为前端翻后端部分,包括用户,区分晋通用户以及誉里员用户,包括首页展示,部门管理,人事管理,员工管理三个模块等等. 二.项目运行 环境配置: Jdkl . 8 + Tomcats . 5 + Mysql + HBuilderX ( Webstorm 也行)+ Eclispe ( IntelliJ IDEA,Eclispe , MyEclispe , Sts 都支持). 项目技术: html + css +js + vue + v 一 charts + electro

  • Java实现简单员工管理系统

    本文实例为大家分享了Java实现简单员工管理系统的具体代码,供大家参考,具体内容如下 代码如下: import java.util.*; public class Demo {     public static void main(String[] args) {         EmpManage em = new EmpManage();         while (true) {             System.out.println("==================员工管

  • Java实现企业员工管理系统

    基于Java的简单的企业员工管理系统,供大家参考,具体内容如下 首先创建了一个员工类 定义员工应有的属性:工号.姓名.性别.职位.年龄.工资.部门 /** 员工属性 */     private int sno;//工号 private String name;//姓名 private String sex;//性别 private String job;//职位 private int age;//年龄 private int money;//工资 private String section

  • Java版学生管理系统

    本文实例为大家分享了Java版学生管理系统的具体代码,供大家参考,具体内容如下 学生类 //学生类 public class Student {     //学号     private int sid;     //姓名     private String name;     //年龄     private int age;     //地址     private String address;     //创建构造方法     public Student(){       }    

随机推荐