基于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<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();
}
}