所以我试图解决我认为非常简单的程序,但它给了我很多麻烦。
我对java很新,所以我的知识有限,但我觉得这是一个很好的学习经历。
因此,计划要求是创建一个在飞机上分配座位的航空公司计划。
我必须使用2D布尔数组,并且当座位填充时,将数组值设置为true。
用户必须能够在First和Economy Class之间进行选择,并选择窗口或小岛座位。座位不能选择两次。此外,它要求显示飞机座位的更新可视化表示,我想它应该遍历程序,然后提示用户输入新客户的详细信息并使用更新的可视化表示。
这是我到目前为止的代码,任何帮助将不胜感激。
我遇到的问题是我无法弄清楚如何将用户输入用于类选择和座位选择,然后将其与我的for-loops结合使用以正确填充座位。我也想知道我使用的for循环是否正确,如果它背后的语法和逻辑。我很难将我的想法变成代码。
import java.util.Scanner;
public class AirLinerApp {
boolean SeatArray[][] = new boolean[4][4];
Scanner scan = new Scanner (System.in);
public void MakeReservation()
{
System.out.println("Please type 1 for first class or 2 for economy class: ");
int classinput = scan.nextInt();
System.out.println("Please type 1 for a window seat or 2 for an isle seat: ");
int seatinput = scan.nextInt();
if(classinput == 1 &&seatinput == 1)
{
FirstClassWindow();
}
if(classinput ==1 &&seatinput == 2)
{
FirstClassIsle();
}
if(classinput ==2 &&seatinput == 1)
{
EconomyClassWindow();
}
if(classinput ==2 &&seatinput ==2)
{
EconomyClassIsle();
}
}
public void FirstClassWindow()
{
for(int i=0;i <=1;i++){
if(SeatArray[i][0] == false)
SeatArray[i][0]= true;
if (SeatArray[i][3] == false)
SeatArray[i][3] = true;
}
}
public void FirstClassIsle()
{
for(int i=0;i <=1;i++){
if(SeatArray[i][1] == false)
SeatArray[i][1] = true;
if(SeatArray[i][2] == false)
SeatArray[i][2] = true;
}
}
public void EconomyClassWindow()
{
for(int i=2;i <=3;i++){
if(SeatArray[i][0] == false)
SeatArray[i][0] = true;
if(SeatArray[i][0] == false)
SeatArray[i][0] = true;
}
}
public void EconomyClassIsle()
{
for(int i=2;i <=3;i++){
if(SeatArray[i][1] == false)
SeatArray[i][1] = true;
if(SeatArray[i][2] == false)
SeatArray[i][2] = true;
}
}
public static void SeatDisplay()
{
}
}
答案 0 :(得分:1)
布尔数组只能容纳一种类型的信息(如果是否采取座位),那么你可以做的是有两个不同的数组,一个用于头等,一个用于经济,并且基于用户选择存在一个数组或其他。 另一种方法是拥有一个所有座位的阵列,另一个座位是一个座位。因此,如果要选择array [1] [1],则检查array2 [1] [1]以查看它是否是第一类。