【问题标题】:Java 2D boolean array Airline program, completely stumpedJava 2D布尔数组航空公司程序,完全难倒
【发布时间】:2015-04-09 23:31:39
【问题描述】:

所以我试图解决我认为是一个非常简单的程序,但这给我带来了很多麻烦。

我对java很陌生,所以我的知识有限,但我觉得这是一次很好的学习经历。

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

我必须使用 2D 布尔数组,并且当座位被填满时,数组值设置为 true。

用户必须能够在头等舱和经济舱之间进行选择,并且可以选择靠窗座位或孤岛座位。一个座位不能选择两次。它还要求显示飞机座位的更新视觉表示,我想它应该循环通过程序,然后提示用户使用更新的视觉表示输入新客户的详细信息。

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

我遇到的问题是我无法弄清楚如何将用户输入用于类选择和座位选择,然后将其与我的 for 循环结合使用以正确填充座位。我还想知道我使用的 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()
        {

        }


    }

【问题讨论】:

  • 您需要针对您遇到的问题提供一个具体的问题,将一堆代码和问题陈述转储给我们并不是 StackOverflow 的用途。
  • @MadProgrammer 不是* 不是
  • 好的,我遇到的问题是我无法弄清楚如何获取用户对班级选择和座位选择的输入,然后将其与我的 for-循环以正确填充座位。我还想知道我使用的 for 循环是否正确,它背后的语法和逻辑是否正确。我无法将我的想法转化为代码
  • @cranny 说“我的问题是我不能”并不能真正缩小范围。

标签: java arrays boolean


【解决方案1】:

一个布尔数组只能保存一种类型的信息(如果座位是否被占用)所以你可以做的是有两个不同的数组,一个用于头等舱,一个用于经济舱,并根据用户选择呈现一个数组或其他。 另一种方法是有一个所有座位的数组,另一个座位是哪个等级的。因此,如果要选择 array[1][1],请检查 array2[1][1] 以查看它是否是一流的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-07-19
    • 1970-01-01
    • 1970-01-01
    • 2015-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-13
    相关资源
    最近更新 更多