java 员工管理系统

员工管理系统数组版

第一部分 案例描述

       案例目的

         学习面向对象的主要特征和基本概念,包括类、对象、继承、封装、多态、方法的重载和重写、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,业务流程如下

一、 启动业务选择界面

java 员工管理系统_第1张图片

二、 增加员工

1.增加普通员工

java 员工管理系统_第2张图片


2.增加经理

java 员工管理系统_第3张图片

3.增加董事长

java 员工管理系统_第4张图片

三、 删除

java 员工管理系统_第5张图片

四、 修改

java 员工管理系统_第6张图片

4、查询

java 员工管理系统_第7张图片

系统基本模块包括:

功能点

难度

备注

父类Employee类的创建

★★★

 

三个子类:CommonEmployee类,Manager类和Director类的创建

★★★

 

管理类TestEMD类——增加

★★★★

 

管理类TestEMD类——删除

★★★★

 

管理类TestEMD类——修改

★★★★

 

管理类TestEMD类——查询

★★★★

 

 

项目类汇总

java 员工管理系统_第8张图片

//源代码

package com.hp.employees;

public class Employee {

	private String id;
	private String name;
	private String position;
	private int holiday;
	private double salary;
	/*
	 * 创建类的时候如果自己没有写构造方法,
	 * 系统提供一个默认的无参构造方法
	 */
	public Employee(){}////如不写 系统会提供默认的构造函数
	/*
	 * 重载
	 */
	public Employee(String id,String name,
			String position,int holiday,double salary){
		this.id=id;
		this.name=name;
		this.position=position;
		this.holiday=holiday;
		this.salary=salary;	
	}
	/*
	 * get set函数(方法)
	 *
	 */
	public String getId() {
		return id;
	}
	public void setId(String id) {
		this.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));
	}
	
}
//普通员工类

package com.hp.employees;

public class CommonEmployee extends Employee {
/*
 * 构造方法
 */
	public CommonEmployee(String id,String name,
			String position,int holiday,double salary){
		super(id, name, position, holiday, salary);
		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+200)/30*(30-this.getHoliday());
	}
	}

//经理类

package com.hp.employees;

public class Manager extends Employee{
/*
 * 构造方法
 */
	public Manager(String id,String name,String position,
			int holiday,double salary){
		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());
	}
}
//董事长类

package com.hp.employees;

public class Director extends Employee{

	/*
	 * 构造方法
	 */
		public Director(String id,String name,String position,
				int holiday,double salary){
			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+2000+3000)/30*(30-this.getHoliday());
		}
}
//测试类

package com.hp.employees;

import java.util.Scanner;

public class TestEMD {

	/*
	 * 成员属性
	 */
	public static Employee[] ems=new Employee[100];
	public static int maxIndex=-1;
	/*
	 * 增加
	 */
	public static void addEmplyee(){
		Scanner sc=new Scanner(System.in);
		System.out.println("请输入员工编号:");
		String id=sc.next();
		System.out.println("请输入员工姓名:");
		String name=sc.next();
		System.out.println("请输入员工职务(普通员工,经理,董事长):");
		String position=sc.next();
		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);
			System.out.println("增加数据成功");
			newOne.display();
			maxIndex++;
			ems[maxIndex]=newOne;
		}
		else if(position.equals("经理")){
			Employee newOne=new Manager(id, name, position, holiday, salary);
			System.out.println("增加数据成功");
			newOne.display();
			maxIndex++;
			ems[maxIndex]=newOne;
		}
		else if(position.equals("董事长")){
			Employee newOne=new Director(id, name, position, holiday, salary);
			System.out.println("增加数据成功");
			newOne.display();
			maxIndex++;
			ems[maxIndex]=newOne;
		}
		else{
			System.out.println("你所输入的职务不存在");
		}
	}
	/*
	 * 删除
	 */
	public static void delEmployee(){
		Scanner sc= new Scanner(System.in);
		System.out.println("请输入要删除的员工姓名");
		String delName=sc.next();
		boolean b1=false;
		for(int i=0;i<=maxIndex;i++){
			if(ems[i].getName().equals(delName)){
				ems[i].display();
				System.out.println("删除数据成功");
				for(;i<=maxIndex;i++){
					ems[i]=ems[i+1];
					b1=true;
					maxIndex--;
				}
			}
		}
		if(!b1){
			System.out.println("你要删除的人不存在");
		}
	}
	/*
	 * 修改
	 */
	public static void updateEmployee(){
		Scanner sc=new Scanner(System.in);
		System.out.println("请输入你要修改的员工姓名");
		String updateName=sc.next();
		boolean b1=false;
		for(int i=0;i<=maxIndex;i++){
			if(ems[i].getName().equals(updateName)){
				ems[i].display();
				System.out.println("请重新输入员工信息");
				System.out.println("请输入员工编号");
				String id=sc.next();
				System.out.println("请输入员工姓名");
				String name=sc.next();
				System.out.println("请输入员工职务(普通员工,经理,董事长)");
				String position=sc.next();
				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);
					System.out.println("修改数据成功");
					newOne.display();
					ems[i]=newOne;
				}
				else if(position.equals("经理")){
					Employee newOne=new Manager(id, name, position, holiday, salary);
					System.out.println("修改数据成功");
					newOne.display();
					ems[i]=newOne;
				}
				else if(position.equals("董事长")){
					Employee newOne=new Director(id, name, position, holiday, salary);
					System.out.println("修改数据成功");
					newOne.display();
					ems[i]=newOne;
				}
				else{
					System.out.println("你所输入的职务不存在");
				}
			}
		}
	}
	/*
	 * 查找
	 */
	public static void queryEmployee(){
		Scanner sc=new Scanner(System.in);
		System.out.println("请输入员工姓名");
		String name=sc.next();
		boolean b1=false;
		for(int i=0;i<=maxIndex;i++){
			if(ems[i].getName().equals(name)){
				ems[i].display();
				b1=true;
			}
		}
		if(!b1){
			System.out.println("你要查找的人不存在");
		}
	}
	
	/*
	 * main方法
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
/*
 * 业务选择界面
 * 
 */
		Scanner sc=new Scanner(System.in);
		while(true){
		System.out.println("|--------------|");
		System.out.println("|----1 增加-----|");
		System.out.println("|----2 删改-----|");
		System.out.println("|----3 修改-----|");
		System.out.println("|----4 查询-----|");
		System.out.println("|----5 退出-----|");
		System.out.println("|--------------|");
		System.out.println("请选择业务:");
		int choose=sc.nextInt();
		/*
		 * switch语句
		 */
		switch(choose){
		case 1:
			addEmplyee();
			break;
		case 2:
			delEmployee();
			break;
		case 3:
			updateEmployee();
			break;
		case 4:
			queryEmployee();
			break;
		case 5:
			System.exit(0);
		default:
			System.out.println("你所需的业务不存在,重新输入");
		}	
	}
	}
}





你可能感兴趣的:(编程之道,java)