当前位置: 首页 > news >正文

网站公司网站定制iview做的网站

网站公司网站定制,iview做的网站,嵌入式软件开发工程师做什么,优化网站界面的工具题目概述 智能手机在方便我们生活的同时,也侵占了大量时间。手机App防沉迷系统旨在帮助用户合理规划手机App使用时间,确保在正确的时间做正确的事。系统的主要功能包括: 在一天24小时内,可注册每个App的允许使用时段。一个时段只…

题目概述

智能手机在方便我们生活的同时,也侵占了大量时间。手机App防沉迷系统旨在帮助用户合理规划手机App使用时间,确保在正确的时间做正确的事。系统的主要功能包括:

  • 在一天24小时内,可注册每个App的允许使用时段。
  • 一个时段只能使用一个App,即不能同时注册多个App在同一时间段内使用。
  • App有优先级,数值越高,优先级越高。注册时,如果高优先级的App时间和低优先级的时段有冲突,系统会自动注销低优先级的时段;如果App的优先级相同,则后添加的App不能注册。

编程实现

编程实现时,需要处理输入数据,包括App的数量、每个App的注册信息(名称、优先级、起始时间、结束时间),并根据输入的时间点返回该时间点可用的App名称。如果时间点没有注册任何App,则返回“NA”。


运行示例解析

以下是一个具体的运行示例及其解析:

输入示例
2
App1 1 09:00 10:00
App2 2 09:10 09:30
09:20
解析过程
  1. 读取输入

    • 第一行表示要注册的App数量,这里是2。
    • 接下来两行是App的注册信息:
      • App1,优先级1,注册时段09:00-10:00。
      • App2,优先级2,注册时段09:10-09:30。
    • 最后一行是查询时间点,这里是09:20。
  2. 处理注册信息

    • 根据注册信息,将App及其相关信息存储起来,并检查时间冲突和优先级。
    • 在这个例子中,App1和App2的注册时段有冲突(09:10-09:30重叠)。由于App2的优先级(2)高于App1(1),系统会注销App1在该时间段的注册,只保留App2的注册信息。
  3. 查询时间点

    • 查询时间为09:20,根据已注册的App信息,此时可用的App是App2。
输出结果
App2

编程注意事项

  • 输入数据的格式和范围需要严格检查,确保符合题目要求。
  • 时间处理时,需要注意起始时间和结束时间的比较,以及注册信息中的时间段是否包含起始时间点但不包含结束时间点。
  • 优先级处理时,需要确保高优先级的App能够覆盖低优先级的App的注册信息。
  • 如果存在多个App在同一时间点冲突且优先级相同的情况,需要按照题目要求处理(如后添加的App不能注册)。

代码实现

