使用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<Emp> list = new ArrayList<Emp>(); /**添加员工*/ 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<Emp> findDname(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 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<Emp> 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(); }}