Java实现员工管理系统

本文实例为大家分享了Java实现员工管理系统的具体代码,供大家参考,具体内容如下

本系统主要练习到的相关内容:

1、 流程控制语句
2、 类、对象
3、 封装、继承、多态
4、 方法的重载、重写
5、 访问修饰符
6、 static

需求说明:

员工信息的基本情况
—————————普通员工—————————–
属性:员工编号、员工姓名、员工职务、请假天数、基本工资
普通员工工资:
在基本工资的基础上增加10%的工作餐,50%的岗位补助,200元住房补助
基本工资+基本工资*0.1+基本工资*0.5+200
—————————–经理——————————–
属性:员工编号、员工姓名、员工职务、请假天数、基本工资
经理工资:
在基本工资的基础上增加20%的工作餐,50%的岗位补助,500元住房补助
基本工资+基本工资*0.2+基本工资*0.5+500
——————————-董事——————————–
属性:员工编号、员工姓名、员工职务、请假天数、基本工资
董事工资:
在基本工资的基础上增加8%的工作餐,30%的岗位补助,2000元住房补助,3000元投资补助
基本工资+基本工资*0.08+基本工资*0.3+2000+3000
——————————–其他———————————
工资扣除部分,所有员工都一样
无请假,基本工资全发,有请假,扣除每天平均工资 * 请假天数

大体设计思路:

员工父类一个,普通员工,经理,董事长子类各一个,分别重写父类的工资方法。最后一个测试类。
实现后界面如图:

父类子类的编写没什么问题,注意尽量做好封装,属性最好用private修饰。小编偷了个懒,主要把时间用在测试类的编写上o( ̄ε ̄*)o。
注意:由于本系统只是将对象存于对象数组,数组初始化时定长设定为100,系统会自动初始化每个数组元素为null,所以在写测试类的方法时一定注意写好判断预防遍历赋值发生的空指针错误,小编比较笨,所以饶了好一会才写出来(¬_¬)
还有就是如果更改员工的资料时注意,若是员工的职位发生变化该怎么处理,毕竟对象变了,处理工资的方法也不一样。

以下贴出代码:

首先是父类Employee

//父类
public class Employee {
  String ID;
  String name;
  String position;
  int holiday;
  double salary;
  public Employee(){}
  public void sumSalary(){}
  public void display(){
    System.out.println("ID:"+ID+",姓名:"+name+",职位:"+position+",请假天数:"+holiday+",工资:"+salary);
  }
}

三个子类:

public class CommonEmployee extends Employee{
  @Override
  public void sumSalary(){
    super.salary=super.salary+super.salary*0.1+super.salary*0.5+200-super.holiday*(super.salary/30);
  }
}
public class Manager extends Employee{
  @Override
  public void sumSalary(){
    super.salary=super.salary+super.salary*0.2+super.salary*0.5+200-super.holiday*(super.salary/30);
  }
}
public class Director extends Employee{
  @Override
  public void sumSalary(){
    super.salary=super.salary+super.salary*0.08+super.salary*0.3+2000+3000-super.holiday*(super.salary/30);
  }
}

接下来就是关键的测试类,这里完成增删改查== 有点多。

public class TestEMD {
  static Scanner sc = new Scanner(System.in);
  static Employee[] em = new Employee[100];

  public static void caoZuo() {
    System.out.println("----   工资管理系统         ----");
    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("-------------------------------");
    System.out.println("请输入你要选择的操作:");
    Scanner sc = new Scanner(System.in);
    String s = sc.next();
    switch (s) {
    case "1":
      addEmployee();
      break;
    case "2":
      delEmployee();
      break;
    case "3":
      updateEmployee();
      break;
    case "4":
      queryEmployee();
      break;
    case "0":
      System.out.println("谢谢使用O(∩_∩)O");
      break;
    default:
      System.out.println("指令错误请重新输入!");
      caoZuo();
      break;
    }
  }

