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,我从过去的大学在线考试中选择了这个问题:)