package com.company;

import java.util.List;
import java.util.Scanner;

public class Main {public static void main(String[] args) {Company company = new Company();
        //添加员工
        company.addEmp(11,"zhangsan",20,'男');
        company.addEmp(22,"lisi",22,'男');
        company.addEmp(33,"lili",24,'女');
        company.addEmp(44,"fsw",28,'男');
        //显示员工信息
        company.showEmp();
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入删除员工信息!工号");
        int empNum = sc.nextInt();
        String s = sc.nextLine();
        //删除员工的方法
        company.deleteEmp(empNum);
        //显示删除后的员工信息
        company.showEmp();
        System.out.println("请输入查询员工信息的工号:");
        int id = sc.nextInt();
        String a = sc.nextLine();
        company.selectEmp(id);
        int input = 0;
        do{System.out.println("员工考勤系统");
            System.out.println("0-------------exit");
            System.out.println("1-------------签到");
            System.out.println("2-------------签退");
            System.out.println("3-------------显示考勤信息");
            input = sc.nextInt();
            String c = sc.nextLine();
            switch (input){case 1:company.qiandao();
                    break;
                case 2:company.qiantui();
                    break;
                case 3:company.showAttendence();
                    break;
                default:break;
            }}while(input!=0);
    }
}
package com.company;

import java.text.SimpleDateFormat;
import java.util.*;

/**
 * 定义一个公司类,包括员工的集合,还有每天考勤的集合
 * Created by ttc on 2017/6/30.
 */
public class Company {private  Map<Integer,Emp> mapEmp = new HashMap<>();
    //Map中的KEY为签到的日期
    private Map<String,List<KaoqinRecord>> map = new HashMap<>();
    //定义一个添加员工的方法
    public Map<Integer,Emp> addEmp(int id,String name,int age,char sex){mapEmp.put(id,new Emp(id,name,age,sex));
        return mapEmp;
    }//显示现在公司员工的信息
    public void showEmp(){for(Map.Entry<Integer,Emp> m :mapEmp.entrySet()){System.out.println("工号:"+m.getValue().getId()+" 姓名:"+m.getValue().getName()+" 年龄"+m.getValue().getAge()+" 性别"+m.getValue().getSex());
        }}//定义删除员工的方法
    public void deleteEmp(int id){mapEmp.remove(id);
    }//定义查询员工的方法
    public void selectEmp(int id){System.out.println("工号:"+mapEmp.get(id).getId()+" 姓名:"+mapEmp.get(id).getName()+" 年龄"+mapEmp.get(id).getAge()+" 性别"+mapEmp.get(id).getSex());
    }//定义公司的签到方法
    public void qiandao(){Date date = new Date();
        SimpleDateFormat sdfDate = new SimpleDateFormat("yyyy-MM-dd");
        SimpleDateFormat sdfTime = new SimpleDateFormat("HH:mm:ss");
        String qiandaoDate = sdfDate.format(date);
        String kaoqinTime = sdfTime.format(date);
        System.out.println("请输入要签到的员工号码");
        Scanner sc = new Scanner(System.in);
        int inputId = sc.nextInt();
        if(!mapEmp.containsKey(inputId)){System.out.println("不存在该员工");
            return;
        }List<KaoqinRecord> listKaoQin = null;
        if(!map.containsKey(qiandaoDate)){//第一个签到的员工
            listKaoQin = new ArrayList<>();
            KaoqinRecord kq = new KaoqinRecord();
            kq.setName(mapEmp.get(inputId).getName());
            kq.setStratTime(kaoqinTime);
            kq.setEndTime("");
            listKaoQin.add(kq);
            map.put(qiandaoDate,listKaoQin);
            System.out.println("签到成功!");
        }else {//说明之前,今天已经有人签到过了
            listKaoQin = map.get(qiandaoDate);
            //判断是否已经签到过
            boolean bIsFind = false;
            for (KaoqinRecord kr : listKaoQin) {if (kr.getName() == mapEmp.get(inputId).getName()) {System.out.println("已经签到过了");
                    bIsFind = true;
                    break;
                }}if (!bIsFind) {KaoqinRecord kr = new KaoqinRecord();
                kr.setName(mapEmp.get(inputId).getName());
                kr.setStratTime(kaoqinTime);
                kr.setEndTime("");
                listKaoQin.add(kr);
                System.out.println("签到成功!");
            }}}public void qiantui(){System.out.println("请输入要签退的员工ID");
        Scanner sc = new Scanner(System.in);
        int inputId = sc.nextInt();
        String s = sc.nextLine();
        if(!mapEmp.containsKey(inputId)){System.out.println("员工不存在");
            return;
        }Date date = new Date();
        SimpleDateFormat sdfDate = new SimpleDateFormat("yyyy-MM-dd");
        SimpleDateFormat sdfTime = new SimpleDateFormat("HH:mm:ss");
        String qiandaoDate = sdfDate.format(date);
        String kaoqinTime = sdfTime.format(date);
        if(!map.containsKey(qiandaoDate)){System.out.println("您没签到,不能签退!");
        }else{List<KaoqinRecord> listKaoQin = map.get(qiandaoDate);
            boolean bIsFind = false;
            for(KaoqinRecord kr : listKaoQin){if(kr.getName().equals(mapEmp.get(inputId).getName())){kr.setEndTime(kaoqinTime);
                    bIsFind = true;
                    break;
                }}if(!bIsFind){System.out.println("您没签到,不能签退");
            }else{System.out.println("签退成功!");
            }}}public void showAttendence(){System.out.println("请输入要查询的日期(yyyy-MM-dd)");
        Scanner sc = new Scanner(System.in);
        String qiandaoDate = sc.nextLine();
        List<KaoqinRecord> listKaoQin = map.get(qiandaoDate);
        for(KaoqinRecord kr : listKaoQin){System.out.println(kr.getName()+" 签到时间为:"+kr.getStratTime()+" 签退时间为:"+kr.getEndTime());
        }}
}
package com.company;

