2015-02-10 2 views
0

Так что я пытаюсь решить то, что, по моему мнению, было довольно простой программой, но это дает мне массу проблем.Java 2D булевский массив Программа авиакомпании, полностью тупиковая

Я очень новичок в java, поэтому мои знания ограничены, но я чувствую, что это хороший опыт обучения.

Таким образом, требования к программе - создать программу авиакомпаний, которая назначает места на самолете.

Я должен использовать 2D булевский массив и сделать так, чтобы при заполнении сидений значение массива было равно true.

Пользователь должен иметь возможность выбирать между первым и экономичным классом и выбирать либо окно, либо сиденье сиденья. Место не может быть выбрано дважды. Также он просит отобразить обновленное визуальное представление мест для сидений, и я предполагаю, что он должен пройти через программу, а затем попросить пользователя ввести подробные сведения для нового клиента с обновленным визуальным представлением.

Heres код, который у меня есть до сих пор, любая помощь будет оценена по достоинству.

Мой вопрос, который у меня есть, заключается в том, что я не могу понять, как взять пользовательский ввод для выбора класса и выбора места, а затем использовать его в сочетании с моими петлями для правильного заполнения мест , Мне также было интересно, правильны ли циклы 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

+0

@MadProgrammer не * не это – immibis

+0

@immibis Cheers – MadProgrammer

ответ

1

Ну массив булевых может содержать только один тип информации (если место занято или нет), так что вы можете сделать, это два разных массива, один для первого класса и один для экономики, и на основе выбора пользователя присутствует один массив или другой. другой способ состоит в том, чтобы иметь массив всех мест, а другой - класс. поэтому, если нужно выбрать массив [1] [1], вы проверите array2 [1] [1], чтобы узнать, является ли он первым классом или нет.

Смежные вопросы