基于Java的员工管理系统

基于Java的员工管理系统

简介

使用ArrayList对完成一个员工管理系统,员工信息包含:员工工号,姓名,职位,年龄,月薪,所在部门;要求功能入下:
a)实现从控制台输入员工信息并存储
b)通过员工工号查询指定员工信息
c)根据输入的部门名称显示该部门中所有员工
d)查询所有员工信息
e)输入指定员工工号,删除员工
f)根据员工工号修改员工薪资

实现

员工类

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 ;
}

}

员工管理类

public class EmpManager {

/**声明一个集合存储所有员工,范型(参数化类型)*/
static ArrayList list = new ArrayList();

/**添加员工*/
public void addEmp(Emp e){
	list.add(e);
}

/**查询员工*/
public Emp findEno(int eno){
	Emp emp = null;
	for(Emp e:list)
	{
		/**是否找到工号的员工*/
		if(e.getEno()==eno)
		{
			emp = e;
			break;
		}
	}
	return emp;
}

/**根据部门名查询员工集合*/
public ArrayList findDname(String dname)
{
	ArrayList emps = new ArrayList<>();
	for(Emp e:list)
	{
		/**查询集合猴子那个是否存在员工的部门名称跟参数部门名一致*/
		if(dname.equals(e.getDname()))
		{
			emps.add(e);
		}
	}
	
	return emps;
}

/**查询所有员工信息*/
public ArrayList findAll()
{
	return list;
}

/**根据工号删除员工*/
public boolean del(int eno)
{
	Emp emp =findEno(eno);
	if(emp !=null)
	{
		return list.remove(emp);
	}
	else
		return false;
}

/**根据工号修改薪资*/
public boolean modifySal(int eno,double sal)
{
	Emp emp = findEno(eno);
	if(emp != null)
	{
		emp.setSal(sal);
		return true;
	}
	return false;
}

}

界面类

public class EmpClient {

private EmpManager em = new EmpManager();
private Scanner sc;

public void menu()
{
	msg("员工管理系统");
	msg("1.员工添加");
	msg("2.员工列表");
	msg("3.根据工号查询员工");
	msg("4.根据部门名查询员工统");
	msg("5.删除员工");
	msg("6.修改员工薪资");
	msg("0.退出");
	
	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:
		uptade();
		break;
	case 0:
		exit();
		break;
		default:
			msg("请输入正确的操作指令");
			break;
	}
	menu();
}

/**退出*/
private void exit() {
	sc = new Scanner(System.in);
	msg("是否退出");
	String op = sc.next();
	if(op.equalsIgnoreCase("y"))
	{
		msg("谢谢使用");
		System.exit(1);
	}
	
}

/**修改员工薪资*/
private void uptade() {
	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);
	int en  = sc.nextInt();
	if(em.del(en))
	{
		msg("删除成功");
	}
	else
	{
		msg("删除失败");
	}
	
}

/**根据部门名查询员工统*/
private void queryByDname() {
	sc = new Scanner(System.in);
	msg("请输入要查询的部门名称");
	String dname = sc.nextLine();
	ArrayList list = em.findDname(dname);
	msg("工号/姓名/职位/年龄/薪资/部门名");
	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.findEno(eno);
	if(e == null)
	{
		msg("请重新输入工号");
		queryByEno();
		return;
	}
	msg("工号/姓名/职位/年龄/薪资/部门名");
	msg(e);
	
}

/**员工列表*/
private void list() {
	
	msg("工号/姓名/职位/年龄/薪资/部门名");
	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.findEno(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();

}

}

你可能感兴趣的:(技术类)