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));
}
}
2、package 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());
}
}
3、package 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());
}
}
4、package 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());
}
}
5、package 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();
}
}
}
}
6、package 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退出-----||
||--------------||
請選擇業務,請輸入數字:
*/