2015-02-10 62 views
0

所以我试图解决我认为是一个非常简单的程序,但它给了我很多麻烦。Java 2D布尔阵列航空公司程序,完全难倒

我对Java很陌生,所以我的知识有限,但我觉得这是一个很好的学习体验。

因此,计划要求是创建一个航班计划,在飞机上分配座位。

我必须使用一个2D布尔数组,并且在座位填满时将其设置为true,将数组值设置为true。

用户必须能够选择第一个和经济舱,并选择一个窗口或小岛座位。座位不能选择两次。此外,它要求显示飞机座位的更新视觉表示形式,我想它应该循环播放该程序,然后提示用户使用更新后的视觉表示形式为新客户输入详细信息。

继承人我到目前为止的代码,任何帮助将不胜感激。

我遇到的问题是我无法弄清楚如何为类选择和座位选择采取用户输入,然后将它与我的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() 
     { 

     } 


    } 
+1

您需要提供关于您遇到的问题的具体问题,将一堆代码和问题陈述倾倒到我们身上不是StackOverflow的用处。 – MadProgrammer 2015-02-10 02:36:06

+0

@MadProgrammer不是*不是*不是 – immibis 2015-02-10 02:36:23

+0

@immibis干杯 – MadProgrammer 2015-02-10 02:36:48

回答

1

那么布尔数组只能容纳一个类型的信息(如座椅采取或不),所以你可以做的是有两个不同的阵列,一个头等舱和一个经济,并根据用户选择提供一个阵列或其他。 另一种方法是拥有一系列所有座位,另一种座位是座位。所以如果array [1] [1]被选中,你检查array2 [1] [1]来判断它是否是first class。