Q1. 비행기 예약 프로그램 만들기(이차원 배열)
package Day9;
import java.util.Scanner;
/*
* Q.18
* 비행기 예약 프로그램 만들기
* 8줄 2개의 좌석이 존재합니다.
* 1. 예매 2. 빈좌석 조회 3. 종료
* 1 선택 시 좌석을 선택하세요 ex) 3 0(엔터) = 3행 0번 째 자리
* 3행 0번째 자리가 비어있으면 "좌석 예약이 되었습니다." 출력
* 만약 예약이 되어있다면 "이미 예약된 좌석입니다." 출력 후 첫 화면 이동
* 만약 모든 좌석이 예약이 되어있다면 "좌석을 선택하세요"가 출력되지 않고,
* "죄송합니다. 모든 좌석의 예매가 끝났습니다." 출력 이후에 첫 화면으로 이동합니다.
* 2 선택 시 비어있는 좌석의 정보를 전체 출력합니다 ex) 0행 1번, 1행 0번
* 3 입력 시 "프로그램을 종료합니다."출력 후 프로그램 종료합니다.
* (단, 첫 화면에서 1,2,3 이외의 입력은 잘못된 입력을 출력해줘야합니다.
* 1번 좌석 선택시에도 줄 0~7 좌석 0~1 입력 이외의 값을 입력하면
* 잘못된 입력입니다 를 출력하고 첫 화면 이동)
*
* */
public class Question1 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
int [][] arr = new int[8][2];
while(true) {
System.out.println("비행기 예약 프로그램입니다. 원하는 메뉴를 선택하세요.");
System.out.println("1. 좌석 예매 | 2. 빈 좌석 조회 | 3. 프로그램 종료 ");
int choice = sc.nextInt();
if(choice == 1) {
int cnt = 0;
for(int i=0; i<8; i++) {
for(int j=0; j<2; j++) {
if(arr[i][j]==0) {
cnt++;
}
}
}
if(cnt != 0) {
System.out.println("예매하실 좌석을 선택해주세요 ex) 0~7줄 0~1좌석");
System.out.println("0~7사이의 줄을 선택해주세요 ");
int userRow = sc.nextInt();
System.out.println("0~1사이의 좌석을 선택해주세요.");
int userCol = sc.nextInt();
if(userRow>=0 && userRow<=7 && userCol>=0 && userCol<=1) {
if(arr[userRow][userCol] == 0) {
arr[userRow][userCol] = 1;
System.out.println("감사합니다. 좌석이 예매 완료되었습니다.");
System.out.println("처음 화면으로 돌아갑니다.");
System.out.println();
}else {
System.out.println("죄송합니다. 이미 예약된 좌석입니다.");
System.out.println("처음 화면으로 돌아갑니다.");
System.out.println();
}
}else {
System.out.println("잘못된 좌석 선택입니다. 처음 화면으로 돌아갑니다.");
System.out.println();
}
}else {
System.out.println("모든 좌석의 예매가 끝났습니다.처음 화면으로 돌아갑니다.");
System.out.println();
}
}else if(choice ==2) {
System.out.println("빈 좌석 조회 화면입니다. 현재 빈 좌석은");
for(int i=0; i<8; i++) {
for(int j=0; j<2; j++ ) {
if(arr[i][j] == 0) {
System.out.print(i+" "+j+" ");
}
}
}
System.out.println("좌석입니다.");
System.out.println("초기화면으로 돌아갑니다.");
System.out.println();
}else if(choice == 3) {
System.out.println("비행기 예약 프로그램을 종료합니다.");
break;
}else {
System.out.println("잘못된 메뉴 입력입니다. 초기화면으로 돌아갑니다.");
System.out.println();
}
}
}
}
이차원 배열을 연습하는 문제였다.
사실 굳이 row와 col을 따로 받지 않아도
되는 문제라고 하셨지만
후다닥 풀고 싶어 따로 나눠 풀었다ㅎㅎ
개인적으로 모든 좌석의 예매가 끝났습니다 부분
테스트가 너무 귀찮았던...😭
'공부 > 과제.' 카테고리의 다른 글
JAVA 문제풀이 13 배열 낚시 게임 (0) | 2021.04.28 |
---|---|
JAVA 문제풀이 12 버블정렬 (0) | 2021.04.26 |
JAVA 문제풀이 10 마방진 (0) | 2021.04.26 |
JAVA 문제풀이 09 숫자 야구 게임 (0) | 2021.04.26 |
JAVA 문제풀이 08 나선형(달팽이) 배열 (0) | 2021.04.26 |
댓글