案例目的
学习面向对象的主要特征和基本概念,包括类、对象、继承、封装、多态、方法的重载和重写、Java的访问修饰符与其它关键字以及集合等。
案例覆盖技能点
1、流程控制语句
2、类、对象
3、封装、继承、多态
4、方法的重载、重写
5、访问修饰符
6、集合
普通员工 属性:员工编号、员工姓名、员工职务、请假天数、基本工资 普通员工工资: 在基本工资的基础上增加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 |
工资扣除部分,所有员工都一样 无请假,基本工资全发,有请假,扣除每天平均工资 * 请假天数 |
核心代码:
package my.employee;
import java.util.*;
public class EmployeeInformationPro {
public static ArrayList
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("请输入员工职务:(普通员工,经理,董事长)");
String position = sc.nextLine();
System.out.println("请输入员工请假天数:");
int holiday = sc.nextInt();
System.out.println("请输入员工基本工资:");
double salary = sc.nextDouble();
if(position.equals("普通员工")){
Employee newOne = new CommonEmployee(id,name,position,holiday,salary);
ems.add(newOne);
System.out.println("添加数据成功");
newOne.display();
}
else if(position.equals("经理")){
Employee newOne = new Manager(id,name,position,holiday,salary);
ems.add(newOne);
System.out.println("添加数据成功");
newOne.display();
}
else if(position.equals("董事长")){
Employee newOne = new Director(id,name,position,holiday,salary);
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();
Iterator iter = ems.iterator();
int flag = 0;
while(iter.hasNext()){
Employee em = (Employee) iter.next();
if(id.equals(em.getID())){
em.display();
iter.remove();
System.out.println("编号为"+id+"的员工删除成功");
flag = 1;
break;
}
}
if(flag == 0){
System.out.println("编号为"+id+"的员工不存在");
}
}
public void queryEmployee(){
Scanner sc = new Scanner(System.in);
System.out.println("请输入员工编号:");
String id = sc.nextLine();
Iterator iter = ems.iterator();
int flag = 0;
while(iter.hasNext()){
Employee em = (Employee) iter.next();
if(id.equals(em.getID())){
em.display();
System.out.println("编号为"+id+"的员工查询成功");
flag = 1;
break;
}
}
if(flag == 0){
System.out.println("编号为"+id+"的员工不存在");
}
}
public void updateEmployee(){
Scanner sc = new Scanner(System.in);
System.out.println("请输入员工编号:");
String id = sc.nextLine();
Iterator iter = ems.iterator();
int flag = 0;
while(iter.hasNext()){
Employee em = (Employee) iter.next();
if(id.equals(em.getID())){
em.display();
System.out.println("请重新输入员工信息");
System.out.println("请输入员工编号:");
em.setID(sc.nextLine());
System.out.println("请输入员工姓名:");
em.setName(sc.nextLine());
System.out.println("请输入员工职务:(普通员工,经理,董事长)");
em.setPosition(sc.nextLine());
System.out.println("请输入员工请假天数:");
em.setHoliday(sc.nextInt());
System.out.println("请输入员工基本工资:");
em.setSalary(sc.nextDouble());
System.out.println("修改数据成功");
em.display();
flag = 1;
break;
}
}
if(flag == 0){
System.out.println("编号为"+id+"的员工不存在");
}
}
}
package my.employee;
import java.util.Scanner;
public class TestEmployee {
public static void main(String[] args){
while(true){
System.out.println("|--- 1 增加 ---|");
System.out.println("|--- 2 删除 ---|");
System.out.println("|--- 3 修改 ---|");
System.out.println("|--- 4 查询 ---|");
System.out.println("|--- 0 退出 ---|");
System.out.println("请选择业务:");
Scanner sc = new Scanner(System.in);
int i = sc.nextInt();
EmployeeInformationPro ei = new EmployeeInformationPro();
switch(i){
case 1:ei.addEmployee();break;
case 2:ei.delEmployee();break;
case 3:ei.updateEmployee();break;
case 4:ei.queryEmployee();break;
case 0:System.exit(0);break;
}
}
}
}
程序运行:
项目类汇总