Exemple #1
0
  /** 프로그램 시작 */
  public void startProgram() {

    // 초기화
    airInitialize.initializeSeats(vo);

    // 반복
    while (true) {

      // 예약이 가득 찼는지 확인
      if (airCheck.isFull(vo)) {
        out.printFull();
        break;
      }

      // 메뉴 출력
      out.printMenu();

      // 메뉴 입력
      vo.setChoice();

      if (vo.getChoice() == 1) {

        // 현재 좌석 출력
        out.printSeats(vo);

        // 예약할 좌석 입력
        out.printInputSeat();
        vo.setSeatNumber();

        // 공백 제거하고 Comma( , ) 를 기준으로 자르기
        vo.setSeatNumbers(airSplit.splitString(vo.getSeatNumber()));

        // 콤마 한개인지 확인
        if (!airCheck.checkComma(vo, airParse)) {
          out.printWarningComma();
          continue;
        }

        // 예약 되어 있는지 확인
        if (!airCheck.checkReservedSeats(vo)) {
          out.printWariningSeat();
          out.printCancel();

          vo.setChoice();

          if (vo.getChoice() == 1) {

            // 예약 취소
            vo.removeUserInfo();

            // ■ -> □ 변경
            List<String> selectedSeats = vo.getSeats().get(vo.getRow());
            selectedSeats.set(vo.getColumn(), "□");
          }
          continue;
        }

        // 배열 크기 확인
        if (!airCheck.checkArray(vo)) {
          out.printWarningArray();
          continue;
        }

        // 좌석 예매
        reserveSeat(vo);

        // 이름 입력
        out.printInputName();
        vo.putNameAndDate();

        // 날짜 입력
        vo.putNameAndDate(date.toString());
        System.out.println(date.toString());

        // 좌석번호 입력
        vo.putRowAndColumn();

        // 유저정보등록
        vo.putUserInfo();

      } else if (vo.getChoice() == 2) {
        break;
      } else {

        out.printWarningInput();
      }
    } // while

    out.printEnd();
    System.exit(0);
  } // startProgram