航空公司计划

时间:2014-11-12 15:03:57

标签: java arrays

我正在尝试为Java中的作业创建一个程序,并正在寻找正确的方向。我目前正在网上上课,所以向老师寻求帮助对我来说不是一个选择。

我正在尝试创建一个简单的java程序,允许用户输入他们的名字和姓氏,以及他们要求的座位号。如果座位被占用,程序应该找到最近的座位。到目前为止,我已成功获得用户的所有输入(尽管是以迂回的方式)并创建和打印数组。

问题

我可以在数组中存储boolean个值吗?我只是想存储假,如果座位被采取然后有和if else语句测试为真或假,并存储假如果返回的值是真(非常令人困惑,但这是我的思路)有一个更简单的方法走吧?另外,我如何使用该布尔值存储人名和姓?我是否必须创建一个单独的数组?到目前为止,我已经附加了我的代码,成功获取用户信息并打印出一个数组。

//Import scanner and arrays
    package airlinereservations;
    import java.util.Scanner;
    import java.util.Arrays;
    public class AirlineReservations {


    public static void main(String[] args) {
    //Print the header
    System.out.println("___________________________________");
    System.out.println("|WELCOME TO FLY BY NIGHT AIRLINES!|");
    System.out.println("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");

    // Promt user for first and last name
    System.out.println("Please enter your first name:");

    Scanner scan= new Scanner(System.in);

    String first = scan.nextLine();

    System.out.println("Please enter your last name:");

    String last = scan.nextLine();
    //Greet the user
    System.out.println("Hello! " + first + " "+ last);
    //Get the requested seat
    System.out.println("Please enter your requested seat row number 1-9:");

    int rowz = scan.nextInt();

    System.out.println("Please enter your requested seat column number 1-4:");

    int colz = scan.nextInt();
    //Tell the user if the seat is already taken
    if(int rowz == rowz, System.out.println("This seat is already taken!"));
        else(return true);

     //Print out the array
    int[][] Seating= new int[9][4];

         for(int row=0; row<Seating.length; ++row){
        for(int col=0; col<Seating[row].length; ++col){
            Seating[row][col] = (row + col) % 9 + 1; 



        for(int ro=0; ro<Seating.length; ++ro);
             }
        System.out.println();
        for(int col=0; col<Seating [row].length; ++col) 
            System.out.print(Seating[row][col]);


        }
        System.out.println();



   }
   }

1 个答案:

答案 0 :(得分:0)

正如你所说,为了推动正确的方向,我看到了两个快速的选择:

一个是添加Map。这将允许您存储一组键值对,您可以使用它们来表示座位,以及是否将其占用。

另一种选择是创建一个Seat类,它有一个seatName字段以及是否采用它,你可以创建一个这些座位对象的数组。

如果你不知道从哪里开始实施其中任何一个,我会帮助你,但我挑战你至少尝试先实现其中一个。

修改

或者,更简单地说,您可以创建一个包含字符串的二维数组,如下所示:

String[][] seats = new int[numberofseats][2];
seats[0][0] = "Seat Number 1";
seats[0][1] = "true";

你可以强制第二个维度只保持值true或false,然后像这样检查它们:

if(seats[0][1].equals("true")) // Then seat number 1 is taken

就错误处理而言,这可能不是最佳解决方案,但这是可能的。

编辑2 如果您要创建座位类,我会将其设置为:

public class Seat{
   private String seatName;
   private boolean isTaken;

   public Seat(String s, boolean t){
      this.seatName = s;
      this.isTaken = t;
   }

   public boolean isSeatTaken(){
      return this.isTaken;
   }
}

然后,你可以做以下事情:

ArrayList<Seat> myArrayList = new ArrayList<Seat>(); // Or a regular array if you prefer
// Add elements
// Below checks if first seat in list is taken
boolean firstSeatTaken = myArrayList.get(0).isSeatTaken();