/**
 * 定义一个员工每天考勤的类,包括员工姓名,还有签到时间和签退时间
 * Created by ttc on 2017/6/30.
 */
public class KaoqinRecord {private String name;
    private String stratTime;
    private String endTime;

    public String getName() {return name;
    }public void setName(String name) {this.name = name;
    }public String getStratTime() {return stratTime;
    }public void setStratTime(String stratTime) {this.stratTime = stratTime;
    }public String getEndTime() {return endTime;
    }public void setEndTime(String endTime) {this.endTime = endTime;
    }
}
package com.company;

/**
 * 定义一个员工类,属性包括员工的id,员工姓名,年龄,性别
 * Created by ttc on 2017/6/30.
 */
public class Emp {private int id;
    private String name;
    private int age;
    private char sex;
    public  Emp(){}public Emp(int id, String name, int age, char sex) {this.id = id;
        this.name = name;
        this.age = age;
        this.sex = sex;
    }public int getId() {return id;
    }public void setId(int id) {this.id = id;
    }public String getName() {return name;
    }public void setName(String name) {this.name = name;
    }public int getAge() {return age;
    }public void setAge(int age) {this.age = age;
    }public char getSex() {return sex;
    }public void setSex(char sex) {this.sex = sex;
    }
}
												

公司员工考勤系统Java代码相关推荐

  1. 基于安卓的公司员工考勤系统的设计与实现

    目 录 1 绪论 1 1.1 选题背景 1 1.2 研究现状 2 1.3 研究意义 3 1.4 研究内容 3 2 相关的理论和技术 4 2.1 JAVA技术与安卓介绍 4 2.2 Android的开发 ...

  2. java毕业设计企业员工考勤系统的设计与实现源码+lw文档+mybatis+系统+mysql数据库+调试

    java毕业设计企业员工考勤系统的设计与实现源码+lw文档+mybatis+系统+mysql数据库+调试 java毕业设计企业员工考勤系统的设计与实现源码+lw文档+mybatis+系统+mysql数 ...

  3. 计算机毕业设计Java企业员工考勤系统的设计与实现(源码+系统+mysql数据库+lw文档)

    计算机毕业设计Java企业员工考勤系统的设计与实现(源码+系统+mysql数据库+lw文档) 计算机毕业设计Java企业员工考勤系统的设计与实现(源码+系统+mysql数据库+lw文档) 本源码技术栈 ...

  4. java毕业设计公司日常考勤系统mybatis+源码+调试部署+系统+数据库+lw

    java毕业设计公司日常考勤系统mybatis+源码+调试部署+系统+数据库+lw java毕业设计公司日常考勤系统mybatis+源码+调试部署+系统+数据库+lw 本源码技术栈: 项目架构:B/S ...

  5. 基于JAVA企业员工考勤系统的设计与实现计算机毕业设计源码+数据库+lw文档+系统+部署

    基于JAVA企业员工考勤系统的设计与实现计算机毕业设计源码+数据库+lw文档+系统+部署 基于JAVA企业员工考勤系统的设计与实现计算机毕业设计源码+数据库+lw文档+系统+部署 本源码技术栈: 项目 ...

  6. java计算机毕业设计企业员工考勤系统的设计与实现源码+程序+lw文档+mysql数据库

    java计算机毕业设计企业员工考勤系统的设计与实现源码+程序+lw文档+mysql数据库 java计算机毕业设计企业员工考勤系统的设计与实现源码+程序+lw文档+mysql数据库 本源码技术栈: 项目 ...

  7. opencv python考勤_GitHub - liqq1228/python-opencv: 基于python opencv人脸识别的员工考勤系统...

    项目及作者说明 一个基于 Opencv.dlib 人脸识别的员工考勤系统,作者某双一流A类大学里的一流学生,写于2018/09/,Python 学习期间. 开源版及商业版说明 开源版 商业版 人脸录入 ...

  8. opencv人脸识别考勤 python_GitHub - lisanshui007/python-opencv: 基于python opencv人脸识别的员工考勤系统...

    项目及作者说明 一个基于 Opencv.dlib 人脸识别的员工考勤系统,作者某双一流A类大学里的一流学生,写于2018/09/,Python 学习期间. 开源版及商业版说明 开源版 商业版 人脸录入 ...

  9. python人脸考勤系统_GitHub - jykcc/python-opencv: 基于python opencv人脸识别的员工考勤系统...

    项目及作者说明 一个基于 Opencv.dlib 人脸识别的员工考勤系统,作者某双一流A类大学里的一流学生,写于2018/09/,Python 学习期间. 开源版及商业版说明 开源版 商业版 人脸录入 ...

  10. 员工考勤系统业务建模+系统用例图

    [员工考勤系统] 现要为某单位开发一款"员工考勤系统",其开发背景和问题如下. 作为 Acme 公司的信息主管,你被委托开发一款新的考勤系统.要求新系统允许员工 记录电子的考勤信息 ...

