Java 如何在爪哇的航空公司中随机安排乘客组?一步一步

Java 如何在爪哇的航空公司中随机安排乘客组?一步一步,java,arrays,random,Java,Arrays,Random,我是爪哇的新手,我有一个关于航空公司乘客座位群的计划。(我会尽量使我的问题简单易懂) 所以,我应该在一家航空公司安排乘客分组。我得到了关于他们如何在预订班就座的信息 public class Bookings { public Bookings() { } public static void main(String[] var0) { System.out.println("Do not run this program."); System.out.println("Cal

我是爪哇的新手,我有一个关于航空公司乘客座位群的计划。(我会尽量使我的问题简单易懂)

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

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();
第一个值表示我航班上的可用座位数,其余值表示要分配的组数及其名称

有关更多说明,本程序应遵循以下步骤: 您的节目将为乘客安排如下座位: 它将创建一个大小合适的“seats”数组(在“bookings”数组的第一个>位置给出)完成

它将处理字符串“bookings”数组中的剩余项。>对于每一组乘客,它都会尝试坐下 它们如下:完成

  • 首先,它将看看是否有足够的座位剩余的航班上的每个人在小组;如果没有,它将显示一个 错误消息,未将座位分配给组中的任何人
  • 其次,它将通过“seats”数组来确定是否有一块足够大的空座位可以让整个团队坐在一起 可用(例如,如果组大小为3,则将查看 有3个连续的空座位)

    如果阵列中的任何位置至少有一个这样的座位块, 通过随机分配,将组随机分配到其中一个块 在“seats”数组中选择一个元素

    如果该座位为空,则确定是否有足够的连续数组元素 (座位)也是空的,可以容纳整个团队;如果是,就座 在那里

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

    如果没有这样的闭塞,则随机分配列车中的每位乘客 单独分组到一个座位(即分组)。对于 每位乘客随机选择座位号,直到找到空位为止 座位

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

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

for(int i=0;i在写入循环之前先分解问题;计数器是在这种情况下跟踪可用性的最简单方法

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");
}
publicstaticvoidmain(字符串[]args){
int numsets=20;
int available=numsets;
int numGroups=6;
int groupsize[]=新的int[numGroups];
组大小[0]=2;
组大小[1]=1;
组大小[2]=5;
组大小[3]=3;
组大小[4]=10;
组大小[5]=2;
对于(int i=0;i组大小[i]){
可用-=组大小[i];
System.out.println(“组:“+i+”已被预订!”);
}
否则{
System.out.println(“没有足够的座位容纳组:“+i”);
}
}
系统输出打印项次(可用+剩余座位);
}

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

你在第二行的if语句会说
No seats ava在第一次预订后使用ilable
。您必须检查整个数组是否已满,而不仅仅是特定值。添加此处指定的语句以解决此问题:在伪代码中使用if(seats.equals(null)>passengerGroup)
意味着什么?它不会编译(而且,
anything.equals(null)
始终为
false
).这里有什么问题?在您提供的解释中,算法/步骤解释得很好。您只需要将其转换为java代码。我只是试图正确理解这些问题。我仍在尝试解决这个问题&java very@mickmemonic。问题是我无法将其正确转换为java。也许,您可以n帮我翻译算法?@wazaaaap在前两步中,这个问题让我更加困惑,因为我还在学习这门语言谢谢你的建议,我正在自学Java,我从过去的大学在线考试中选择了这个问题:)