员工管理系统数组版
第一部分 案例描述
案例目的
学习面向对象的主要特征和基本概念,包括类、对象、继承、封装、多态、方法的重载和重写、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;
}
}
}
}