JAVA/code

명품 자바 프로그래밍 4장 실습문제 12번

마이구미2 2021. 4. 8. 15:11
import java.util.*;

class Reservation {
	Scanner scan = new Scanner(System.in);
	
	void reserve() {
		System.out.print("좌석구분 S(1), A(2), B(3)>>");
		int menu = scan.nextInt();
		
		if(menu == 1) {
			Seat.lookupS();
			System.out.print("이름>>");
			String name = scan.next();
			System.out.print("번호>>");
			int num = scan.nextInt();
			
			if(num < 1 || num > 10)
				System.out.println("없는 번호입니다. \n처음으로 돌아갑니다.");
			else 
				Seat.seatS[num-1] = name;
		}
		else if(menu == 2) {
			Seat.lookupA();
			System.out.print("이름>>");
			String name = scan.next();
			System.out.print("번호>>");
			int num = scan.nextInt();
			
			if(num < 1 || num > 10)
				System.out.println("없는 번호입니다. \n처음으로 돌아갑니다.");
			else 
				Seat.seatA[num-1] = name;
		}
		else if(menu == 3) {
			Seat.lookupB();
			System.out.print("이름>>");
			String name = scan.next();
			System.out.print("번호>>");
			int num = scan.nextInt();
			
			if(num < 1 || num > 10)
				System.out.println("없는 번호입니다. \n처음으로 돌아갑니다.");
			else 
				Seat.seatB[num-1] = name;
		}
		else {
			System.out.println("없는 메뉴입니다. \n처음으로 돌아갑니다.");
		}
	}
	
	void lookup() {
		Seat.lookupS();
		Seat.lookupA();
		Seat.lookupB();
		System.out.println("<<<조회를 완료하였습니다.>>>");
	}
	
	void cancle() {
		System.out.print("좌석구분 S(1), A(2), B(3)>>");
		int menu = scan.nextInt();
		
		if(menu == 1) {
			Seat.lookupS();
			System.out.print("이름>>");
			String name = scan.next();
			
			for(int i=0; i<10; i++) {
				if(name.equals(Seat.seatS[i])) {
					Seat.seatS[i] = "---";
					break;
				}
				if(i == 9)
					System.out.println(name + "은(는) 예약 명단에 없습니다.");
			}
		}
		else if(menu == 2) {
			Seat.lookupA();
			System.out.print("이름>>");
			String name = scan.next();
			
			for(int i=0; i<10; i++) {
				if(name.equals(Seat.seatA[i])) {
					Seat.seatA[i] = "---";
					break;
				}
				if(i == 9)
					System.out.println(name + "은(는) 예약 명단에 없습니다.");
			}
		}
		else if(menu == 3) {
			Seat.lookupB();
			System.out.print("이름>>");
			String name = scan.next();
			
			for(int i=0; i<10; i++) {
				if(name.equals(Seat.seatB[i])) {
					Seat.seatB[i] = "---";
					break;
				}
				if(i == 9)
					System.out.println(name + "은(는) 예약 명단에 없습니다.");
			}
		}
		else {
			System.out.println("없는 메뉴입니다. \n처음으로 돌아갑니다.");
		}
	}
	
	void run() {		
		System.out.println("명품콘서트홀 예약 시스템입니다.");
		Seat.init();
		
		while(true) {
			System.out.print("예약:1, 조회:2, 취소:3, 끝내기:4>>");
			
			try {
				int menu = scan.nextInt();
				
				if(menu == 1) 
					reserve();
				else if(menu == 2) 
					lookup();
				else if(menu == 3) 
					cancle();
				else if(menu == 4) 
					break;
				else
					System.out.println("없는 메뉴입니다. \n처음으로 돌아갑니다.");
			}
			catch(InputMismatchException e) {
				System.out.println("숫자가 아닙니다. \n처음으로 돌아갑니다.");
				scan.nextLine();
				continue;
			}
		}
	}
}

class Seat {
	static String[] seatS = new String[10];
	static String[] seatA = new String[10];
	static String[] seatB = new String[10];
	
	static void init() {
		for(int i=0; i<10; i++) {
			seatS[i] = "---";
			seatA[i] = "---";
			seatB[i] = "---";
		}
	}
	
	static void lookupS() {
		System.out.print("S>>");
		for(int i=0; i<10; i++) {
			System.out.print("\t" + seatS[i]);
		}
		System.out.println();
	}
	
	static void lookupA() {
		System.out.print("A>>");
		for(int i=0; i<10; i++) {
			System.out.print("\t" + seatA[i]);
		}
		System.out.println();
	}
	
	static void lookupB() {
		System.out.print("B>>");
		for(int i=0; i<10; i++) {
			System.out.print("\t" + seatB[i]);
		}
		System.out.println();
	}
}

public class exam12 {
	public static void main(String[] args) {
		Reservation rv = new Reservation();
		rv.run();
	}
}