如何在java中随机安排一家航空公司的乘客组?一步步骤

时间:2015-10-09 00:06:42

标签: java arrays random

我是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"};
    }
   }

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

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

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

有关更多说明,此过程的步骤如下:

  

您的计划将按如下方式安排乘客:   它将创建一个适当大小的“席位”数组(在“预订”数组的第一个>位置给出)。的完成

     

它将处理“预订”字符串数组中的其余项目。 >对于每组乘客,它将尝试坐下   它们如下:完成

     
      
  • 首先,它会看到该组中每个人的航班上是否还有足够的座位;如果没有,它会显示一个   错误消息,并且不为该组中的任何人分配席位。
  •   
  • 其次,它将通过“座位”数组来确定是否有足够大的空座位以便将整个组合在一起   可用(例如,如果组大小为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 个答案:

答案 0 :(得分:0)

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

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");
}

这可能是一个太多的帮助,假设它是功课,但它仍然需要一些工作,所以我希望它让你走上正确的道路。编辑:实际上重新阅读这个问题,这可能有点偏离你想要的东西,所以希望它能让你知道如何开始。