2016-01-15 94 views
0

我必須創建一個10行的數組,每行有6列(它應該像船的座位圖)。此外,我必須爲乘客指定名字並打印座位表。我必須通過請求輸入乘客姓名和所需座位(行和列)來填充陣列。如果座位可用,則分配給乘客。如果座位已被分配,我必須要求另一行和一列。我必須不斷重複這個輸入過程,直到行值輸入爲負數。不打印,循環和陣列錯誤

之後,我必須打印乘客座位圖,列出所有未分配的座位爲「空」。

但是,我的程序沒有按照我想要的方式工作。這是我到目前爲止:

public static void main (String [] args) 
    { 
     Scanner kb = new Scanner (System.in); 
     String [][] Seats = new String [10][6]; 

     int row, column; 
     String name; 

     do { 
      System.out.println ("Please enter your name"); 
      name = kb.nextLine(); 

      System.out.println ("Please enter a row or input a negative number to stop"); 
      row = kb.nextInt(); 

      if (row < 0) { 
       SeatingChart (Seats); 
      } 

      System.out.println ("Please enter a column"); 
      column = kb.nextInt(); 

      if (Seats [row][column] == null) { 
       Seats [row][column]= name; 
      } else { 
       System.out.println("Sorry this seat is alredy assigned"); 
      } 
     } 
     while (row >= 0); 
    } 

    public static void SeatingChart (String Seats[][]) 
    { 
     for (int r = 0; r< Seats.length ; r++) { 
      for (int c = 0; c< Seats[r].length; c++) { 
       if (Seats[r][c]==null) { 
        System.out.print("empty"); 
       } else { 
        System.out.print(Seats[r][c]+ " "); 
       } 
      } 
     } 
     System.out.println(); 
     System.out.println(); 
    } 
} 
+0

你得到了什麼 - 錯誤的結果,部分結果,錯誤或異常? –

+0

@AMY它只是停止提問 – JavaB

回答

0

是你想要的嗎?

//change kb.nextLine() 
name = kb.next(); 
0

我把所有這一切都在另一個else語句:

System.out.println ("Please enter a column"); 
column = kb.nextInt(); 

if (Seats [row][column] == null) 
    Seats [row][column]= name; 

else 
    System.out.println("Sorry this seat is alredy assigned"); 

我還加

System.out.println ("Please enter your name"); 
name = kb.nextLine(); 

到上述else語句,之前或詢問後該列。

我會改變的另一件事是座位顯示的方式。我建議讓他們以10 x 6的格式。你可以使用額外的if語句來做到這一點。在「空」之後添加一個空格也將有助於可讀性。像下面這樣:

for (int r = 0; r< Seats.length ; r++) 
      for (int c = 1; c<= Seats[r].length; c++) 
      { 
       if (Seats[r][c-1]==null) 
        System.out.print("empty "); 
       else 
       System.out.print(Seats[r][c-1]+ " "); 

       if((c % 6) == 0) { 
        System.out.println("\n"); 
       } 

      }