1. 程式人生 > >Java第四周員工管理系統集合版

Java第四周員工管理系統集合版

**第一部分 案例描述
案例目的
學習面向物件的主要特徵和基本概念,包括類、物件、繼承、封裝、多型、方法的過載和重寫、Java的訪問修飾符與其它關鍵字以及集合等。
案例難度
★★★
案例覆蓋技能點
1、流程控制語句
2、類、物件
3、封裝、繼承、多型
4、方法的過載、重寫
5、訪問修飾符
6、static、finally
7、集合
適用課程和物件
JAVA面向物件程式設計基礎
第二部分 需求和開發環境
使用技術和開發環境
JEclipse3.0或以上、JDK7.0或以上
案例需求
需求說明:
員工資訊的基本情況
普通員工
屬性:員工編號、員工姓名、員工職務、請假天數、基本工資
普通員工工資:
在基本工資的基礎上增加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
工資扣除部分,所有員工都一樣
無請假,基本工資全發,有請假,扣除每天平均工資 * 請假天數

具體實現步驟:
1.新建工程StaffManagement,包名:my.employee
2.新增員工類Employee, 該類中主要屬性及方法:**

實現過程程式碼:
1、員工類Employee, 該類中主要屬性及方法:
package test9_10StaffManagement;
/***
 * 2.新增員工類Employee, 該類中主要屬性及方法:
 * @author HP-Developer
 *屬性:員工編號、員工姓名、員工職務、請假天數、基本工資
 */
public class Employee  {

