Java打卡系统

打卡系统

import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
//构建一个学生类
public class Student {
    private String name;
    private int count;
    //打卡时间是随时变动的,所以需要用一个集合存储,并且时间是通过Date的形式进行获取的
    private ArrayList<Date> arr = new ArrayList<>();

    @Override
    public String toString() {
        //把时间按特定的格式输出
        SimpleDateFormat sim = new SimpleDateFormat("yyyy-MM-dd HH:mm;ss");
        //创建一个字符串集合,存储修改后的内容
        StringBuffer stringBuffer = new StringBuffer();
        for (int i = 0;i<arr.size();i++){
            //获取集合中的数据
            Date date = arr.get(i);
            //格式化数据,了解格式化的形式
            String format = sim.format(date);
            //把格式化的增加到字符串中,知道append方法
            stringBuffer.append(format+"\n");

        }
        return "Student{" +
                "姓名='" + name + '\'' +
                ", 打卡数量=" + count +
                ", 打卡时间=" + stringBuffer +
                '}';
    }

    //这里面我们是把姓名和打卡的数量看作一个整体,用于进行实例化这个学生类
    public Student(String name, int count) {
        this.name = name;
        this.count = count;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getCount() {
        return count;
    }

    public void setCount(int count) {
        this.count = count;
    }

    public ArrayList<Date> getArr() {
        return arr;
    }

    public void setArr(ArrayList<Date> arr) {
        this.arr = arr;
    }
}

//该类的功能主要是实现打卡的功能
public class Function {
    //此方法主要用于实现打卡功能
    public void dk() {
        HashMap<Integer, Student> map = new HashMap<>();
        //初始话三个对象
        Student wangwu = new Student("王五", 0);
        Student lisi = new Student("李四", 0);
        Student zhangsan = new Student("张三", 0);
        map.put(1, wangwu);
        map.put(2, lisi);
        map.put(3, zhangsan);
        while (true) {
            Scanner sc = new Scanner(System.in);
            System.out.println("1、王五2、李四3、张三4、查询5、退出");
            System.out.println("请你输入:");
            int key = sc.nextInt();
            if (key == 4) {
                //要实现查询首先是先获取到每个成员,需要遍历输出map集合
                System.out.println("查询结果如下:");
                //获取map集合中的所有的键,通过keyset方法获得
                Set<Integer> set = map.keySet();
                //通过for循环遍历输出map中的内容
                for (Integer integer : set) {
                    //通过键获取map中的所有信息
                    System.out.println(map.get(integer));
                }
            } else if (key == 5) {
                System.out.println("成功退出系统");
                System.exit(0);
            } else {
                Student stu = map.get(key);
                //对该集合成员的打卡数量加1
                stu.setCount(map.get(key).getCount() + 1);
                //在集合中增加时间
                stu.getArr().add(new Date());
                System.out.println("你已经打卡成功" + stu.getName());
            }
        }
    }
}
//测试函数
public class Program {
    public static void main(String[] args) {
        Function function = new Function();
        function.dk();
    }
}

  • 0
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值