2016. 08. 26. Fri. 열여섯 번째 수업
오늘의 수업내용
- 영화관 좌석 예약시스템 만들기
- 서비스 메뉴는 (1.조회 2.예약 3.예약자취소 4. 관리자취소 5.종료(기능) 6.로그인(이름))을 출력
- 예약된 자리에 새롭게 예약할 수 없게 만든다(중복예약 불가)
- 관리자 취소시 예약되지 않은 자리를 취소하려고 하면 "예약되지 않은 자리입니다. 새롭게 선택하세요" 메시지와 함께 새롭게 입력한다.
- while 제어문을 사용해서 프로그램 종료를 선택할 때까지 시스템이 종료되지 않도록 한다.
- 열을 알파벳으로 출력한다.
1. resetSeat()와 reference() 생성자를 생생해보자.
resetSeat()와 reference()을 생성하여 main외부에서 seat를 선언하고, 이차원 배열을 정렬하여 출력하도록 했다.
2. 예약중복과 관리자 취소시 예약여부 확인은 DoWhile제어문을 이용하여 예약시 중복되거나, 취소시 빈좌석이면 다시 입력 받게끔
If문과 함께 제어하도록 해보았다.
3. 프로그램 종료 역시 DoWhile 제어문을 이용해서 (5.종료)를 선택하지 않을시 종료되지 않도록 내부에서 계속 로직이 돌도록 설정을 해보았다.
(5.종료) 선택시 break;를 걸어줬다.
4. 열 이름을 알파벳으로 바꾸는 것은 char row = 'A';를 선언하고 i 대신 입력하고 r++;를 입력해서 순서대로 출력되게 했다.
package com.javalesson.ch16project;
import java.util.Scanner;
public class L03CinemaReserve {
public static String[][] seat = new String[5][9];
public void resetSeat(){
for(int i=1; i<5; i++){
for(int j=1; j<9; j++){
seat[i][j]="___";
}
}
}//resetSeat
public void reference(){
char row = 'A';
for(int i=1; i<5; i++){
System.out.print("\n"+row+"열 ");row++;
for(int j=1; j<9; j++){
String seat = (this.seat[i][j].equals("___"))?"◻︎":"◼︎";
System.out.print((j)+seat+" ");
}
}
System.out.println();
}//reference
public static void main(String[] args){
L03CinemaReserve cr = new L03CinemaReserve();
cr.resetSeat();
int selectNum, row, col;
String user;
boolean flag = true;
boolean exit = true;
Scanner scan = new Scanner(System.in);
System.out.print("이름을 입력해주세요->");
user = scan.nextLine();
do{
System.out.println("\n1.조회 2.예약 3.예약자취소 4.관리자취소 5.종료(기능) 6.로그인("+user+")");
System.out.print("원하시는 서비스를 선택해주세요->");
selectNum = scan.nextInt();
if(selectNum==1){
System.out.println("좌석조회 서비스 입니다.");
cr.reference();
}else if(selectNum==2){
do{
System.out.print("열을 선택하세요->");
row = scan.nextInt();
System.out.print("행을 선택하세요->");
col = scan.nextInt();
if(seat[row][col].equals("___")){
seat[row][col] = user;
System.out.println(row+"열"+col+"행 좌석이 예약되었습니다.");
flag = false;
}else{
System.out.println("이미 예약된 좌석입니다. 다른 좌석을 선택해주세요.");
}
cr.reference();
}while(flag);
}else if(selectNum==3){
for(int i=1; i<5; i++){
for(int j=1; j<9; j++)
if(seat[i][j].equals(user)){
String yn;
System.out.println("예약하신 좌석은 "+i+"열"+j+"행 입니다.");
System.out.print("예약취소 하시겠습니다?(y/n)");
yn = new Scanner(System.in).nextLine();
if(yn.equals("y")){
seat[i][j]="___";
System.out.println("예약이 취소되었습니다.");
}else{
System.out.println("예약이 취소되지 않았습니다.");
}cr.reference();
}
}
}else if(selectNum==4){
do{
System.out.print("열을 선택하세요->");
row = scan.nextInt();
System.out.print("행을 선택하세요->");
col = scan.nextInt();
if(seat[row][col].equals(user)){
seat[row][col]="___";
System.out.println("삭제완료");
flag = false;
}else{
System.out.println("예약되지않은 좌석입니다. 새롭게 선택하세요!");
}
}while(flag);
cr.reference();
}else if(selectNum==5){
System.out.println("서비스를 종료합니다.");break;
}
}while(exit);
}//main
}//class
출력 내용은 아래와 같다.
'IT story > Java' 카테고리의 다른 글
D+17 Input Output(입, 출력) (0) | 2016.08.29 |
---|---|
D+16 Exception(예외처리) Throws (0) | 2016.08.27 |
D+15 Project(숫자 맞추게 게임) (0) | 2016.08.26 |
D+15 Project(가위 바위 보 게임) (0) | 2016.08.26 |
D+14 Exception(TryCatch) 예외발생 (0) | 2016.08.26 |