員工管理系統數組版
第一部分 案例描述
案例目的
學習面向對象的主要特徵和基本概念,包括類、對象、繼承、封裝、多態、方法的重載和重寫、Java的訪問修飾符與其它關鍵字等。
案例難度
★★★
案例覆蓋技能點
1、 流程控制語句
2、 類、對象
3、 封裝、繼承、多態
4、 方法的重載、重寫
5、 訪問修飾符
6、 static、finally
適用課程和對象
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 |
工資扣除部分,所有員工都一樣 無請假,基本工資全發,有請假,扣除每天平均工資 * 請假天數 |
通過面向對象的編程思想,實現員工信息的增刪改查,存儲結構爲數組。限定數組長度爲100,業務流程如下
一、啓動業務選擇界面
二、增加員工
1.增加普通員工
2.增加經理
3.增加董事長
三、刪除
四、修改
4、查詢
系統基本模塊包括:
功能點 |
難度 |
備註 |
父類Employee類的創建 |
★★★ |
|
三個子類:CommonEmployee類,Manager類和Director類的創建 |
★★★ |
|
管理類TestEMD類——增加 |
★★★★ |
|
管理類TestEMD類——刪除 |
★★★★ |
|
管理類TestEMD類——修改 |
★★★★ |
|
管理類TestEMD類——查詢 |
★★★★ |
|
項目類彙總
package com.hp;
public class Xinxi {
public String bianhao;
public String xingming;
public String zhiwu;
public int qingjia;
public int jbgz;
public int gzgz;
public Xinxi(String bianhao, String xingming, String zhiwu, int qingjia,
int jbgz) {
super();
this.bianhao = bianhao;
this.xingming = xingming;
this.zhiwu = zhiwu;
this.qingjia = qingjia;
this.jbgz = jbgz;
}
@Override
public String toString() {
return "編號:" + bianhao + ", 姓名:" + xingming + ", 職務:"
+ zhiwu + ", 請假天數:" + qingjia;
}
public void gz(){
double yggz;
yggz=jbgz*1.6+200+jbgz/30*qingjia;
System.out.println(yggz);
}
}
package com.hp;
public class Dsgz extends Xinxi{
public Dsgz(String bianhao, String xingming, String zhiwu, int qingjia,
int jbgz) {
super(bianhao, xingming, zhiwu, qingjia, jbgz);
// TODO Auto-generated constructor stub
}
public void gz(){
double yggz;
yggz=jbgz*1.38+5000+jbgz/30*qingjia;
System.out.println(yggz);
}
}
package com.hp;
class Jlgz extends Xinxi{
public Jlgz(String bianhao, String xingming, String zhiwu, int qingjia,
int jbgz) {
super(bianhao, xingming, zhiwu, qingjia, jbgz);
}
public void gz(){
double yggz;
yggz=jbgz*1.7+500+jbgz/30*qingjia;
System.out.println(yggz);
}
}
package com.hp;
import java.util.Scanner;
public class Yggl {
public static void main(String[]args){
Xinxi ziliao[]=new Xinxi[100];
int xuhao=0;
for(int j=0;j<100;j++){
System.out.println("———————————員工管理系統————————————");
System.out.println("1.添加 2.刪除 3.修改 4.查詢 0.退出");
System.out.println("———————————員工管理系統————————————");
System.out.println("請選擇業務");
Scanner input=new Scanner(System.in);
int a=input.nextInt();
switch(a){
case 0:{
j=111;
};break;
case 1:{
System.out.println("請輸入編號:");
Scanner bh=new Scanner(System.in);
String bianhao=bh.next();
System.out.println("請輸入姓名:");
Scanner xm=new Scanner(System.in);
String xingming=xm.next();
System.out.println("請輸入職務(普通員工,經理,董事長):");
Scanner zw=new Scanner(System.in);
String zhiwu=zw.next();
System.out.println("請輸入請假天數:");
Scanner qj=new Scanner(System.in);
int qingjia=qj.nextInt();
System.out.println("請輸入基本工資:");
Scanner jb=new Scanner(System.in);
int jbgz=jb.nextInt();
ziliao[xuhao]=new Xinxi(bianhao, xingming, zhiwu, qingjia, jbgz);
System.out.print(ziliao[xuhao].toString());
System.out.print(",工資:");
if("普通員工".equals(ziliao[xuhao].zhiwu)==true){
Xinxi ziliao0=new Xinxi(bianhao, xingming, zhiwu, qingjia, jbgz);
ziliao0.gz();
}else if("經理".equals(ziliao[xuhao].zhiwu)==true){
Jlgz ziliao1=new Jlgz(bianhao, zhiwu, zhiwu, qingjia, jbgz);
ziliao1.gz();
}else if("董事長".equals(ziliao[xuhao].zhiwu)==true){
Dsgz ziliao2=new Dsgz(bianhao, xingming, zhiwu, qingjia, jbgz);
ziliao2.gz();
}else{
System.out.println("輸入錯誤,請重新輸入");
break;
}
xuhao=xuhao+1;
};break;
case 2:{
System.out.println("——————————————————刪除電話本————————————————");
System.out.println("需要刪除的姓名:");
Scanner mmm=new Scanner(System.in);
String xingmingshan=mmm.next();
for(int i=0;i<xuhao;i++){
if(xingmingshan.equals(ziliao[i].xingming)==true){
System.out.print(ziliao[i].toString());
System.out.print(",工資:");
if("普通員工".equals(ziliao[i].zhiwu)==true){
Xinxi ziliao0=new Xinxi(ziliao[i].bianhao,ziliao[i].xingming,ziliao[i].zhiwu,ziliao[i].qingjia,ziliao[i].jbgz );
ziliao0.gz();
}else if("經理".equals(ziliao[i].zhiwu)==true){
Jlgz ziliao1=new Jlgz(ziliao[i].bianhao,ziliao[i].xingming,ziliao[i].zhiwu,ziliao[i].qingjia,ziliao[i].jbgz);
ziliao1.gz();
}else if("董事長".equals(ziliao[i].zhiwu)==true){
Dsgz ziliao2=new Dsgz(ziliao[i].bianhao,ziliao[i].xingming,ziliao[i].zhiwu,ziliao[i].qingjia,ziliao[i].jbgz);
ziliao2.gz();}
for(int n=i;n<xuhao-1;n++){
ziliao[n]=ziliao[n+1];
}
xuhao=xuhao-1;
break;
}
if (i==xuhao-1){
System.out.println("查無此人");
}
}
};break;
case 3:{
System.out.println("需要修改的姓名:");
Scanner mmmm=new Scanner(System.in);
String xingmingxiu=mmmm.next();
for(int k=0;k<xuhao;k++){
if(xingmingxiu.equals(ziliao[k].xingming)==true){
System.out.print(ziliao[k].toString());
System.out.print(",工資:");
if("普通員工".equals(ziliao[k].zhiwu)==true){
Xinxi ziliao0=new Xinxi(ziliao[k].bianhao,ziliao[k].xingming,ziliao[k].zhiwu,ziliao[k].qingjia,ziliao[k].jbgz );
ziliao0.gz();
}else if("經理".equals(ziliao[k].zhiwu)==true){
Jlgz ziliao1=new Jlgz(ziliao[k].bianhao,ziliao[k].xingming,ziliao[k].zhiwu,ziliao[k].qingjia,ziliao[k].jbgz);
ziliao1.gz();
}else if("董事長".equals(ziliao[k].zhiwu)==true){
Dsgz ziliao2=new Dsgz(ziliao[k].bianhao,ziliao[k].xingming,ziliao[k].zhiwu,ziliao[k].qingjia,ziliao[k].jbgz);
ziliao2.gz();}
System.out.println("請輸入編號:");
Scanner bh=new Scanner(System.in);
String bianhao1=bh.next();
System.out.println("請輸入姓名:");
Scanner xm=new Scanner(System.in);
String xingming1=xm.next();
System.out.println("請輸入職務(普通員工,經理,董事長):");
Scanner zw=new Scanner(System.in);
String zhiwu1=zw.next();
System.out.println("請輸入請假天數:");
Scanner qj=new Scanner(System.in);
int qingjia1=qj.nextInt();
System.out.println("請輸入基本工資:");
Scanner jb=new Scanner(System.in);
int jbgz1=jb.nextInt();
ziliao[k]=new Xinxi(bianhao1, xingming1, zhiwu1, qingjia1, jbgz1);
System.out.print(ziliao[k].toString());
System.out.print(",工資:");
if("普通員工".equals(ziliao[k].zhiwu)==true){
Xinxi ziliao0=new Xinxi(bianhao1, xingming1, zhiwu1, qingjia1, jbgz1);
ziliao0.gz();
}else if("經理".equals(ziliao[k].zhiwu)==true){
Jlgz ziliao1=new Jlgz(bianhao1, zhiwu1, zhiwu1, qingjia1, jbgz1);
ziliao1.gz();
}else if("董事長".equals(ziliao[k].zhiwu)==true){
Dsgz ziliao2=new Dsgz(bianhao1, xingming1, zhiwu1, qingjia1, jbgz1);
ziliao2.gz();
}else{
System.out.println("輸入錯誤,請重新輸入");
break;
}
}
}
};break;
case 4:{
System.out.println("需要查詢的姓名:");
Scanner mmmaa=new Scanner(System.in);
String xingmingcha=mmmaa.next();
for (int m=0;m<xuhao ;m++){
if(xingmingcha.equals(ziliao[m].xingming)==true){
System.out.println(ziliao[m].toString());
System.out.print(",工資:");
if("普通員工".equals(ziliao[m].zhiwu)==true){
Xinxi ziliao0=new Xinxi(ziliao[m].bianhao,ziliao[m].xingming,ziliao[m].zhiwu,ziliao[m].qingjia,ziliao[m].jbgz );
ziliao0.gz();
}else if("經理".equals(ziliao[m].zhiwu)==true){
Jlgz ziliao1=new Jlgz(ziliao[m].bianhao,ziliao[m].xingming,ziliao[m].zhiwu,ziliao[m].qingjia,ziliao[m].jbgz);
ziliao1.gz();
}else if("董事長".equals(ziliao[m].zhiwu)==true){
Dsgz ziliao2=new Dsgz(ziliao[m].bianhao,ziliao[m].xingming,ziliao[m].zhiwu,ziliao[m].qingjia,ziliao[m].jbgz);
ziliao2.gz();}
break;
}
if (m==xuhao-1){
System.out.println("查無此人");
}
}
};break;
default:{
System.out.println("無此功能");
};break;
}
}
}
}