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