最新文章

  1. JSP网页开发安装2019-03 eclipse,详细并且简单教程这里有。
  2. Keras【Deep Learning With Python】—使用keras-神经网络来做线性回归问题
  3. linux lynx 源码,Linux移植浏览器 Lynx字符浏览器移植
  4. 计算机的颜色储存格式(索引色 真彩色)
  5. XMLHttpResponse 在项目里面的运用
  6. python编程优化_掌握六大技巧,让python编程健步如飞!
  7. 爬虫-urlparse与urlsplit
  8. STM32 - 定时器的设定 - 基础-03 - 输出波形控制 - Output compare mode
  9. MD5Init-MD5Update-MD5Final
  10. SVN 回退到某一个版本
  11. html 怎么看版本号,怎样查看jquery版本号?
  12. 2022元宇宙共享大会|倪健中:我们正在开启元宇宙新时代
  13. 在互联网时代一切归零
  14. 012 断言(Assertions)
  15. 联通系统升级服务器地址,联通iptv升级服务器地址
  16. HTML元素居中定位与尺寸拉伸
  17. gap year_应该gap year吗?过来人这么说
  18. ​宝尊电商年亏2亿:阿里又成大股东 软银大幅减持
  19. 用户绑定QQ邮箱找回密码
  20. 无线网卡驱动不显示问题

热门文章

  1. django和php学哪个好,哪个更适合我的项目:Django、Plone、php还是rubyonrails
  2. jQuery支持移动触摸设备的Lightbox插件
  3. Android源码下载编译(TI)
  4. 《UNIX网络编程 卷1》一、环境配置
  5. 易百教程(IT技能学习平台)
  6. java基于ssm+mysql的宠物店管理系统 计算机毕业设计
  7. mx350显卡天梯图_不可错过的2020显卡天梯图,选卡详解
  8. cydia软件路径_cydia软件包路径
  9. 国军标 软件测评 静态分析常见问题总结
  10. windows怎么删除服务, OpenService 失败 5,拒绝访问解决