2015-02-10 64 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。