员工管理项目

简介

设计了一个员工管理的项目,完成了员工的添加、删除、查询和修改薪资的功能,员工包括工号、姓名、职位、年龄、月薪以及所在部门属性,此项目实现了控制面板的输入,实际操作时也相当简单,项目包含三个类,员工类,员工管理类,测试类,代码如下

员工类

package com.softeem.hrms1;

/**
 * 员工类
 * @author Huaazai
 */
public class Emp {

	/**工号*/
	private int eno;
	/**姓名*/
	private String ename;
	/**职位*/
	private String job;
	/**年龄*/
	private int age;
	/**月薪*/
	private double sal;
	/**所在部门*/
	private String dname;
	
	public Emp() {}

	public Emp(int eno, String ename, String job, int age, double sal, String dname) {
		super();
		this.eno = eno;
		this.ename = ename;
		this.job = job;
		this.age = age;
		this.sal = sal;
		this.dname = dname;
	}

	public int getEno() {
		return eno;
	}

	public void setEno(int eno) {
		this.eno = eno;
	}

	public String getEname() {
		return ename;
	}

	public void setEname(String ename) {
		this.ename = ename;
	}

	public String getJob() {
		return job;
	}

	public void setJob(String job) {
		this.job = job;
	}

	public int getAge() {
		return age;
	}

	public void setAge(int age) {
		this.age = age;
	}

	public double getSal() {
		return sal;
	}

	public void setSal(double sal) {
		this.sal = sal;
	}

	public String getDname() {
		return dname;
	}

	public void setDname(String dname) {
		this.dname = dname;
	}

	@Override
	public String toString() {
		return  eno + "\t" + ename + "\t" + job + "\t" + age + "\t" + sal + "\t" + dname;
	}
	
	
}

员工管理类

package com.softeem.hrms1;

import java.util.ArrayList;

public class EmpManager {
	/**声明一个集合存储所有员工;泛型(参数化类型)*/
	static ArrayList<Emp> list = new ArrayList<>();
	
	/**添加员工*/
	public void addEmp(Emp e){
		list.add(e);
	}
	
	/**根据员工工号查询员工信息*/
	public Emp findByEno(int eno){
		Emp emp = null;
		for(Emp e:list){
			//判断是否找到匹配工号的员工
			if(e.getEno() == eno){
				emp = e;
				break;
			}
		}
		return emp;
	}
	
	/**根据部门名查询员工集合*/
	public ArrayList<Emp> findByDname(String dname){
		ArrayList<Emp> emps = new ArrayList<>();
		for(Emp e:list){
			//查询集合中是否存在员工的部门名称跟参数部门名一致
			if(dname.equals(e.getDname())){
				emps.add(e);
			}
		}
		return emps;
	}
	
	/**查询所有员工信息*/
	public ArrayList<Emp> findAll(){
		return list;
	}
	
	/**根据工号删除员工*/
	public boolean delete(int eno){
		Emp emp = findByEno(eno);
		if(emp != null){
			return list.remove(emp);
		}
		return false;
	}
	
	/**根据工号修改薪资*/
	public boolean modifySal(int eno,double sal){
		Emp emp = findByEno(eno);
		if(emp != null){
			emp.setSal(sal);
			return true;
		}
		return false;
	}
}

测试类

package com.softeem.hrms1;

import java.util.ArrayList;
import java.util.Scanner;

public class EmpClient {
	
	private EmpManager em = new EmpManager();
	private Scanner sc;
	
	public void menu(){
		msg("==============================");
		msg("====SOFTEEM员工管理系统=======");
		msg("====【1】员工添加=============");
		msg("====【2】员工列表=============");
		msg("====【3】根据工号查询员工=====");
		msg("====【4】根据部门名查询员工===");
		msg("====【5】删除员工=============");
		msg("====【6】修改员工薪资=========");		
		msg("====【0】退出系统=============");		
		msg("==============================");
		msg("请输入操作指令:");
		start();
	}
	
	
	private void start() {
		sc = new Scanner(System.in);
		int i = sc.nextInt();
		switch(i){
		case 1:
			add();
			break;
		case 2:
			list();
			break;
		case 3:
			queryByEno();
			break;
		case 4:
			queryByDname();
			break;
		case 5:
			delete();
			break;
		case 6:
			update();
			break;
		case 0:
			exit();
			break;
			default:
				msg("请输入正确的操作指令!!!");
				break;
		}
		menu();
	}
	
	/**系统退出*/
	private void exit() {
		sc = new Scanner(System.in);
		msg("是否确定退出?(Y/N)");
		String op = sc.next();
		if(op.equalsIgnoreCase("y")){
			msg("谢谢使用,再见!");
			System.exit(1);
		}
	}


	/**根据员工号修改员工薪资的客户端实现*/
	private void update() {
		sc = new Scanner(System.in);
		msg("请输入员工的工号:");
		int eno = sc.nextInt();
		msg("请输入需要调整的薪资:");
		double sal = sc.nextDouble();
		if(em.modifySal(eno, sal)){
			msg("修改成功!");
		}else{
			msg("修改失败!");
		}
		
	}

	/**根据员工号删除员工的客户端实现*/
	private void delete() {
		sc = new Scanner(System.in);
		msg("请输入员工的工号:");
		int eno = sc.nextInt();
		if(em.delete(eno)){
			msg("删除成功!");
		}else{
			msg("删除失败!");
		}
	}


	/**根据部门名查询员工的客户端实现*/
	private void queryByDname() {
		sc = new Scanner(System.in);
		msg("请输入需要查询的部门名称:");
		String dname = sc.nextLine();
		ArrayList<Emp> list = em.findByDname(dname);
		msg("工号\t姓名\t职位\t年龄\t月薪\t部门名");
		if(list.size()>0){
			for (Emp e : list) {
				msg(e);
			}
		}
	}


	/**根据工号查询员工的客户端实现*/
	private void queryByEno() {
		sc = new Scanner(System.in);
		msg("请输入需要查询的员工工号:");
		int eno = sc.nextInt();
		Emp e = em.findByEno(eno);
		if(e == null){
			msg(eno+"号员工不存在,请重新输入");
			queryByEno();
			return;
		}
		msg("工号\t姓名\t职位\t年龄\t月薪\t部门名");
		msg(e);
	}


	/**员工列表的客户端实现*/
	private void list() {
		msg("工号\t姓名\t职位\t年龄\t月薪\t部门名");
		for (Emp e: em.findAll()) {
			msg(e);
		}
	}

	/**员工添加的客户端实现*/
	private void add() {
		msg("请输入员工信息(按以下格式:工号/姓名/职位/年龄/薪资/部门名)");
		sc = new Scanner(System.in);
		String s = sc.nextLine();
		//根据“/”截取员工信息
		String[] info = s.split("/");
		if(em.findByEno(Integer.parseInt(info[0])) != null){
			msg("该编号的员工已存在,请重新输入");
			add();
			return;
		}else{
			Emp e = new Emp(Integer.parseInt(info[0]), 
					info[1], 
					info[2], 
					Integer.parseInt(info[3]), 
					Double.parseDouble(info[4]), 
					info[5]);
			em.addEmp(e);
			msg("添加成功");
		}
	}


	public void msg(Object obj){
		System.out.println(obj);
	}

	public static void main(String[] args) {
		new EmpClient().menu();
	}

}

运行结果

我感觉自己的代码还是有些复杂,希望在以后的学习中能对这些代码进行一些简化,也希望大家能多给我一些建议。

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值