当前位置: 首页 > 知识库问答 >
问题:

如何在Java的一家航空公司随机安排一组乘客就座?循序渐进

公孙宇
2023-03-14

我是新来Java的,我有一个程序,我正在为一个航空公司的乘客群体的座位工作。(我会尽量使我的问题简单易懂)

所以,我应该在航空公司为乘客安排一组座位。我得到了关于他们是如何被一个预订的班级安排就座的信息。

public class Bookings {
public Bookings() {
}

public static void main(String[] var0) {
    System.out.println("Do not run this program.");
    System.out.println("Call the method as follows:");
    System.out.println("  String[] bookings = Bookings.getBookings()");
}

    public static String[] getBookings() {
        return new String[]{"38", "2", "Gurganus, Erik", "Gurganus, Fernando", "1", "Cahn, Lance", "1", "Burrough, Jamie", "3", "Riney, Christian", "Marceau, Hillary", "Marceau, Julio", "3", "Gariepy, Noemi", "Gariepy, Louisa", "Gariepy, Nelson", "2", "Mazzoni, Max", "Fiorita, Tyrone", "3", "Ehle, Clinton", "Minnifield, Clinton", "Blinn, Jamie", "2", "Sokolowski, Kurt", "Sokolowski, Sofia", "2", "Secord, Hugh", "McVeigh, Karina", "1", "McMonagle, Christian", "1", "Canchola, Clayton", "2", "Duer, Julio", "Danos, Ted", "3", "Regal, Christian", "Mun, Allan", "Mun, Lakisha", "2", "Noblitt, Karina", "Tussey, Clayton", "1", "Seckman, Jamie", "2", "Folmar, Edwina", "Lokey, Clayton", "2", "Pippen, Javier", "Saba, Earlene", "4", "Tippit, Lorrie", "Tippit, Harriett", "Tippit, Clare", "Tippit, Lance", "3", "Mazurek, Mallory", "Mazurek, Stefan", "Mazurek, Ihor", "2", "Saini, Amie", "Peavler, Darcy"};
    }
   }

使用这些信息,我创建了一个名为seats的字符串数组和一个bookings数组,该数组调用类来检索其中的所有信息

String[] seats = new String[38];
String[] bookings = Bookings.getBookings();

第一个值表示我的航班上的可用座位数,其余的值表示要分配的组数及其名称。

您的程序将按如下方式为乘客安排座位:它将创建一个大小适当的“seates”数组(在“bookings”数组的第一个>位置给出)。已完成

它将处理字符串“bookings”数组中的剩余项。>对于每组乘客,它将尝试按以下方式安排他们就座:完成

>

  • 首先,它会看看航班上是否有足够的座位留给小组中的每个人;如果不是,它将显示一条错误消息,并且不会为组中的任何人分配席位。
  • 其次,它将遍历“座席”数组,以确定是否有足够大的空座席块可以容纳整个组(例如,如果组大小为3,它将查看是否有3个连续的空座席)。

    如果在数组中的任何地方至少有一个这样的座席块,则通过随机选择“座席”数组中的一个元素,将该组随机分配给这些块中的一个。

    如果座位为空,则确定是否有足够连续数组元素(座位)也为空以容纳整个组;如果是的话,让他们坐在那里。

    否则,随机尝试另一个座位,重复直到成功。

    如果没有这样的块,随机将组中的每个乘客单独分配到一个座位上(即组将被拆分)。为每一位乘客随机选择座位号,直到你找到一个空座位。

    我现在的问题是这两个步骤,我把解决问题的这一步写在一张纸上,但我不确定我是否在正确的轨道上。如有任何贡献/帮助,我们将不胜感激。如果需要,我可以提供更多关于这个问题的信息。

    for(int i =0; i<seats.length; i++) {
            if(seats[i] == null) {
                for(int i =0; i<seats.length; i++) {
                    if(seats.equals(null) > passengerGroup) {
                        (randomly seat them consecutively);
                    } else {
                        (randomly seat them anywhere)
                    }
                }
            } else {
                system.out.println( "No seats available");
            }
        }
    
  • 共有1个答案

    钱澄邈
    2023-03-14

    在编写循环之前分解问题;在这种情况下,计数器是跟踪可用性的最简单方法。

    public static void main(String[] args) {
    
        int numSeats = 20;
        int available = numSeats;
        int numGroups = 6;
    
        int groupSizes[] = new int[numGroups];
    
        groupSizes[0] = 2;
        groupSizes[1] = 1;
        groupSizes[2] = 5;
        groupSizes[3] = 3;
        groupSizes[4] = 10;
        groupSizes[5] = 2;
    
        for (int i=0; i < groupSizes.length; i++) {
    
            if (available > groupSizes[i]){
                available -= groupSizes[i];
                System.out.println("Group: " + i + " has been book on!");
            }
    
            else {
                System.out.println("Not enough seats for group: " + i);
            }
    
        }
        System.out.println(available + " Seats remaining");
    }
    

    这可能是有点太多的帮助,假设它是家庭作业,但它仍然需要一些工作,所以我希望它为您提供了正确的道路。编辑:实际上,重新阅读这个问题,这可能有点偏离你想要的,所以希望它只是给你一个如何开始的想法。

     类似资料:
    • 嘿,我使用一个字符串和航班的散列图来创建一个称为PlaneStore的航班存储。因此,我创建了另一个商店(航空公司商店),也使用了一个HashMap。我把飞机放进了飞机上。但我不能让航空公司用飞机打印出来。 Plane.toString是PlaneStore的toString: MainApp

    • 也是测试实习岗位,前天面的,也是说两天内给通知,我估计是无了,都这样,等通知默认没通过,或者是养鱼,就这样,不知道为什么不直接一点呢,挺无语的,直接拒绝并且说原因不更好吗,这样就可以根据哪些不足提升了,不至于现在被拒绝了也不知道什么原因,真无语。 问的挺简单,java测试方面都有 因为我在第一次面试之后,苦学测试,学了一手selenium框架+unitest+python自动化测试,然后这次面了大

    • 输出如下: 第一张牌:8张,3张总共:11张你想要另一张牌吗?(是/否):是的,卡片:7张,总共:18张,你想要另一张卡片吗?(是/否):是的,卡片:7张,总共:18张,你想要另一张卡片吗?(是/否):n 我希望能够在循环中生成一张新的随机卡,显示重复出现的总数,并停止程序。我不明白的问题是如何使用random.nextInt工具,并能够更容易地重复使用它。目前它被卡在card1、card2、ca

    • 在生产模式中使用自助API——我不会让美国航空公司参与结果。示例:“https://api.amadeus.com/v2/shopping/flight-offers?originLocationCode=PHX

    • 公司简介 DaoCloud 是业界领先的企业级容器云平台和解决方案提供商,致力于以 Docker 为代表的容器技术,为企业打造面向下一代互联网应用的交付和运维平台,帮助客户实现云端持续创新。DaoCloud 采用公有云和混合云模式,以云端 SaaS 化容器管理平台,对接各类主机资源,构建跨云跨网的容器主机资源池,提供全流程标准化的应用持续集成、镜像构建、发布管理和容器运维服务。DaoCloud 在