    private String ID;
    private
String name; private String position; private int holiday; private double salary; public Employee( String ID,String name,String postion,int holiday,double salary, String position){ super(); this.ID=ID; this.name=name; this.position=position; this
.holiday=holiday; this.salary=salary; } 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 getPosition() { return position; } public void setPosition(String position) { this.position = position; } 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; } public double sumSalary(int holiday){ return 1; } public void display(){ System.out.println("編號:"+this.ID+"姓名:"+this.name +"職務:"+this.position+"請假天數:"+this.holiday+"工資:"+this.sumSalary(this.holiday)); } } 2package test9_10StaffManagement; /*** * 3.新增懂事類Director繼承於員工類Employee, 該類中構造方法及薪水方法: * @author HP-Developer *董事工資: 在基本工資的基礎上增加8%的工作餐,30%的崗位補助,2000元住房補助,3000元投資補助 基本工資+基本工資*0.08+基本工資*0.3+2000+3000 */ public class Director extends Employee { public Director(String ID, String name, String postion, int holiday, double salary, String position) { super(ID, name, postion, holiday, salary, position); this.setID(ID); this.setName(name); this.setPosition(position); this.setHoliday(holiday); this.setSalary(salary); } public double sumSalary(int holiday){ return (this.getSalary()*1.38+5000)/30*(30-this.getHoliday()); } } 3package test9_10StaffManagement; /*** * 4.參照類Director新增經理類Manager,Manager也繼承於員工類Employee * @author HP-Developer * 在基本工資的基礎上增加20%的工作餐,50%的崗位補助,500元住房補助 基本工資+基本工資*0.2+基本工資*0.5+500 */ public class Manager extends Employee { public Manager(String ID, String name, String postion, int holiday, double salary, String position) { super(ID, name, postion, holiday, salary, position); this.setID(ID); this.setName(name); this.setPosition(position); this.setHoliday(holiday); this.setSalary(salary); } public double sumSalary(int holiday){ return (this.getSalary()*1.7+500)/30*(30-this.getHoliday()); } } 4package test9_10StaffManagement; /*** * 5.參照類Director新增普通員工類CommonEmployee, * CommonEmployee也繼承於員工類Employee * @author HP-Developer * @data 2015-9-10 * 普通員工工資: 在基本工資的基礎上增加10%的工作餐,50%的崗位補助,200元住房補助 基本工資+基本工資*0.1+基本工資*0.5+200 * */ public class CommonEmployee extends Employee { public CommonEmployee(String ID, String name, String postion, int holiday, double salary, String position) { super(ID, name, postion, holiday, salary, position); this.setID(ID); this.setName(name); this.setPosition(position); this.setHoliday(holiday); this.setSalary(salary); } public double sumSalary(int holiday){ return (this.getSalary()*1.6+500)/30*(30-this.getHoliday()); } } 5package test9_10StaffManagement; import java.util.ArrayList; import java.util.Scanner; /*** * 新建陣列列表類物件,用於儲存員工資訊 * 增加 * addEmployee(){} * 刪除員工資訊方法: * public void delEmployee(){ } 更新員工資訊方法 public void updateEmployee(){ } 查詢員工資訊方法: public void queryEmployee(){ } * @author HP-Developer * @data 2015-9-10 */ public class EmployeeInformationPro { public static ArrayList<Employee> ems=new ArrayList(); /*** *1 新增員工資訊方法: */ public void addEmployee(){ Scanner sc=new Scanner(System.in); System.out.println("請輸入員工編號:"); String id=sc.nextLine(); System.out.println("請輸入員工姓名:"); String name=sc.nextLine(); System.out.println("請輸入員工職務(提示輸入:employee,manager,chairman):"); String position=sc.nextLine(); System.out.println("請輸入員工請假天數:"); int holiday=sc.nextInt(); System.out.println("請輸入員工基本工資:"); double salary=sc.nextDouble(); if(position.equals("employee")){ Employee newOne=new CommonEmployee(id, name, position, holiday, salary, position); ems.add(newOne); System.out.println("新增資料成功!"); newOne.display(); } else if(position.equals("manager")){ Employee newOne=new Manager(id, name, position, holiday, salary, position); ems.add(newOne); System.out.println("新增資料成功!"); newOne.display(); } else if(position.equals("chairman")){ Employee newOne=new Director(id, name, position, holiday, salary, position); ems.add(newOne); System.out.println("新增資料成功!"); newOne.display(); }else { System.out.println("親,你輸入的內容,難以識別!"); } } //刪除員工資訊方法: public void delEmployee(){ Scanner sc=new Scanner(System.in); System.out.println("請輸入刪除員工資訊的員工編號:"); String id=sc.nextLine(); for(int i=0;i<ems.size();i++){ if( id.equals(ems.get(i).getID())){ ems.remove(ems.get(i)); } } System.out.println("親,刪除員工資訊完成!"); } // 更新員工資訊方法; public void updateEmployee(){ Scanner sc=new Scanner(System.in); System.out.println("請輸入 更新員工資訊的員工編號:"); String id=sc.nextLine(); for(int i=0;i<ems.size();i++){ if( id.equals(ems.get(i).getID())){ System.out.println("請輸入員工姓名:"); String name=sc.nextLine(); ems.get(i).setName(name); System.out.println("請輸入員工職務(提示輸入:employee,manager,chairman):"); String position=sc.nextLine(); ems.get(i).setPosition(position); System.out.println("請輸入員工請假天數:"); int holiday=sc.nextInt(); ems.get(i).setHoliday(holiday); System.out.println("請輸入員工基本工資:"); double salary=sc.nextDouble(); ems.get(i).setSalary(salary); System.out.println("親,更新員工資訊完成!"); ems.get(i).display(); } } } // 查詢員工資訊方法: public void queryEmployee(){ Scanner sc=new Scanner(System.in); System.out.println("請輸入查詢員工編號:"); String id=sc.nextLine(); for(int i=0;i<ems.size();i++){ if( id.equals(ems.get(i).getID())){ ems.get(i).display(); System.out.println(); } } } } 6package test9_10StaffManagement; import java.util.Scanner; /*** * 測試類來執行一下! * @author HP-Developer * */ public class TestEmployee { static EmployeeInformationPro em=new EmployeeInformationPro(); public static void main(String[] args) { show(); test(); } public static void show(){ boolean choice=true; while(choice){ 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("請選擇業務,請輸入數字:"); choice=false; } } public static void test(){ Scanner input=new Scanner(System.in); int choice=input.nextInt(); switch(choice){ case 1: em.addEmployee(); show(); test(); break; case 2: em.delEmployee(); show(); test(); break; case 3: em.updateEmployee(); show(); test(); break; case 4: em.queryEmployee(); show(); test(); break; case 0: System.out.println("退出成功!"); System.exit(choice); break; default: System.out.println("對不起,您輸入有誤!"); show(); test(); break; } } } /***執行結果: * ||--------------|| ||----1、增加-----|| ||----2、刪除-----|| ||----3、修改-----|| ||----4、查詢-----|| ||----0退出-----|| ||--------------|| 請選擇業務,請輸入數字: 1 請輸入員工編號: 1 請輸入員工姓名: malin 請輸入員工職務(提示輸入:employee,manager,chairman): chairman 請輸入員工請假天數: 1 請輸入員工基本工資: 10900000 新增資料成功! 編號:1姓名:malin職務:chairman請假天數:1工資:1.4545433333333332E7 ||--------------|| ||----1、增加-----|| ||----2、刪除-----|| ||----3、修改-----|| ||----4、查詢-----|| ||----0退出-----|| ||--------------|| 請選擇業務,請輸入數字: 2 請輸入刪除員工資訊的員工編號: 1 親,刪除員工資訊完成! ||--------------|| ||----1、增加-----|| ||----2、刪除-----|| ||----3、修改-----|| ||----4、查詢-----|| ||----0退出-----|| ||--------------|| 請選擇業務,請輸入數字: 4 請輸入查詢員工編號: 1 ||--------------|| ||----1、增加-----|| ||----2、刪除-----|| ||----3、修改-----|| ||----4、查詢-----|| ||----0退出-----|| ||--------------|| 請選擇業務,請輸入數字: */