  public static void addEmployee() {
    System.out.println("------增加员工------");
    System.out.println("请输入相关信息:");
    System.out.print("ID:");
    String id = sc.next();
    System.out.print("姓名:");
    String name = sc.next();
    System.out.print("职务:");
    String position = sc.next();
    System.out.print("请假天数:");
    int holiday = sc.nextInt();
    System.out.print("基本工资:");
    double salary = sc.nextDouble();
    switch (position) {
    case "普通员工":
      Employee a = new CommonEmployee();
      a.ID = id;
      a.name = name;
      a.position = "普通员工";
      a.holiday = holiday;
      a.salary = salary;
      a.sumSalary();
      for (int i = 0; i < 100; i++) {
        if (em[i] == null) {
          em[i] = a;
          System.out.println("添加成功!");
          em[i].display();
          break;
        } else {
          continue;
        }
      }
      break;
    case "经理":
      Employee b = new Manager();
      b.ID = id;
      b.name = name;
      b.position = "经理";
      b.holiday = holiday;
      b.salary = salary;
      b.sumSalary();
      for (int i = 0; i < 100; i++) {
        if (em[i] == null) {
          em[i] = b;
          System.out.println("添加成功!");
          em[i].display();
          break;
        } else {
          continue;
        }
      }
      break;
    case "董事长":
      Employee c = new Director();
      c.ID = id;
      c.name = name;
      c.position = "董事长";
      c.holiday = holiday;
      c.salary = salary;
      c.sumSalary();
      for (int i = 0; i < 100; i++) {
        if (em[i] == null) {
          em[i] = c;
          System.out.println("添加成功!");
          em[i].display();
          break;
        } else {
          continue;
        }
      }
      break;
    default:
      System.out.println("不存在此职务,请重新输入!");
      addEmployee();
      break;
    }
    caoZuo();
  }

  public static void delEmployee() {
    System.out.println("----------删除员工---------");
    System.out.println("请输入员工姓名:");
    String n = sc.next();
    for (int i = 0; i < 100; i++) {
      if (em[i] != null) {
        if (em[i].name.equals(n)) {
          System.out.println("你要删除的是:" + em[i].toString());
          System.out.println("你确定要删除吗?\n [Y]确定,[N]取消");
          String s = sc.next();
          if (s.equals("y")) {
            em[i] = null;
            System.out.println("删除成功!");
            try {
              Thread.sleep(2000);
            } catch (InterruptedException e) {
              // TODO Auto-generated catch block
              e.printStackTrace();
            }
            caoZuo();
          } else if (s.equals("n")) {
            caoZuo();
          } else {
            System.out.println("输入指令不正确,请重新输入!");
            delEmployee();
          }
        } else {
          if (i != 99) {
            continue;
          } else {
            System.out.println("你输入的账号不存在!请重新输入!");
            delEmployee();
          }

        }
      } else {
        if (i != 99) {
          continue;
        } else {
          System.out.println("你输入的账号不存在!请重新输入!");
          delEmployee();
        }
      }
    }
  }

