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日

相关文章

  • 详解如何在springcloud分布式系统中实现分布式锁

    下面是“详解如何在springcloud分布式系统中实现分布式锁”的完整攻略: 一、什么是分布式锁 分布式锁是指多个节点之间共享同一个锁,能够协作完成某一段代码的互斥操作。在分布式系统中使用分布式锁可以实现对共享资源的协调访问,防止多个节点同时对同一资源进行修改而引发数据一致性问题。 二、实现分布式锁的原理 在分布式系统中实现分布式锁需要考虑节点之间的共享和…

    Java 2023年5月20日
    00
  • javaweb实战之商城项目开发(一)

    首先,需要明确“javaweb实战之商城项目开发(一)”所指代的是一个Java Web商城项目的开发教程,下面我将详细讲解这个完整攻略的流程。 项目需求分析 在开始开发之前,需要进行项目需求分析,明确项目所需要实现的功能、技术栈、开发时间等。对于商城项目,其主要功能包括用户登录注册、商品浏览和购买、订单管理等。在技术栈上,可以选择使用Java EE框架和My…

    Java 2023年5月30日
    00
  • Spring 异步接口返回结果的四种方式

    下面详细讲解Spring异步接口返回结果的四种方式。 1. 使用Callable Spring提供了一个非常简洁的方式来处理异步请求,即使用Java 5中引入的Callable接口。可以使用返回Callable的Controller方法来处理异步请求,Spring会将Callable提交到任务执行器中执行,然后将结果写入响应体中。 示例代码: @RestCo…

    Java 2023年5月31日
    00
  • Spring中单例和多例的深入理解

    Spring中单例和多例的深入理解 在软件开发中,对象的生命周期管理非常重要。Spring作为一个非常流行的Java开发框架,提供了两种常用的对象管理方式:单例(Singleton)和多例(Prototype)。本文将详细讲解Spring中单例和多例的深入理解。 单例模式 单例模式是一种常用的创建模式,它保证一个类只有一个实例,并提供一个访问它的全局访问点。…

    Java 2023年5月26日
    00
  • 个人小程序接入支付解决方案

    接下来为您详细讲解“个人小程序接入支付解决方案”的完整攻略。 一、前提准备 为了成功接入支付,我们需要满足以下前提条件: 小程序已经获得认证 小程序拥有自己的“支付商户号” 小程序已经做好了“小程序支付开通”和“支付证书配置” 小程序后台已经开启“JSAPI支付方式” 二、接入支付解决方案 接下来,我们可以分别按照以下几步来完成个人小程序的支付接入: 1. …

    Java 2023年5月23日
    00
  • Java实现简单控制台版ATM系统

    Java实现简单控制台版ATM系统攻略 1. 需求分析 控制台版ATM系统主要需要实现以下功能: 用户登录、注册 存款、取款、查询余额 转账功能 2. 技术选型 本篇攻略使用Java语言实现控制台版ATM系统,使用了Java IO、集合等基础知识进行编写。在框架上,本篇攻略并未用到任何框架。 3. 代码实现 代码实现主要分为以下几个部分: 3.1 用户登录、…

    Java 2023年5月18日
    00
  • Java实现数组转字符串及字符串转数组的方法分析

    下面我将详细讲解Java实现数组转字符串及字符串转数组的方法分析。 1. 数组转字符串 1.1 Arrays.toString() 首先讲解的是通过Arrays.toString()方法把数组转为字符串。这种方法对于一维数组和二维数组都可以使用,示例如下: int[] arr = {1, 2, 3, 4, 5}; String str1 = Arrays.t…

    Java 2023年5月26日
    00
  • 混乱的Java日志体系及集成jar包梳理分析

    混乱的Java日志体系及集成jar包梳理分析是一篇旨在帮助Java开发者理解Java日志体系和集成jar包的文章。本文将围绕Java日志体系的问题、集成jar包的例子、分析Java日志框架的实现等多方面展开讲解。 一、Java日志体系的问题 在Java开发过程中,我们经常需要使用日志来帮助我们进行调试。但是,Java日志体系却十分混乱,不同的日志框架都有着自…

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