打卡系统
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();
}
}