亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Java實現(xiàn)員工管理系統(tǒng)

 更新時間:2018年01月11日 11:52:24   作者:SleepException  
這篇文章主要為大家詳細(xì)介紹了Java實現(xiàn)員工管理系統(tǒng),具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了Java實現(xiàn)員工管理系統(tǒng)的具體代碼,供大家參考,具體內(nèi)容如下

本系統(tǒng)主要練習(xí)到的相關(guān)內(nèi)容:

1、 流程控制語句
2、 類、對象
3、 封裝、繼承、多態(tài)
4、 方法的重載、重寫
5、 訪問修飾符
6、 static

需求說明:

員工信息的基本情況
—————————普通員工—————————–
屬性:員工編號、員工姓名、員工職務(wù)、請假天數(shù)、基本工資
普通員工工資:
在基本工資的基礎(chǔ)上增加10%的工作餐,50%的崗位補助,200元住房補助
基本工資+基本工資*0.1+基本工資*0.5+200
—————————–經(jīng)理——————————–
屬性:員工編號、員工姓名、員工職務(wù)、請假天數(shù)、基本工資
經(jīng)理工資:
在基本工資的基礎(chǔ)上增加20%的工作餐,50%的崗位補助,500元住房補助
基本工資+基本工資*0.2+基本工資*0.5+500
——————————-董事——————————–
屬性:員工編號、員工姓名、員工職務(wù)、請假天數(shù)、基本工資
董事工資:
在基本工資的基礎(chǔ)上增加8%的工作餐,30%的崗位補助,2000元住房補助,3000元投資補助
基本工資+基本工資*0.08+基本工資*0.3+2000+3000
——————————–其他———————————
工資扣除部分,所有員工都一樣
無請假,基本工資全發(fā),有請假,扣除每天平均工資 * 請假天數(shù)

大體設(shè)計思路:

員工父類一個,普通員工,經(jīng)理,董事長子類各一個,分別重寫父類的工資方法。最后一個測試類。
實現(xiàn)后界面如圖:

父類子類的編寫沒什么問題,注意盡量做好封裝,屬性最好用private修飾。小編偷了個懶,主要把時間用在測試類的編寫上o( ̄ε ̄*)o。
注意:由于本系統(tǒng)只是將對象存于對象數(shù)組,數(shù)組初始化時定長設(shè)定為100,系統(tǒng)會自動初始化每個數(shù)組元素為null,所以在寫測試類的方法時一定注意寫好判斷預(yù)防遍歷賦值發(fā)生的空指針錯誤,小編比較笨,所以饒了好一會才寫出來(¬_¬)
還有就是如果更改員工的資料時注意,若是員工的職位發(fā)生變化該怎么處理,畢竟對象變了,處理工資的方法也不一樣。

以下貼出代碼:

首先是父類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+",請假天數(shù):"+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);
 }
}

接下來就是關(guān)鍵的測試類,這里完成增刪改查== 有點多。

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

 public static void caoZuo() {
  System.out.println("----  工資管理系統(tǒng)     ----");
  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("請輸入相關(guān)信息:");
  System.out.print("ID:");
  String id = sc.next();
  System.out.print("姓名:");
  String name = sc.next();
  System.out.print("職務(wù):");
  String position = sc.next();
  System.out.print("請假天數(shù):");
  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 "經(jīng)理":
   Employee b = new Manager();
   b.ID = id;
   b.name = name;
   b.position = "經(jīng)理";
   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("不存在此職務(wù),請重新輸入!");
   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("請重新輸入相關(guān)信息:");
     System.out.print("ID:");
     String id = sc.next();
     System.out.print("姓名:");
     String name = sc.next();
     System.out.print("職務(wù):");
     String position = sc.next();
     System.out.print("請假天數(shù):");
     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 "經(jīng)理":
      if (em[i].position.equals("經(jīng)理")) {
       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 = "經(jīng)理";
       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("不存在此職務(wù),請重新輸入!");
      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();
 }

}

程序剛寫完就來發(fā)帖了,簡單測試并未發(fā)現(xiàn)什么問題,若是大家發(fā)現(xiàn)有什么不對的歡迎指正,謝謝啦。

更多學(xué)習(xí)資料請關(guān)注專題《管理系統(tǒng)開發(fā)》。

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

相關(guān)文章

  • Java創(chuàng)建student類詳細(xì)代碼例子

    Java創(chuàng)建student類詳細(xì)代碼例子

    這篇文章主要給大家介紹了關(guān)于Java創(chuàng)建student類的相關(guān)資料,學(xué)生類(Student)是一種面向?qū)ο蟮木幊谈拍?其主要用于描述學(xué)生的屬性和行為,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-11-11
  • SpringBoot中fastjson自定義序列化和反序列化的實戰(zhàn)分享

    SpringBoot中fastjson自定義序列化和反序列化的實戰(zhàn)分享

    在fastjson庫中,為了提供靈活的序列化和反序列化機制,設(shè)計了一系列的擴展點,以下是在SpringBoot和SpringClould環(huán)境中對這些擴展點的詳細(xì)介紹及其實戰(zhàn)使用,通過代碼示例講解的非常詳細(xì),需要的朋友可以參考下
    2024-07-07
  • SpringCloud基本Rest微服務(wù)工程搭建過程

    SpringCloud基本Rest微服務(wù)工程搭建過程

    這篇文章主要介紹了SpringCloud基本Rest微服務(wù)工程搭建,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-01-01
  • Java泛型通配符的使用詳解

    Java泛型通配符的使用詳解

    本文主要介紹了Java泛型通配符的使用詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-01-01
  • 關(guān)于JVM翻越內(nèi)存管理的墻

    關(guān)于JVM翻越內(nèi)存管理的墻

    這篇文章主要介紹了JVM翻越內(nèi)存管理的墻,由虛擬機管理內(nèi)存看起來一切都很美好,但也正是因為把控制內(nèi)存的權(quán)力交給了Java虛擬機,一旦出現(xiàn)內(nèi)存泄漏和溢出方面的問題,就不得不從Java虛擬機角度上去排查問題,本文給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2022-05-05
  • Spring配置數(shù)據(jù)源流程與作用詳解

    Spring配置數(shù)據(jù)源流程與作用詳解

    這篇文章主要介紹了使用SpringBoot配置多數(shù)據(jù)源的經(jīng)驗分享,本文通過示例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-08-08
  • Spring AOP注解失效的坑及JDK動態(tài)代理

    Spring AOP注解失效的坑及JDK動態(tài)代理

    這篇文章主要介紹了Spring AOP注解失效的坑及JDK動態(tài)代理,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-03-03
  • Spring?Cloud?Eureka?搭建?&?集群方式

    Spring?Cloud?Eureka?搭建?&?集群方式

    這篇文章主要介紹了Spring?Cloud?Eureka?搭建?&?集群方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • java實現(xiàn)登錄注冊界面

    java實現(xiàn)登錄注冊界面

    這篇文章主要為大家詳細(xì)介紹了java實現(xiàn)登錄注冊界面,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-06-06
  • Java中null的意義及其使用時的注意事項說明

    Java中null的意義及其使用時的注意事項說明

    這篇文章主要介紹了Java中null的意義及其使用時的注意事項說明,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-09-09

最新評論