코드 그라데이션

Day10. 다차원 배열 + (비행기 예약 시스템 만들기) + 퀴즈 본문

Java/Mega

Day10. 다차원 배열 + (비행기 예약 시스템 만들기) + 퀴즈

완벽한 장면 2023. 3. 26. 19:44

다차원 배열

 

지금 요런 느낌으로... 다차원 배열은 확장가능하다.

 

int[ ][ ] a = {{1,2}, {2,3}}인 2차원 배열이 있다면

이렇게 들어간다.

 

비행기 좌석예약 시스템 예제

* 좌석 총 18석

* 행의 위치, 열의 위치 두 값 입력 받는다.

* 좌석배치 : 9행 2열

* 예약가능 좌석 0이 되면 프로그램 종료

* 예약가능 좌석을 입력하면 예약완료 메시지 출력

* 만약 기예약 상태인 좌석이라면 예약 완료 메시지와 다시 예약 요청 메시지 출력 후 비어있는 좌석 출력 후 알려줌.

* 행과 열을 입력 시 행은 8보다 크거나 0보다 작거나, 열은 1보다 크거나 0보다 작으면 잘못된 입력임을 출력

 

1. 입력 값과 2차원 배열 세팅, 자리는 18개

Scanner sc = new Scanner(System.in);  // 입력
int[][] seat = new int[9][2]; // 2차원배열 생성
int count = 18; // 총 예약 가능 수

 

2. 예약 좌석 입력 / 행과 열 / 당연히 좌석은 0보다 커야하지.

while(count > 0) {
System.out.println("예약하실 좌석을 입력해주세요(총"+count+"석)");
System.out.print("행 : ");
int h = sc.nextInt();
System.out.print("열 : ");
int y = sc.nextInt();

 

3. 잘못된 입력과  예약이 되어 있지 않은 경우 예약 받고 완료 메시지 출력

if(h<1 || h >9 || y >2 || y<1) {

System.out.println("잘못된 입력입니다.");

}

else {

if(seat[h-1][y-1] == 0) {

    //예약이 되어 있지 않는경우

System.out.println("예약이 완료 됐습니다.");

count--;

seat[h-1][y-1] = 1;

}

Else{

   //예약이 되어 있는경우

System.out.println(h+", "+y+"열 예약이 완료된 자리입니다. 다시 예약해주세요.");//출력

// 비어있는 좌석 출력

  for(int i = 0;i<seat.length;i++) { // 9

     for(int j = 0;j<seat[i].length;j++) { // 2

        if(seat[i][j] == 0) { //seat배열 의 값이 0인 것만 출력

           System.out.println("비어있는 좌석 : " + (i+1) + "" + (j+1) + "");

        }

     }

}

 

4. 프로그램 종료 메시지 구현

 

대강 요런 식의 전개.

728x90
Comments