CCF考试试题之门禁系统java解题代码

关于“CCF考试试题之门禁系统java解题代码”的完整攻略,请看下面的详细讲解。

一、题目背景

这是一道CCF认证考试的试题,要求我们写一段代码实现一个门禁系统。门禁系统需要记录人员的姓名和进出时间,并按照时间排序输出人员进入和离开的记录。

二、解题思路

首先,我们需要定义一个类,来存储每位人员的姓名和进出时间。

class AccessRecord {
    String name;  // 姓名
    String time;  // 进出时间
}

然后,我们可以用HashMap来存储每个人进出的时间记录。HashMap的key为人员姓名,value为一个List,用来存储该人员的进出记录。

Map<String, List<AccessRecord>> accessRecords = new HashMap<>();

接下来,我们需要读入每条门禁记录,如果该人员已经在记录中,就加入他的进出时间记录;如果该人员不在记录中,就新建一个记录。

最后,我们按照进出时间排序输出每位人员进出的记录。

三、完整代码

import java.util.*;

class AccessRecord {
    String name;  // 姓名
    String time;  // 进出时间
}

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        Map<String, List<AccessRecord>> accessRecords = new HashMap<>();

        while (sc.hasNext()) {
            String line = sc.nextLine();
            String[] fields = line.split(" ");
            String name = fields[0];
            String status = fields[1];
            String time = fields[2];

            AccessRecord accessRecord = new AccessRecord();
            accessRecord.name = name;
            accessRecord.time = time;

            if (accessRecords.containsKey(name)) {
                List<AccessRecord> recordList = accessRecords.get(name);
                recordList.add(accessRecord);
            } else {
                List<AccessRecord> recordList = new ArrayList<>();
                recordList.add(accessRecord);
                accessRecords.put(name, recordList);
            }
        }

        for (String name : accessRecords.keySet()) {
            List<AccessRecord> recordList = accessRecords.get(name);
            recordList.sort((r1, r2) -> r1.time.compareTo(r2.time));
            System.out.println(name + " " 
                               + recordList.get(0).time + " "
                               + recordList.get(recordList.size()-1).time);
        }
    }
}

四、示例说明

示例一

输入:

张三 in 08:10
李四 in 08:20
张三 out 09:05
王五 in 10:10
李四 out 13:00

输出:

张三 08:10 09:05
李四 08:20 13:00
王五 10:10 10:10

示例二

输入:

小明 in 08:05
小红 in 08:10
小兰 out 09:10
小丽 in 09:20
小红 out 10:00
小明 out 11:30
小丽 out 12:00

输出:

小丽 09:20 12:00
小明 08:05 11:30
小红 08:10 10:00
小兰 09:10 09:10

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:CCF考试试题之门禁系统java解题代码 - Python技术站

(0)
上一篇 2023年5月24日
下一篇 2023年5月24日

相关文章

  • MyBatis-Plus 通用IService使用详解

    以下是关于“MyBatis-Plus 通用IService使用详解”的详细攻略: 什么是MyBatis-Plus通用IService? 在使用MyBatis-Plus进行数据库操作时,通用IService提供了一套标准CURD方法,极大减轻我们手写CRUD的压力。通用IService是MyBatis-Plus提供的一个接口,包含一系列的基础CURD方法,可以…

    Java 2023年5月20日
    00
  • java利用冒泡排序对数组进行排序

    下面是Java利用冒泡排序对数组进行排序的完整攻略。 一、冒泡排序的基本原理 冒泡排序是基于比较的排序算法,其基本思想是:将要排序的元素按照从小到大(或从大到小)的顺序排列,每次将相邻的两个元素比较大小,如果前面的元素比后面的元素大,则交换它们的位置,直到整个数组按照要求排列完毕。 二、Java实现冒泡排序 Java程序中可以很容易地实现冒泡排序,下面给出一…

    Java 2023年5月19日
    00
  • Spark学习笔记之Spark SQL的具体使用

    Spark学习笔记之Spark SQL的具体使用 简介 Spark SQL是Spark提供的分布式SQL查询引擎,通过Spark SQL,我们可以使用SQL语法来查询非关系型数据、结构化数据、CSV文件等。Spark SQL目前支持Hive查询语法和Spark SQL语法,也允许用户进行自定义函数、聚合函数等操作。 安装 要使用Spark SQL,我们需要先…

    Java 2023年5月26日
    00
  • Java中String.split()用法小结

    Java中String.split()用法小结 什么是split()函数 在Java中,String类中提供了一个split()函数,它的作用是将字符串按照给定的分隔符(正则表达式)分割成若干个子字符串,存储在一个字符串数组中并返回。split()函数的定义如下: public String[] split(String regex) 其中regex是一个表…

    Java 2023年5月27日
    00
  • springboot使用shiro-整合redis作为缓存的操作

    Spring Boot使用Shiro整合Redis作为缓存的操作 在Spring Boot应用程序中,我们可以使用Apache Shiro框架来实现安全认证和授权功能。同时,我们也可以使用Redis作为Shiro的缓存存储。在本文中,我们将详细介绍如何使用Shiro整合Redis作为缓存的操作,并提供两个示例说明。 步骤分析 在Spring Boot应用程序…

    Java 2023年5月18日
    00
  • Netty分布式解码器读取数据不完整的逻辑剖析

    Netty是一个高性能的异步事件驱动网络应用框架,由于它的高性能和良好的可扩展性,被广泛应用于分布式架构中。但是在网络传输过程中,数据被分成了多个部分,数据的读取不完整会导致数据的解码出现问题。这种情况下,我们需要对Netty的分布式解码器的读取数据不完整的逻辑进行剖析。 完整攻略 步骤一:设置解码器 在Netty中,分布式解码器负责将字节流解码成Java对…

    Java 2023年5月20日
    00
  • Java参数传递实现代码及过程图解

    Java参数传递实现代码及过程图解 在Java中,方法传递参数是通过按值传递(pass-by-value)实现的。简单来说,就是在传递参数的时候,将参数的值复制一份给方法内部进行操作,不会直接影响原来的变量值。以下是Java参数传递的一些细节和过程图解: 基本数据类型的参数传递 基本数据类型的参数传递就是将值复制给方法内部进行操作,不会对原来的变量值产生影响…

    Java 2023年5月30日
    00
  • maven的安装配置以及在IDEA中的配置图文教程

    让我为你详细讲解Maven的安装配置以及在IDEA中的配置图文教程吧。 1. Maven的安装配置: 1.1 下载Maven 首先,你需要从Maven 官网下载最新的稳定版本。下载完成后,解压到任何你喜欢的目录中(比如:/usr/local/maven/) 1.2 配置环境变量 编辑环境变量配置文件(/etc/profile)并添加以下内容: export …

    Java 2023年5月20日
    00
合作推广
合作推广
分享本页
返回顶部