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日

相关文章

  • 详解Java的回调机制

    详解Java的回调机制 什么是回调机制? 回调(Callback)指的是程序员在编写程序时,将一个函数作为参数传递到另一个函数中,并在另一个函数中调用这个函数的行为。具体来说,会有一个方法 A,在执行某个动作时,会调用另一个方法 B,方法 B 中的代码会在方法 A 完成时被调用,这样的方法调用方式被称为回调。 为什么需要回调机制? 在Java开发中,我们常常…

    Java 2023年5月26日
    00
  • springboot 实战:异常与重定向问题

    我们来谈一下 “springboot 实战:异常与重定向问题” 的完整攻略,过程中我会包含两个示例。首先,我们需要了解一下什么是异常和重定向。 异常是指程序在执行过程中遇到了不正常的情况,导致程序不能继续执行的错误。在 Java 中,程序遇到异常时会抛出一个异常对象。为了保证程序的正常运行,需要对这些异常进行处理。而重定向是指当用户访问一个 URL 时,服务…

    Java 2023年5月27日
    00
  • java Date获取年月日时分秒的实现方法

    获取当前时间 Java中的Date类可以获取当前系统时间,包含年月日时分秒等信息。获取当前时间的代码如下: import java.util.Date; public class DateUtils { public static void main(String[] args) { Date now = new Date(); System.out.pri…

    Java 2023年5月20日
    00
  • 浅析jQuery Ajax通用js封装

    我将为您详细讲解“浅析jQuery Ajax通用js封装”的完整攻略: 1. 什么是jQuery Ajax通用js封装 jQuery Ajax通用js封装是一种在Javascript中使用jQuery库对Ajax进行封装的方法。通过对Ajax通用操作的封装,可以实现代码的重用,减少代码冗余,提高代码的可维护性。 2. jQuery Ajax通用js封装要点 …

    Java 2023年6月15日
    00
  • spring boot基于Java的容器配置讲解

    下面给出关于“spring boot基于Java的容器配置讲解”的完整攻略。 什么是Spring Boot? Spring Boot是一种基于Spring框架的快速应用开发框架。使用Spring Boot可以快速构建可部署的、生产级别的Spring应用程序,而不需要编写大量的代码,因为它提供了几乎所有的配置。 Spring Boot容器配置 在Spring …

    Java 2023年5月19日
    00
  • MyBatis持久层框架的用法知识小结

    MyBatis持久层框架的用法知识小结 MyBatis是一款优秀的持久化框架,通过XML或注解的方式实现了对象关系映射(ORM)。MyBatis主要解决了JDBC编程的繁琐和易错的问题,提供了诸如对象映射、缓存等一系列优秀的特性。下面将对MyBatis的使用进行详细介绍。 1. Maven依赖 在使用MyBatis前,需要在Maven项目中引入依赖。 &lt…

    Java 2023年5月19日
    00
  • Java实现简易Web服务器

    Java实现简易Web服务器 概述 Web服务器是Web应用程序运行的基础设施之一。本文将介绍如何使用Java编程语言实现一个简单的Web服务器,并提供两个简单的示例说明,帮助理解如何使用此Web服务器。 实现流程 获取客户端请求,解析请求报文,获取客户端请求的资源路径和参数。 判断客户端请求所需资源的类型,是静态资源还是动态资源。 如果是静态资源,则根据资…

    Java 2023年5月18日
    00
  • php 来访国内外IP判断代码并实现页面跳转

    让我详细讲解一下“php 来访国内外IP判断代码并实现页面跳转”的完整攻略。 1. 获取客户端IP 在PHP中获取客户端IP地址的方式有很多,其中一种常用的方式就是使用$_SERVER[‘REMOTE_ADDR’]。这个变量会返回客户端访问当前页面的IP地址。 以下是一个示例代码: $ip = $_SERVER[‘REMOTE_ADDR’]; echo &q…

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