最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

員工管理系統(tǒng)java版

 更新時(shí)間:2017年11月14日 14:56:40   作者:李廣亮  
這篇文章主要為大家詳細(xì)介紹了java版的員工管理系統(tǒng),,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

員工管理系統(tǒng)要求如下:

通過面向?qū)ο蟮木幊趟枷耄瑢?shí)現(xiàn)員工信息的增刪改查,存儲(chǔ)結(jié)構(gòu)為數(shù)組。限定數(shù)組長(zhǎng)度為100。

實(shí)現(xiàn)頁(yè)面:

添加員工

查找員工

修改員工

刪除員工、退出

工程目錄結(jié)構(gòu):

1.Employee基類

/**
 * @author 李廣亮
 *
 */
public class Employee {

 /**
  * 成員屬性:ID、姓名、職務(wù)、請(qǐng)假天數(shù)、基本工資
  */
 private String ID;
 private String name;
 private String job;
 private int holiday;
 private double salary;

 /**
  * 計(jì)算工資
  */
 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 "編號(hào):" + ID + ", 姓名:" + name + ", 職務(wù)" + job
    + ", 請(qǐng)假天數(shù):" + holiday + ", 工資:" + salary;
 }

}

2.普通員工類CommonEmployee

public class CommonEmployee extends Employee {

 /**
  * 普通員工工資
  * 在基本工資的基礎(chǔ)上增加10%的工作餐,50%的崗位補(bǔ)助,200元住房補(bǔ)助
  * @param 工資
  * @param 請(qǐng)假天數(shù)
  */
 @Override
 public double sunSalary(double salary, int holiday) {
  double sum = salary + salary*0.1 + salary*0.5 + 200;
  return sum - sum/30 * holiday;
 } 

}

3.經(jīng)理ManagerEmployee

public class ManagerEmployee extends Employee {

 /**
  * 經(jīng)理工資
  * 在基本工資的基礎(chǔ)上增加20%的工作餐,50%的崗位補(bǔ)助,500元住房補(bǔ)助
  * @param 工資
  * @param 請(qǐng)假天數(shù)
  */ 
 @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 {

 /**
  * 經(jīng)理工資
  * 在基本工資的基礎(chǔ)上增加20%的工作餐,50%的崗位補(bǔ)助,500元住房補(bǔ)助
  * @param 工資
  * @param 請(qǐng)假天數(shù)
  */ 
 @Override
 public double sunSalary(double salary, int holiday) {
  double sum = salary + salary*0.2 + salary*0.5 + 500;
  return sum - sum/30 * holiday;
 }

}

5.業(yè)務(wù)邏輯類TestEMD

/**
 * @author 李廣亮
 *
 */
public class TestEMD {

 /**
  * len代表數(shù)組的當(dāng)前下標(biāo)
  */
 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("請(qǐng)輸入員工編號(hào):");
  String id = sc.next();
  System.out.print("請(qǐng)輸入員工姓名:");
  String name = sc.next();

  System.out.print("請(qǐng)輸入員工職務(wù)(員工、經(jīng)理、懂事):");
  String job = sc.next();  
  System.out.print("請(qǐng)輸入員工請(qǐng)假天數(shù):");
  int holiday = sc.nextInt();

  System.out.print("請(qǐng)輸入員工基本工資:");
  double salary = sc.nextDouble();

  //在此作一下邏輯判斷,根據(jù)job的不同,創(chuàng)建不同的Employee子類
  if(job.equals("員工")) {
   em = new CommonEmployee();
  } else if(job.equals("經(jīng)理")) {
   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后使用,變?yōu)閑mp[0]
  emp[++len] = em;
  printEmployee(emp[len]);
  System.out.println("添加成功!");
 }