import java.util.*;public class AppScheduler {private final Map<String, Integer> appPriorityMap;private final Map<Integer, String> timeSlotMap;public AppScheduler() {appPriorityMap = new HashMap<>();timeSlotMap = new TreeMap<>();}/*** 注册应用程序的优先级和运行时间* * @param appName 应用程序的名称* @param priority 应用程序的优先级,数值越小优先级越高* @param startTime 应用程序开始运行的时间(格式为"HH:mm")* @param endTime 应用程序结束运行的时间(格式为"HH:mm")*/public void registerApp(String appName, int priority, String startTime, String endTime) {// 将开始时间和结束时间转换为小时数int startHour = parseTime(startTime);int endHour = parseTime(endTime);// 如果应用程序还不在优先级映射中,直接添加if (!appPriorityMap.containsKey(appName)) {appPriorityMap.put(appName, priority);} else {// 如果应用程序已经在优先级映射中,只有当新优先级更高时才更新int currentPriority = appPriorityMap.get(appName);if (priority < currentPriority) {return;}appPriorityMap.put(appName, priority);}// 遍历应用程序的运行时间,尝试在时间槽映射中注册for (int i = startHour; i < endHour; i++) {// 如果时间槽已经被占用,只有当新优先级更高时才替换if (timeSlotMap.containsKey(i)) {String existingAppName = timeSlotMap.get(i);int existingPriority = appPriorityMap.get(existingAppName);if (priority > existingPriority) {timeSlotMap.put(i, appName);}} else {// 如果时间槽未被占用,直接注册timeSlotMap.put(i, appName);}}}/*** 根据查询时间获取应用程序名称* 此方法用于根据给定的查询时间确定并返回对应的应用程序名称如果在给定的时间段内找不到确切的应用程序,则返回"NA"* * @param queryTime 查询时间,将被解析以确定对应的时间段* @return 在指定时间段内运行的应用程序的名称,如果找不到则返回"NA"*/public String getAppAtTime(String queryTime) {// 解析查询时间,返回对应的小时数int queryHour = parseTime(queryTime);// 根据查询时间对应的小时数,在时间槽映射中查找对应的应用程序名称,如果找不到,则默认返回"NA"return timeSlotMap.getOrDefault(queryHour, "NA");}/*** 解析时间字符串为分钟数* * @param time 时间字符串,格式为"hh:mm",其中hh为小时数,mm为分钟数* @return 从午夜开始到指定时间的总分钟数*/private int parseTime(String time) {// 将时间字符串按":"分割,得到小时和分钟部分String[] parts = time.split(":");// 计算总分钟数,小时数乘以60加上分钟数return Integer.parseInt(parts[0]) * 60 + Integer.parseInt(parts[1]);}/*** 主函数,用于处理应用程序调度器的输入和输出* @param args 命令行参数*/public static void main(String[] args) {// 创建Scanner对象,读取系统输入Scanner scanner = new Scanner(System.in);// 读取并存储输入的程序数量int numApps = scanner.nextInt();// 消费掉输入中的换行符,准备读取下一行数据scanner.nextLine();// 创建应用程序调度器实例AppScheduler scheduler = new AppScheduler();// 循环读取每个应用程序的注册信息,并注册到调度器中for (int i = 0; i < numApps; i++) {// 读取应用程序名称、优先级、开始时间和结束时间String appName = scanner.next();int priority = scanner.nextInt();String startTime = scanner.next();String endTime = scanner.next();// 在调度器中注册应用程序scheduler.registerApp(appName, priority, startTime, endTime);}// 读取查询的时间点String queryTime = scanner.next();// 输出在查询时间点正在运行的应用程序信息System.out.println(scheduler.getAppAtTime(queryTime));}}

解析步骤

1、定义数据结构:

  • appPriorityMap:存储 App 名称和优先级。
  • timeSlotMap:存储时间段和对应的 App 名称。

2、处理输入数据:

  • 读取输入并解析。

3、注册 App:

  • 根据优先级和时间冲突处理注册信息。

4、查询 App:

  • 根据时间点查询可用的 App 名称。
示例运行
输入示例
2  
App1 1 09:00 10:00  
App2 2 09:10 09:30  
09:20
输出结果
App2
http://www.yayakq.cn/news/239639/

相关文章:

  • asp 网站建设教程免费制作公司网站
  • 巩义企业网站托管代运营公司seo公司 上海
  • 用php做网站和go做网站校园网站建设服务
  • 网站怎么找回密码c 网站建设教程视频教程
  • 示范高职建设网站软文网站平台
  • 如何把代码放在网站首页教程马大云湘潭
  • aspcms上传到虚拟主机后打开网站太原做网站哪里好
  • 做外贸如何建网站辽宁省建设工程信息网人员解除
  • dw进行网站建设包含哪些步骤注册网站时审核是人工审核吗还是电脑审核
  • 云服务器做视频网站微信里的小程序怎么添加
  • 门户网站建设成本网站建设如何财务处理
  • 设备网站开发青岛网站建站公司
  • 餐饮网站设计h5制作软件电脑
  • 做公司网站需要什么手续网页游戏网站模压板
  • 站长之家psd英铭科技做网站和设计制作更专业
  • 长春网站制作平台济南网站建设找聚搜网络
  • 做网站哪个效果好网站开发(源代码)
  • 手机端网站开发要注意什么网站建设哪家公司好
  • 江苏泰州建设局网站东莞seo优化关键词排名
  • 网站几几年做的怎么查企业网站建设知识
  • 智慧养老网站开发网站建设制作 优帮云
  • 广元商城网站开发网站建设开发收费
  • 儿童教育自适应网站模板网站运营问题
  • 河北省建设厅网站登陆设置网站开发周期定义
  • 湛江城市建设培训中心网站wordpress安装详细
  • 深圳网站建设 网站制作 网站设计【迅美】旧版上海网站建设宣传
  • 购物网站宣传方案服装设计是冷门专业吗
  • 燃烧学课程网站建设网上注册营业执照
  • 苏州市建设培训网站安全员C类查询wordpress获取本文地址和标题
  • 网站被恶意点击怎么办深圳企业网站哪家强