  public static void updateEmployee() {
    System.out.println("--------------修改员工资料-------------");
    System.out.println("请输入你要修改的姓名:");
    String s = sc.next();
    out: for (int i = 0; i < 100; i++) {
      if (em[i] != null) {
        if (em[i].name.equals(s)) {
          System.out.println("你要修改的是:");
          em[i].display();
          System.out.println("请重新输入相关信息:");
          System.out.print("ID:");
          String id = sc.next();
          System.out.print("姓名:");
          String name = sc.next();
          System.out.print("职务:");
          String position = sc.next();
          System.out.print("请假天数:");
          int holiday = sc.nextInt();
          System.out.print("基本工资:");
          double salary = sc.nextDouble();
          switch (position) {
          case "普通员工":
            if (em[i].position.equals("普通员工")) {
              em[i].ID = id;
              em[i].name = name;
              em[i].position = position;
              em[i].holiday = holiday;
              em[i].salary = salary;
              em[i].sumSalary();
              System.out.println("修改成功!");
              em[i].display();
            } else {
              em[i] = null;
              Employee a = new CommonEmployee();
              a.ID = id;
              a.name = name;
              a.position = "普通员工";
              a.holiday = holiday;
              a.salary = salary;
              a.sumSalary();
              for (int j = 0; j < 100; j++) {
                if (em[j] == null) {
                  em[j] = a;
                  System.out.println("修改成功!");
                  em[j].display();
                  break;
                } else {
                  continue;
                }
              }
            }
            break;
          case "经理":
            if (em[i].position.equals("经理")) {
              em[i].ID = id;
              em[i].name = name;
              em[i].position = position;
              em[i].holiday = holiday;
              em[i].salary = salary;
              em[i].sumSalary();
              System.out.println("修改成功!");
              em[i].display();
            } else {
              em[i] = null;
              Employee b = new Manager();
              b.ID = id;
              b.name = name;
              b.position = "经理";
              b.holiday = holiday;
              b.salary = salary;
              b.sumSalary();
              for (int j = 0; j < 100; j++) {
                if (em[j] == null) {
                  em[j] = b;
                  System.out.println("修改成功!");
                  em[j].display();
                  break;
                } else {
                  continue;
                }
              }
            }
            break;
          case "董事长":
            if (em[i].position.equals("董事长")) {
              em[i].ID = id;
              em[i].name = name;
              em[i].position = position;
              em[i].holiday = holiday;
              em[i].salary = salary;
              em[i].sumSalary();
              System.out.println("修改成功!");
              em[i].display();
            } else {
              em[i] = null;
              Employee c = new Director();
              c.ID = id;
              c.name = name;
              c.position = "董事长";
              c.holiday = holiday;
              c.salary = salary;
              c.sumSalary();
              for (int j = 0; j < 100; j++) {
                if (em[j] == null) {
                  em[j] = c;
                  System.out.println("添加成功!");
                  em[j].display();
                  break;
                } else {
                  continue;
                }
              }
            }
            break;
          default:
            System.out.println("不存在此职务,请重新输入!");
            addEmployee();
            break;
          }

          try {
            Thread.sleep(2000);
          } catch (InterruptedException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
          }
          caoZuo();
        } else {
          if (i != 99) {
            continue out;
          } else {
            System.out.println("你输入的员工不存在!请重新输入!");
            caoZuo();
          }
        }
      } else {
        if (i != 99) {
          continue out;
        } else {
          System.out.println("你输入的员工不存在!请重新输入!");
          caoZuo();
        }
      }
    }
  }

  public static void queryEmployee() {
    System.out.println("--------------所有员工信息---------------");
    for (int i = 0; i < 100; i++) {
      if (em[i] != null) {
        em[i].display();
      }
    }
    try {
      Thread.sleep(2000);
    } catch (InterruptedException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
    }
    caoZuo();
  }

  public static void main(String[] args) {
    // TODO Auto-generated method stub
    TestEMD.caoZuo();
  }

}

程序刚写完就来发帖了,简单测试并未发现什么问题,若是大家发现有什么不对的欢迎指正,谢谢啦。

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

您可能感兴趣的文章:

  • 图书管理系统java版
  • Java+Mysql学生管理系统源码
  • 一个简陋的java图书管理系统
  • 简单实现Java版学生管理系统
  • java学生信息管理系统设计
  • java联系人管理系统简单设计
  • Java设计模块系列之书店管理系统单机版(一)
  • 相册管理系统(Java表单+xml数据库存储)
  • java开发就业信息管理系统
  • java(swing)+ mysql实现学生信息管理系统源码
(0)

相关推荐

  • java开发就业信息管理系统

    本文实例为大家分享了java就业信息管理平台开发案例,供大家参考,具体内容如下 可查询公司信息,学生信息,班级信息,针对学生就业与否信息的统计,老师和管理员登录后的权限不同等 就业信息管理平台想要实现的是各个班级的学生就业情况,数据库里建有6张表,分别是班级,公司,职位,学生,登录用户. 其中就业信息在界面上显示的内容是学生信息和职位的组合,在jsp页面中是拼接来实现,如果这个学生找到工作则需要填写就业信息,否则空着.如就业截图. 在企业信息中,需要实现的功能是首先有计划招聘时间,实际招聘时间,

  • Java+Mysql学生管理系统源码

    最近正在学java和数据库,想起以前写的学生管理系统,都是从网上下载,敷衍了事.闲来无事,也就自己写了一个,不过功能实现的不是很多. 开发语言:java: 开发环境:Mysql, java: 开发工具:eclipse 开发此案例,首先得在电脑上有java开发环境和Mysql, java开发环境与Mysql的搭建,就不再叙述了,如果需要,请联系我最下面的联系方式:dingyelf@aliyun.com 此次系统比较简易:数据库中只有一个表:stu;功能:能够对学生增加.删除.修改. 开发步骤:  

  • java联系人管理系统简单设计

    本文实例为大家分享了java联系人管理系统毕业设计,供大家参考,具体内容如下 要求:  请使用XML保存数据,完成一个联系人管理系统.       用户必须经过认证登录后方可以使用系统.       注册.增加.删除.查看联系人功能.        分模块进行设计. 两层框架-用户交互层,Dao层.             其他支持层-数据封装层.             工具类-加密,工厂Bean. 开发步骤: 第一步:设计数据结构-XML. 第一步:设计数据结构-XML. 第三步:准备资源并

  • java学生信息管理系统设计

    本例的学生信息添加进入数据库的事务(可以提交事务,事务回滚,用本地线程完善) 主页面index.jsp <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> <htm

  • 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设计模块系列之书店管理系统单机版(一)

    书店管理系统: 项目练习目标 : 1.Java应用程序基本分析 2.培养面向对象编程的基本思想 3.Java基本设计模式综合应用 4.掌握分层和接口的基本设计 5.构建合理的Java应用程序包结构 6.综合应用JSE所学习的知识 7.在应用中合理使用集合框架 8.在应用中综合使用swing的常用组件 9.基本的表现层的实现机制 10.IO流和文件的基本操作 11.培养良好的Java编程习惯 12.培养调试Java程序的能力,培养改错的能力 项目功能需求 : 1.能进行操作用户的注册,修改基本信息

  • 相册管理系统(Java表单+xml数据库存储)

    功能文件的上传,下载和管理 技术:1.用xml当做数据库存储信息(dom4j,xpath) 2.Java表单的文件上传和下载 3.文件目录的打散 ( Hash目录是一种优化文件存储性能的方法) 需要的jar包: commons-fileupload-1.2.2.jar.commons-io-2.1.jar.dom4j-1.6.1.jar和jaxen-1.1-beta-6.jar -----------------------------------------------------------

  • 一个简陋的java图书管理系统

    本文代码为原创一个简陋的管理系统,只做功能的测试.并没有去完善所有应有的功能,只做了输入输出查找,仅供参考! 菜单部分: import java.util.Scanner; public class Menu { int Min = 1; int Max = 3; public void getMenu(){ System.out.println("1.显示/2.输入/3.查找"); } public void getFindMenu(){ System.out.println(&qu

  • 简单实现Java版学生管理系统

    本文实例为大家分享了Java实现学生管理系统的具体代码,供大家参考,具体内容如下 package BookDemo_1; import javax.swing.*; import java.awt.*; import java.awt.event.*; public class Test { public static void main(String[] args) { StudentSys stuSys=new StudentSys("学生管理系统"); stuSys.initWi

  • 图书管理系统java版

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

随机推荐