본문 바로가기

JAVA/기본다지기

[JAVA] 간단한 영화관 예약프로그램 예제

package com.javalesson.test;


import java.util.Scanner;


public class T03CinemaReservation {

String[][] seat = new String[4][8]; //좌석을 표시 할 배열

char rn; //좌석의 열을 표시할 변수

int row_int, col, system; //좌석에 따른 배열의 행번호, 열번호, 기능동작

boolean confirm; //반복문을 탈출하기 위한 변수

String con_char, name, c_name, row, q; 

        //이름을 확인받을 변수, 이름을 받을 변수, 취소에 쓸 이름, 열이름, 예약여부표시

        String pw = "password";

        //pw = 관리자 비밀번호

public void Interface(){//메인 인터페이스

System.out.println("안녕하세요. 좌석 예약 시스템입니다.");

System.out.println("번호를 선택하세요");

System.out.println("예약(1),취소(2),좌석조회(3),종료(4)");

Scanner scan = new Scanner(System.in);

                try{

     system = scan.nextInt();

             switch(system){

                     case 00:Admin();break;

     case 1 :Reservation();break;

     case 2 :Cancel();break;

     case 3 :Reference();break;

     case 4 :System.out.println("시스템을 종료합니다.");break;

     }

               catch(InputMismatchException e){

                     System.out.pritnln("잘못입력하셨습니다.");

               }

}

public void Admin(){ //관리자모드

System.out.print("관리자 비밀번호를 입력하세요 : ");

Scanner scan = new Scanner(System.in);

if(scan.nextLine().equals(pw)){

System.out.println("관리자 로그인 되었습니다.");

confirm = true

do{

                                try{

     System.out.print("취소(1),좌석조회(2),종료(3) : ");

     system = new Scanner(System.in).nextInt();

     switch(system){

     case 1:AdminCancel();break;

     case 2:AdminRef(); break;

     case 3:System.out.println("관리자모드 종료");

confirm = falsebreak;

     }

                                catch(InputMismatchException e){

                                     System.out.pritnln("잘못입력하셨습니다.");

                                }

}while(confirm);

}else{

System.out.println("비밀번호가 일치하지 않습니다.\n");

}

}

public void Initialize(){//초기화

for(int i=0;i<4;i++){

for(int j=0;j<8;j++){

seat[i][j]="____"

}

}

}

public void AdminRef(){//관리자 조회

rn = 'A';

for(int i=0;i<4;i++){

System.out.print(rn+"열 ");

col = 1;

rn++;

for(int j=0;j<8;j++){

System.out.print(col + seat[i][j] + " " );

col++;

}

System.out.println();

}

}

public void Reference(){//조회

rn = 'A';

for(int i=0;i<4;i++){

System.out.print(rn+"열 ");

col = 1;

rn++;

for(int j=0;j<8;j++){

                                q=seat[i][j].equals("____")?" □ ":" ■ ";

System.out.print(col + q);

col++;

}

System.out.println();

}

}

        //예약

public void Reservation(){

Reference();

System.out.print("이름을 입력해주세요 : ");

//이름 입력

do{

confirm = true;

Scanner scan = new Scanner(System.in);

name = scan.nextLine();

System.out.println("이름을 확인해주세요.");

System.out.print("맞으면 Y, 틀리면 N : ");

con_char = scan.next();

confirm=(con_char.equals("Y")||con_char.equals("y"))?false:true;

}while(confirm);

//열 선택

do{

confirm = true;

System.out.print("열을 선택하세요(A~D) : ");

                        Scanner scan = new Scanner(System.in);

try{

row = scan.next();

}catch(Exception e){

System.out.println("A~D만 입력하세요");

}

if(row.equals("A")||ow.equals("a")){

row_int=0;

confirm = false;

}

else if(ow.equals("B")||ow.equals("b")){

row_int=1;

confirm = false;

}

else if(ow.equals("C")||ow.equals("c")){

row_int=2;

confirm = false;

}

else if(ow.equals("D")||ow.equals("d")){

row_int=3;

confirm = false;

}

else{

System.out.println("A~D만 입력하세요");

}

}while(confirm);

                //좌석번호 선택

do{

confirm = true;

Scanner scan = new Scanner(System.in);

try{

System.out.print("좌석 번호를 선택해주세요. 1~8 : ");

col = scan.nextInt();

if(col>=1 && col<=8){

if(seat[row_int][col-1].equals("____")){

seat[row_int][col-1]=name;

confirm = false;

}else{

System.out.println("이미 예약된 자리입니다.");

}

}else{

System.out.println("좌석은 1~8번까지 입니다.");

}

}catch(Exception e){

System.out.println("좌석은 1~8번까지 입니다.");

}

}while(confirm);

System.out.println(seat[row_int][col-1]+"님 "+row+"열"+col+"번 으로 예약이 완료되었습니다.");

Reference();

}

//취소

public void Cancel(){

System.out.println("이름을 입력하세요");

Scanner scan = new Scanner(System.in);

c_name = scan.nextLine();

for(int i=0;i<4;i++){

for(int j=0;j<8;j++){

if(seat[i][j].equals(c_name)){

seat[i][j]="____";

System.out.println("취소가 완료되었습니다.");

Reference();

}

}

}

}

        //관리자 전용 취소

public void AdminCancel(){ 

System.out.println("이름을 입력하세요");

Scanner scan = new Scanner(System.in);

c_name = scan.nextLine();

for(int i=0;i<4;i++){

for(int j=0;j<8;j++){

if(seat[i][j].equals(c_name)){

seat[i][j]="____";

System.out.println("취소가 완료되었습니다.");

AdminRef();

}

}

}

}

public static void main(String[] args) {

//프로그램 시작시 사용자 이름 묻기

//1.조회 2.예약 3.취소 4.종료(기능)

//누가예약했는지 저장하세요. 이름

//예약한 곳에 또다시 예약할 수 없게 해야함

//예약 방법은 1.열선택 2.자리번호 선택

T03CinemaReservation movie = new T03CinemaReservation();

movie.Initialize();

while(true){

movie.Interface();

if(movie.system == 4)break;

}

}//main end

}//class end


'JAVA > 기본다지기' 카테고리의 다른 글

[JAVA] 재미로 만든 로또번호 추첨기  (3) 2016.08.29
JAVA 15일차 필기  (0) 2016.08.26
[JAVA] 가위바위보 게임  (1) 2016.08.25
JAVA 14일차 필기  (1) 2016.08.24
JAVA 13일차 필기  (0) 2016.08.22