简介
设计了一个员工管理的项目,完成了员工的添加、删除、查询和修改薪资的功能,员工包括工号、姓名、职位、年龄、月薪以及所在部门属性,此项目实现了控制面板的输入,实际操作时也相当简单,项目包含三个类,员工类,员工管理类,测试类,代码如下
员工类
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();
}
}
运行结果
我感觉自己的代码还是有些复杂,希望在以后的学习中能对这些代码进行一些简化,也希望大家能多给我一些建议。