좌석 예약 시스템

|
package Week04.day0730;

import java.util.Scanner;

/* 실습 2
다음은 명품콘서트홀 예약시스템이다
- 공연은 하루에 한 번 있다.
클래스로 구현하시오*/

public class BookingSystem {

	public static void main(String[] args) {
		
		boolean flag = true;
		
		
		String cusName = null; // 예약자 성명
		int stGubun = 0; // 좌석타입
		int stNum = 0;
		
		Book ss = new Book(cusName, stGubun, stNum);
		
		Scanner sc = new Scanner(System.in);
		
		while(flag) { // - 예약 시스템의 메뉴는 "예약", "조회", "취소", "끝내기"가 있다.
					  // - 없는 이름, 없는 번호, 없는 메뉴, 잘못된 취소 등에 대해서 오류 메시지를 출력하고 사용자가 다시시도하도록 한다.
			System.out.println();
			System.out.println("=============명품콘서트홀 예약시스템입니다.==============");
			System.out.println("원하는 서비스의 번호를 입력하세요. 1)예약 2)조회 3)취소 4)끝내기"); 
			
			int service_num = sc.nextInt();
			switch(service_num) {
			case 1: 
				ss.bookSeat();
				break;
			case 2: 
				ss.searchSeat();
				break;
			case 3: 
				ss.canSeat();
				break;
			case 4: // 끝내기
				System.out.println("시스템이 종료됩니다.");
				flag = false;
				break;
			default:
				System.out.println("잘못 누르셨습니다. 올바른 번호를 입력해주세요.");
			}
		}
	}
}

class Book{
	String cusName; // 예약자 성명
	int stGubun; // 좌석타입
	int stNum; // 좌석번호
	String[][] seats = new String[3][10]; // 좌석구분 - S A B 각 10석씩.
	String[] list = {"S","A","B"};
	
	public Book(String cusName, int stGubun, int stNum) {
		this.cusName = cusName;
		this.stGubun = stGubun;
		this.stNum = stNum;
		
		for(int i = 0 ; i < 3 ; i++) {
			for(int j = 0; j < 10 ; j++) {
				seats[i][j] = "__";
			}
		}
	}
	
	public void bookSeat() { // 좌석예약
		// 예약 - 예약은 한 자리만 가능하고, 좌석 타입, 예약자 이름, 좌석 번호를 순서대로 입력받아 예약한다.
		// - 좌석은 S석, A석,B석으로나뉘며,각각 10개의 좌석이 있다.
		
		Scanner sc = new Scanner(System.in);
		System.out.println("-----------좌석 예약-----------");
		System.out.println("성명을 입력하세요");
		System.out.println("성명 :");
		String cusName = sc.next();
		while(true) {
			System.out.println("원하시는 좌석등급을 선택하세요. S석 = 1/A석 = 2/B석 = 3 (숫자로 입력해주세요)");
			System.out.println("좌석등급 :");
			int stGubun = sc.nextInt() - 1;
			System.out.println("원하시는 좌석번호을 선택하세요. 1~10번");
			System.out.println("좌석번호 :");
			int stNum = sc.nextInt() - 1 ;
         		if(stNum>10){
         			System.out.println("잘못된 좌석번호 입니다. 다시 입력해주세요.");
         			stNum = sc.nextInt()-1;
         		}
         		if(seats[stGubun][stNum].equals(cusName)){
         			System.out.println("이미 예약된 자리입니다.다시 시도해주세요.");
         	}
         	seats[stGubun][stNum] = (cusName);
         	break;
		}
		System.out.println();
	}
	
	public void searchSeat() { // 좌석조회 및 출력
		// 조회 - 조회는 모든 좌석을 출력한다.
		System.out.println("-----------좌석조회-----------");
		for (int i = 0; i < 3; i++) {
            System.out.print("\n" + list[i] + "석 ");
            for (int j = 0; j < 10; j++) {
                System.out.print(" "+ seats[i][j]);
            }
        }
	}
	
	public void canSeat() { // 좌석취소
		// 취소 - 취소는 예약자의 이름을 입력받아 취소한다.
			Scanner sc = new Scanner(System.in);
			System.out.println("-----------예약 취소-----------");
			System.out.println("예약자 성명:");
				String canName = sc.next();
				for (int i = 0; i < 3; i++) {
					for (int j = 0; j < 10; j++) {
						if(canName.equals(seats[i][j])) {
							seats[i][j] = "__";
							System.out.println("예약이 취소 되었습니다.");
							break;
					}
				}
			}
	}
}

'Java' 카테고리의 다른 글

Server 1대에 Multi version 의 JDK 사용  (0) 2022.12.06
DAO, DTO, VO  (0) 2022.03.21
디버깅하는 법  (0) 2019.07.31
주차관리 시스템 ver.2  (0) 2019.07.24
Java - Stream, Network  (0) 2019.07.23
And