欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

java 员工管理系统

程序员文章站 2022-04-10 23:24:49
...

员工管理系统数组版

第一部分 案例描述

       案例目的

         学习面向对象的主要特征和基本概念,包括类、对象、继承、封装、多态、方法的重载和重写、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.增加普通员工

java 员工管理系统


2.增加经理

java 员工管理系统

3.增加董事长

java 员工管理系统

三、 删除

java 员工管理系统

四、 修改

java 员工管理系统

4、查询

java 员工管理系统

系统基本模块包括:

功能点

难度

备注

父类Employee类的创建

★★★

 

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

★★★

 

管理类TestEMD类——增加

★★★★

 

管理类TestEMD类——删除

★★★★

 

管理类TestEMD类——修改

★★★★

 

管理类TestEMD类——查询

★★★★

 

 

项目类汇总

java 员工管理系统

//源代码

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("你所需的业务不存在,重新输入");
		}	
	}
	}
}