使用Map实现员工管理系统

由于使用了的map没有进行嵌套使用与简化,所以代码显得过于臃肿.

package test0;
import java.text.SimpleDateFormat;
import java.util.*;
/**
 *员工管理系统
 *使用map
 */
public class TestMina01 {
    static Scanner sc=new Scanner(System.in);
    //名字
    static Map mapname=new HashMap();
    //性别
    static Map mapsex=new HashMap();
    //部门
    static Map mapda=new HashMap();
    //入职时间
    static Map mapwdate=new HashMap();
    //转正时间
    static Map mapzdate=new HashMap();
    //离职时间
    static Map mapldate=new HashMap();
    //工资
    static Map mapwp=new HashMap();
    //是否转正
    static Map mapzy=new HashMap();
    public static void main(String[] args) {
       // 参考
        //名字
        mapname.put("1000","刘晓");
        mapname.put("1001","张树华");
        mapname.put("1002","刘敏");
        mapname.put("1003","王浩涛");
        mapname.put("1004","李文华");
        mapname.put("1005","邹凡");
        //性别
        mapsex.put("1000","女");
        mapsex.put("1001","男");
        mapsex.put("1002","女");
        mapsex.put("1003","男");
        mapsex.put("1004","男");
        mapsex.put("1005","男");
        //部门
        mapda.put("1000","开发部");
        mapda.put("1001","销售部");
        mapda.put("1002","测试部");
        mapda.put("1003","开发部");
        mapda.put("1004","开发部");
        mapda.put("1005","测试部");
        //入职时间
        mapwdate.put("1000","2015-3-14");
        mapwdate.put("1001","2017-2-10");
        mapwdate.put("1002","2017-10-10");
        mapwdate.put("1003","2018-5-30");
        mapwdate.put("1004","2018-5-30");
        mapwdate.put("1005","2018-6-3");
        //转正时间
        mapzdate.put("1000","2015-6-13");
        mapzdate.put("1001","null");
        mapzdate.put("1002","2018-1-9");
        mapzdate.put("1003","null");
        mapzdate.put("1004","null");
        mapzdate.put("1005","null");
        //离职时间
        mapldate.put("1000","null");
        mapldate.put("1001","2017-3-18");
        mapldate.put("1002","null");
        mapldate.put("1003","null");
        mapldate.put("1004","null");
        mapldate.put("1005","null");
        //工资
        mapwp.put("1000","12000");
        mapwp.put("1001","3500");
        mapwp.put("1002","10500");
        mapwp.put("1003","10000");
        mapwp.put("1004","9500");
        mapwp.put("1005","11000");
        //是否转正
        mapzy.put("1000","1");
        mapzy.put("1001","0");
        mapzy.put("1002","1");
        mapzy.put("1003","0");
        mapzy.put("1004","0");
        mapzy.put("1005","0");
        System.out.println("1.查询所有员工");
        System.out.println("2.根据员工编号查员工");
        System.out.println("3.查询所有已转正的员工");
        System.out.println("4.员工转正");
        System.out.println("5.员工离职");
        System.out.println("6.按部门统计该部门最高工资,最低工资和平均工资");
        System.out.println("7.增加员工");
        System.out.println("8.查询近半年入职的员工");
        System.out.println("请输入操作/9结束:");
        int c=sc.nextInt();
        switch (c){
            case 1:LookAll();
                break;
            case 2:LooId();
                break;
            case 3:LookChang();
                break;
            case 4:IdChang();
                break;
            case 5:IdExist();
                break;
            case 6:Toj();
                break;
            case 7:AddId();
                break;
            case 8:Looky();
                break;
            case 9:
                break;
        }
    }
    //查询所有员工
    public static void LookAll(){
        System.out.println("员工编号:\t"+"员工姓名:\t"+
                "性别:\t"+"部门:\t"+
                "入职时间:\t"+"转正时间:\t"+
                "离职时间:\t"+"工资:\t"+
                "是否转正:");
        for(Object key:mapname.keySet()){
            System.out.println("\t"+key+"\t"+
                    mapname.get(key)+"\t\t"+mapsex.get(key)+"\t\t"+
                    mapda.get(key)+"\t"+mapwdate.get(key)+"\t"+
                    mapwdate.get(key)+"\t"+mapldate.get(key)+"\t\t"+
                    mapwp.get(key)+"\t\t"+mapzy.get(key));
        }
    }
    // 2.根据员工编号查员工
    public static void LooId(){
        System.out.println("请输入要查询的编号:");
        String  lok=sc.next();
        System.out.println("员工编号:\t"+"员工姓名:\t"+
                "性别:\t"+"部门:\t"+
                "入职时间:\t"+"转正时间:\t"+
                "离职时间:\t"+"工资:\t"+
                "是否转正:");
        for(Object key:mapname.keySet()){
            String  keys=(String )key;//强转
            if(keys.equals(lok)){
                System.out.println("\t"+key+"\t"+
                        mapname.get(key)+"\t\t"+mapsex.get(key)+"\t\t"+
                        mapda.get(key)+"\t"+mapwdate.get(key)+"\t"+
                        mapwdate.get(key)+"\t"+mapldate.get(key)+"\t\t"+
                        mapwp.get(key)+"\t\t"+mapzy.get(key));
            }
        }
    }
    //3.查询所有已转正的员工
    public static void LookChang(){
        System.out.println("员工编号:\t"+"员工姓名:\t"+
                "性别:\t"+"部门:\t"+
                "入职时间:\t"+"转正时间:\t"+
                "离职时间:\t"+"工资:\t"+
                "是否转正:");
        for(Object key:mapname.keySet()){
            Object z=mapzy.get(key);
            String  keys=(String )z;//强转
            if(keys.equals("1")){
                System.out.println("\t"+key+"\t"+
                        mapname.get(key)+"\t\t"+mapsex.get(key)+"\t\t"+
                        mapda.get(key)+"\t"+mapwdate.get(key)+"\t"+
                        mapwdate.get(key)+"\t"+mapldate.get(key)+"\t\t"+
                        mapwp.get(key)+"\t\t"+mapzy.get(key));
            }
        }
    }
    //4.员工转正
    public static void IdChang(){
        System.out.println("请输入要转正的编号:");
        String  lok=sc.next();
        for(Object key:mapname.keySet()){
            String  keys=(String )key;//强转
            if(keys.equals(lok)){
                mapzy.remove(lok);
                mapzy.put(lok,"1");
            }
        }LookChang();
    }
    //5.员工离职
    public static void IdExist(){
        System.out.println("请输入要离职的编号:");
        String  lok=sc.next();
        for(Object key:mapname.keySet()){
            String  keys=(String )key;//强转
            if(keys.equals(lok)){
                mapsex.remove(lok);
                mapda.remove(lok);
                mapwdate.remove(lok);
                mapzdate.remove(lok);
                mapldate.remove(lok);
                mapwp.remove(lok);
                mapzy.remove(lok);
            }
        }
        mapname.remove(lok);
        LookAll();
    }
    //6.按部门统计该部门最高工资,最低工资和平均工资
    public static void Toj(){
        int maxs=0;
        int mins=0;
        int o=0;
        int sun=0;
        int pin=0;
        for(Object key:mapname.keySet()){
            Object mi=mapwp.get("1000");
            Object ma=mapwp.get(key);
            o++;
            String min=(String)mi;
            String max=(String)ma;
            int g=0;
            mins=Integer.parseInt(min);
            maxs=Integer.parseInt(max);
            sun+=maxs;
            if(mins>maxs){
                g=maxs;
                maxs=mins;
                mins=g;
            }
        }
        pin=sun/o;//平均值
        System.out.println("最高:"+maxs+",最小:"+mins+",平均:"+pin);
    }
    //7.增加员工
    public static void AddId(){
        while (true) {
            System.out.println("请输入要添加的员工号:");
            String lok = sc.next();
            int eph=0;
            for (Object key : mapname.keySet()) {//根据其中的一个数组进行遍历,方便之后
                String keys = (String) key;//强转
                if (keys.equals(lok)) {//如果找到了目标,即存在重复的目标
                    System.out.println("员工号以存在!,请重新输入!");
                    break;
                }else if(eph==0){
                    eph=1;
                    break;
                }
            }
            if(eph==1){
                System.out.println("请输入员工名字:");
                String newname=sc.next();
                mapname.put(lok,newname);
                System.out.println("请输入员工性别:");
                String newsex=sc.next();
                mapsex.put(lok,newsex);
                System.out.println("请输入员工部门:");
                String newde=sc.next();
                mapda.put(lok,newde);
                System.out.println("请输入员工入职时间:");
                String newwktime=sc.next();
                mapwdate.put(lok,newwktime);
                System.out.println("请输入员转正时间:");
                String newdetime=sc.next();
                mapzdate.put(lok,newdetime);
                System.out.println("请输入员工工资:");
                int newmeny=sc.nextInt();
                mapwp.put(lok,newmeny);
                System.out.println("请输入员工是否转正:");
                int newdeh=sc.nextInt();
                mapzy.put(lok,newdeh);
            }
        }
    }
    //8.查询近半年入职的员工
    public static void Looky(){
        //截取时间月份
        for(Object key:mapwdate.keySet()){
            //获取数据月份时间
            Object da=mapwdate.get(key);
            String sd=(String)da;
            String[] sts=sd.split("\\-");
            int dat=Integer.parseInt(sts[1]);
            //获取当前时间
            SimpleDateFormat df = new SimpleDateFormat("MM");//设置日期格式
            String s=df.format(new Date());
            int dats=Integer.parseInt(s);
            if(dat<dats) {
                System.out.println("  姓名:"+mapname.get(key));
            }
        }
    }
}
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值