 /**
  * 刪除員工
  */
 public void deleteEmployee() {
  System.out.println("------刪除員工------");
  System.out.println("---請(qǐng)輸入員工姓名:---");
  //設(shè)置一個(gè)boolean類型的flg標(biāo)志,若查找不到則為false
  boolean flg = false;
  String name = sc.next();
  for(int i=0; i<=len; i++) {
   //若查找成功,則把emp[i]數(shù)組后面的指針往前移一位,覆蓋掉當(dāng)前的指向?qū)ο?
   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("查無此人,請(qǐng)重新輸入:");
   deleteEmployee();
  }
 }
 /**
  * 修改雇員信息
  * @param args
  * @return 
  */
 public void updateEmployee() {
  System.out.println("------修改員工------");
  System.out.println("---請(qǐng)輸入員工姓名:---");
  //設(shè)置一個(gè)boolean類型的flg標(biāo)志,若查找不到則為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("---請(qǐng)按照提示輸入修改信息---");
    System.out.print("請(qǐng)輸入員工編號(hào):");
    emp[i].setID(sc.next());
    System.out.print("請(qǐng)輸入員工姓名:");
    emp[i].setName(sc.next());
    System.out.print("請(qǐng)輸入員工職務(wù)(員工、經(jīng)理、懂事):");
    emp[i].setJob(sc.next());
    System.out.print("請(qǐng)輸入員工請(qǐng)假天數(shù):");
    emp[i].setHoliday(sc.nextInt());
    System.out.print("請(qǐng)輸入員工基本工資:");
    emp[i].setSalary(sc.nextDouble());
    //修改完成后打印一下
    printEmployee(emp[i]);
    System.out.println("修改成功!");
    flg = true;
    break;
   }   
  }
  if(!flg) {
   System.out.println("查無此人,請(qǐng)重新輸入:");
   updateEmployee();
  }
 }
 /**
  * 根據(jù)姓名查找雇員信息
  * @param args
  */
 public void findEmployee() {
  System.out.println("------查找員工------");
  System.out.println("---請(qǐng)輸入員工姓名:---");
  //設(shè)置一個(gè)boolean類型的flg標(biāo)志,若查找不到則為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("查無此人,請(qǐng)重新輸入:");
   findEmployee();
  }
 }

 /**
  * 打印雇員信息
  * @param args
  */
 public void printEmployee(Employee em) {  
  System.out.print(" 編號(hào): " + em.getID());
  System.out.print(" 姓名: " + em.getName());
  System.out.print(" 職務(wù): " + em.getJob());
  System.out.print(" 請(qǐng)假天數(shù) : " + em.getHoliday());
  //參數(shù):1.基本工資 2.請(qǐng)假天數(shù)
  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("|----------------|");

  //業(yè)務(wù)選擇
  label : while(true) {
   System.out.println("請(qǐng)選擇業(yè)務(wù):");
   int select = sc.nextInt();
   switch (select) {
   case 1: //添加新雇員
    te.addEmployee();
    break;
   case 2: //刪除雇員
    te.deleteEmployee();
    break;
   case 3: //修改雇員信息
    te.updateEmployee();
    break;
   case 4: //根據(jù)姓名查找雇員信息
    te.findEmployee();
    break;
   case 0: //退出
    System.out.println("退出成功!");
    break label;

   default:
    System.out.println("您輸入的數(shù)字不正確!");
    break;
   }
  }
 }

}

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • mybatis-plus主鍵id生成、字段自動(dòng)填充的實(shí)現(xiàn)代碼

    mybatis-plus主鍵id生成、字段自動(dòng)填充的實(shí)現(xiàn)代碼

    這篇文章主要介紹了mybatis-plus主鍵id生成、字段自動(dòng)填充的實(shí)現(xiàn)代碼,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-12-12
  • Java——對(duì)象初始化順序使用詳解

    Java——對(duì)象初始化順序使用詳解

    本篇文章介紹了,Java對(duì)象初始化順序的使用。需要的朋友參考下
    2017-04-04
  • Java判斷map是否為null或者空的方法小結(jié)

    Java判斷map是否為null或者空的方法小結(jié)

    這篇文章主要介紹了Java 如何判斷map為null或者空,文中通過代碼示例講解的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2024-08-08
  • java8 Stream list to Map key 重復(fù) value合并到Collectio的操作

    java8 Stream list to Map key 重復(fù) value合并到Collectio的操作

    這篇文章主要介紹了java8 Stream list to Map key 重復(fù) value合并到Collectio的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • 深入Java注解原理Annotation

    深入Java注解原理Annotation

    這篇文章主要介紹了深入Java注解原理Annotation,注解可以附加在package,class,method,field等上面,可相當(dāng)于添加了額外的輔助信息,可以通過反射機(jī)制編程實(shí)現(xiàn)對(duì)這些元數(shù)據(jù)的訪問,需要的朋友可以參考下
    2023-10-10
  • Java中對(duì)象的創(chuàng)建和銷毀過程詳析

    Java中對(duì)象的創(chuàng)建和銷毀過程詳析

    這篇文章主要介紹了Java中對(duì)象的創(chuàng)建和銷毀過程,對(duì)象的創(chuàng)建過程包括類加載檢查、內(nèi)存分配、初始化零值內(nèi)存、設(shè)置對(duì)象頭和執(zhí)行init方法,對(duì)象的銷毀過程由垃圾回收機(jī)制負(fù)責(zé),文中介紹的非常詳細(xì),需要的朋友可以參考下
    2025-02-02
  • Java線程阻塞的方法區(qū)別詳解

    Java線程阻塞的方法區(qū)別詳解

    這篇文章主要介紹了Java線程阻塞的方法區(qū)別詳解,線程阻塞是指當(dāng)一個(gè)線程無法繼續(xù)執(zhí)行時(shí),它會(huì)進(jìn)入阻塞狀態(tài),直到某個(gè)條件滿足后才能繼續(xù)執(zhí)行,線程阻塞可以通過多種方式實(shí)現(xiàn),如等待鎖、等待IO操作、等待其他線程的完成等,需要的朋友可以參考下
    2023-10-10
  • SpringBoot3整合Nacos?V2.3.2的詳細(xì)過程

    SpringBoot3整合Nacos?V2.3.2的詳細(xì)過程

    本文介紹了如何在?Spring?Boot?3.2.x?項(xiàng)目中整合?Nacos?2.3.2,包括依賴配置、Nacos?服務(wù)發(fā)現(xiàn)與動(dòng)態(tài)配置的配置方法,通過整合?Nacos,Spring?Boot?應(yīng)用可以實(shí)現(xiàn)高效的服務(wù)發(fā)現(xiàn)、動(dòng)態(tài)配置管理以及分布式系統(tǒng)中的靈活擴(kuò)展,感興趣的朋友跟隨小編一起看看吧
    2024-11-11
  • Java Spring Cloud 負(fù)載均衡詳解

    Java Spring Cloud 負(fù)載均衡詳解

    這篇文章主要介紹了Spring Cloud負(fù)載均衡及遠(yuǎn)程調(diào)用實(shí)現(xiàn)詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2021-09-09
  • SpringBoot項(xiàng)目的配置文件中設(shè)置server.port不生效問題

    SpringBoot項(xiàng)目的配置文件中設(shè)置server.port不生效問題

    這篇文章主要介紹了SpringBoot項(xiàng)目的配置文件中設(shè)置server.port不生效問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-11-11

最新評(píng)論

左贡县| 灌南县| 广南县| 交城县| 黄大仙区| 密云县| 山东| 冕宁县| 牡丹江市| 皋兰县| 西丰县| 建德市| 增城市| 湖北省| 泸州市| 徐州市| 临高县| 新乐市| 永新县| 毕节市| 鄂州市| 兴宁市| 康定县| 新蔡县| 伊金霍洛旗| 防城港市| 梅州市| 萍乡市| 华宁县| 大关县| 宜良县| 子长县| 常德市| 宝清县| 任丘市| 年辖:市辖区| 乐清市| 通河县| 北川| 天气| 绵阳市|