사이먼's 코딩노트

[Java] 호텔 예약 관리 프로그램 제작(1) 본문

프로젝트/[Java] 호텔 예약 관리 프로그램 제작

[Java] 호텔 예약 관리 프로그램 제작(1)

simonpark817 2024. 4. 16. 18:23

[호텔 예약 관리 프로그램 제작]

 

GitHub - psm817/hotel_booking_proj

Contribute to psm817/hotel_booking_proj development by creating an account on GitHub.

github.com

 

[초기 세팅]

  • 가장 먼저 Scanner를 통해 명령어 입력하고 종료하는 기능을 추가해봅시다.
package org.example;

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        System.out.println("호텔 예약 관리 시스템에 오신 것을 환영합니다.");
        System.out.println("=== 서비스 모음 ===");

        Scanner sc = new Scanner(System.in);

        while(true) {
            System.out.print("서비스 번호를 입력해주세요) ");
            String cmd = sc.nextLine();
            cmd = cmd.trim();

            if(cmd.length() == 0) {
                continue;
            }

            if(cmd.equals("exit")) {
                break;
            }


        }

        sc.close();
        System.out.println("감사합니다. 다음에 또 방문해주세요.");
    }
}
  • 프로그램이 시작되면 환영 안내와 함께 서비스 모음집을 보여준다.
  • trim()을 이용하여 띄어쓰기도 포함되게 하였고, 만약 명령어가 입력하지 않았다면 계속해서 서비스를 입력하라는 안내문이 출력되게 된다.
  • 'exit' 라는 명령어를 입력한다면 그 즉시 프로그램은 종료하게 된다.

 

[App 및 기본 Controller 생성]

  • 설계한 기능들을 모두 Main 클래스에서 다루긴엔 너무 효율성이 떨어지기 때문에 초반에 App 클래스와 각 컨트롤러를 구분해서 작업할 예정이다.
  • 먼저, 초기 세팅했던 코드는 모두 App 클래스로 이전한다.
package org.example;

import org.example.controller.*;

import java.util.Scanner;

public class App {
    public void start() {
        System.out.println("호텔 예약 관리 시스템에 오신 것을 환영합니다.");
        System.out.printf("\n");
        System.out.println("=============== 서비스 모음 ===============");
        System.out.println("1. 호텔 소개 : hotel introduce");
        System.out.println("2. 방 조회하기 : room list");
        System.out.println("3. 방 예약하기 : room booking");
        System.out.println("4. 예약 확인하기 : booking check");
        System.out.println("5. 예약정보 수정 : booking modify");
        System.out.println("6. 예약 취소 : booking delete");
        System.out.println("7. 로그인/로그아웃 : guset login/logout");
        System.out.println("8. 회원 가입 : guset join");
        System.out.println("===========================================");
        System.out.printf("\n");

        HotelController hotelController = new HotelController();
        RoomController roomController = new RoomController();
        BookingController bookingController = new BookingController();
        GusetController gusetController = new GusetController();

        Scanner sc = new Scanner(System.in);

        while(true) {
            System.out.print("서비스를 입력해주세요) ");
            String cmd = sc.nextLine();
            cmd = cmd.trim();

            if(cmd.length() == 0) {
                continue;
            }

            if(cmd.equals("exit")) {
                break;
            }

            String[] cmdBits = cmd.split(" ");

            if(cmdBits.length == 1) {
                System.out.println("존재하지 않는 서비스입니다.");
                continue;
            }

            String controllerName = cmdBits[0];
            String actionMethodName = cmdBits[1];

            Controller controller = null;

            if(controllerName.equals("hotel")) {
                controller = hotelController;
            }
            else if(controllerName.equals("room")) {
                controller = roomController;
            }
            else if(controllerName.equals("booking")) {
                controller = bookingController;
            }
            else if(controllerName.equals("guset")) {
                controller = gusetController;
            }
            else {
                System.out.println("존재하지 않는 서비스입니다.");
                continue;
            }

            String actionName = controllerName + "/" + actionMethodName;

            switch(actionName) {

            }

        }

        sc.close();
        System.out.println("감사합니다. 다음에 또 방문해주세요.");
    }
}
  • 사용자가 입력하는 명령어에 따라서 controller는 각 기능을 수행하는 controller로 이동한다.
  • controller의 종류는 총 7개이며, BookingController, Controller, ExportController, GuestController, HotelController, ReviewController, RoomController가 있다.
  • 모든 Controller는 controller.java 클래스를 상속받는다.
  • 아직 서비스 모음집은 모든 기능이 포함되어 있지 않다는 점은 참고 부탁드립니다.

 

package org.example;

public class Main {
    public static void main(String[] args) {
        new App().start();
    }
}
  • Main 클래스는 단순하게 App을 실행하도록만 해준다.
반응형