Skip to content

fastapi25/Project07

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 

Repository files navigation

🎬 Movie Reservation System (순수 Java 콘솔 프로젝트)

📅 프로젝트 개요

항목 내용
프로젝트명 MovieReservation
개발기간 2025.10.20 ~ 2025.10.23 (2일)
개발환경 Java 17 (순수 Java SE)
개발도구 Eclipse / IntelliJ / VS Code 중 택1
목표 영화 조회 → 좌석 선택 → 예매 및 취소가 가능한 콘솔 기반 예매 시스템 구현
참여 인원 1명 (개인 프로젝트)
주요 특징 OOP 설계 기반, 클래스 분리, 예외처리 및 데이터 검증 포함

🧩 프로젝트 구조

🧩 프로젝트 구조

MovieReservation/ ├── src/ │ ├── main/ │ │ ├── Movie.java │ │ ├── Theater.java │ │ ├── Seat.java │ │ ├── Schedule.java │ │ ├── Reservation.java │ │ ├── MovieService.java │ │ ├── ReservationService.java │ │ ├── DataInitializer.java │ │ └── Main.java └── README.md

yaml 코드 복사


⚙️ 주요 클래스 설명

클래스명 역할
Movie 영화 정보(id, 제목, 상영시간, 등급 등) 관리
Theater 상영관 정보(관 이름, 좌석 수 등) 관리
Seat 좌석 번호, 예약 상태를 관리
Schedule 특정 영화의 상영 시간과 상영관을 연결
Reservation 사용자의 예매 내역(영화, 시간, 좌석, 상태 등) 저장
MovieService 영화 목록 조회, 상영 일정 확인 기능 담당
ReservationService 좌석 선택, 예약/취소 기능 로직 담당
DataInitializer 초기 더미 데이터(영화, 상영관, 좌석 등) 생성
Main 콘솔 UI 및 전체 실행 로직 제어(Main Menu)

💡 주요 기능 설명

구분 기능명 설명
1. 영화 조회 영화 목록 출력 현재 상영 중인 영화 제목/시간/등급 표시
2. 상영 일정 선택 상영관 및 시간 선택 선택한 영화의 상영시간 목록 출력
3. 좌석 조회 및 선택 좌석 현황(예약/가능) 출력 2차원 배열 기반 좌석 표시 (O=가능, X=예약)
4. 예매 좌석 선택 후 예매 완료 예매번호 자동 생성, 중복 예약 방지
5. 예매 확인 예약번호로 조회 예약 내역(영화명, 시간, 좌석) 출력
6. 예매 취소 예약번호 입력 시 취소 처리 취소 시 좌석 상태 복구
7. 종료 프로그램 종료 데이터 저장(선택) 후 종료

📘 실행 예시 (콘솔)

============================== 🎬 영화 예매 시스템 영화 목록 보기

영화 예매하기

예매 내역 확인

예매 취소

종료

메뉴 선택: 1

[현재 상영중인 영화]

<서울의 봄> (15세) 120분

<인사이드 아웃 2> (전체) 110분

<슬램덩크> (12세) 125분 선택: 1

상영시간:

13:00 - 15:00 (1관)

16:00 - 18:00 (2관) 시간 선택: 1

좌석 현황 (O: 가능, X: 예약) A1 O | A2 O | A3 X | A4 O | A5 O B1 O | B2 X | B3 O | B4 O | B5 O 좌석 선택: A2

예매 완료 ✅ 예매번호: R20251021-001

yaml 코드 복사


🧮 주요 로직 설계

기능 처리 절차
예매 ① 영화 선택 → ② 상영시간 선택 → ③ 좌석 선택 → ④ 좌석 상태 변경(AVAILABLE → RESERVED) → ⑤ Reservation 객체 생성
예매 중복 방지 이미 예약된 좌석(status=RESERVED)은 선택 불가
예매 취소 예약번호 입력 → status=RESERVED → CANCELED로 변경 및 좌석 복구
데이터 구조 ArrayList / HashMap 사용하여 메모리 내에서 관리

🧱 클래스 간 관계 (UML 요약)

Movie 1 --- * Schedule 1 --- * Theater Theater 1 --- * Seat Schedule 1 --- * Reservation Reservation * --- * Seat

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages