Lumiere, and s5unnyjjj

[2019 JAVA 프로젝트] JAVA GUI를 이용한 온라인 영화 예매 본문

Project

[2019 JAVA 프로젝트] JAVA GUI를 이용한 온라인 영화 예매

s5unnyjjj 2021. 5. 16. 00:03
반응형

프로젝트 이름 : JAVA GUI를 이용한 온라인 영화 예매
참여 기간 : 2019.10~2019.11
참여 인원 : 1명(홀로 진행)


목차는 아래와 같다.

 1. 구현 기능

 2. 상세 기능

 3. 클래스

 4. 오류 처리


1. 구현 기능

  • GUI를 이용한 구현
  • Java.io 패키지를 이용하여 텍스트 파일에 회원가입한 회원들 정보 저장
  • 로그인 하게 되면 메인화면의 버튼 일부 변경
  • 영화 정보는 로그인 하지 않아도 실행 가능하지만, 예매는 로그인 후 예매
  • 각 영화의 개봉날짜에 따라 날짜와 시간을 다르게 적용
  • 간식과 결제 방법을 구분하여 적용
  • 선택한 인원 수에 해당하는 좌석 선택

2. 상세 기능메인 화면

  • 메인 화면
    • 예매 : 영화 예매(단, 로그인 후에만 가능)
    • 영화 : 나열된 각 영화 정보 확인
    • 로그인
    • 회원가입
  • 회원가입

    • 성명 : 최대 3글자
    • 생년월일 : 최대 6글자
    • 아이디 : 최대 10글자
    • 비밀번호 : 최대 10글자
    • 비밀번호 확인 : 위에 작성한 비밀번호와 다를 시, 오류 발생

    • 회원가입이 완료되면 알림 메시지 후, 메인 화면으로 이동

    • 회원가입 완료와 동시에 회원명단.txt 파일에 회원 정보 저장

    • 회원가입시 작성하는 두 번의 비밀번호가 다를 시, 에러 메시지 발생
    • 로그인 전까지는 회원가입 무한 반복 가능
  • 로그인

    • 회원가입한 회원들의 아이디 중, 해당 아이디와 비밀번호 입력
    • 부정확한 정보 입력 시, 오류 메시지 발생 (아이디 틀릴경우랑 비밀번호 틀릴경우랑 오류메시지 다름)
    • 정확한 정보 입력 시, 로그인 완료 메시지 발생
  • 로그인 후, 메일화면

    • 로그인 후, 좌측 하단에 있던 '로그인'버튼이 '내 정보' 버튼으로 변경
    • 로그인 후, 우측 하단에 있던 '회원가입'버튼이 '로그아웃' 버튼으로 변경
  • 영화

    • 원하는 영화 선택
    • 최상위에 있는 '선택해주세요'를 누른 후, 다음 화면으로 이동하게 되면 에러 메시지 발생


    • 'Be Always Happy' 영화 정보 나열
    • 영화 개봉일로부터 3일 후까지만 예매 가능
    • 하단의 영화 개봉 일과 기본 정보에 있는 상영 시간에 따라 예매 정보가 달라짐


    • 'Do Your Best' 영화 정보 나열
    • 영화 개봉일로부터 3일 후 까지만 예매 가능
    • 하단의 영화 개봉 일과 기본 정보에 있는 상영 시간에 따라 예매 정보가 달라짐


    • 'In Your Time Zone' 영화 정보 나열
    • 영화 개봉일로부터 3일 후 까지만 예매 가능
    • 하단의 영화 개봉일과 기본 정보에 있는 상영 시간에 따라 예매 정보가 달라짐
  • 예매


    • 영화에 따라 날짜와 시간 정보가 다르기에, 영화 제목 선택 전까지는 영화 날짜와 영화 시간에 대한 정보가 뜨지 않도록 설정
    • 영화를 선택하지 않거나 최상위에 있는 '선택해주세요'를 선택하오 이동하게 되면 에러 메시지 발생


    • 'Be Always Happy' 영화 개봉일이 11월 30일이므로 11월 30일, 12월 01일, 12월 02일까지만 예매 기능 설정
    • 영화 관람 수는 동일하게 최대 10명으로 설정


    • 앞에서 설정한 영화 관람 수 만큼 좌석 선택 가능하도록 설정
    • 해당 좌석 다시 클릭 시, 취소되도록 설정하였으며 이후 다른 좌석 선택 선택 가능


    • 원하는 종류의 간식 선택 가능
    • '선택안함'을 선택하면 추가 금액은 발생하지 않음
    • 선택하지않거나 최상위에 있는 '선택해주세요'를 선택하고 이동하게 되면 에러 메시지 발생


    • 앞에서 선택한 영화 제목과 영화 날짜, 영화 시간, 좌석, 구매한 간식 그리고 총 금액 확인 기능 구현
    • 선택한 좌석은 선택한 순서에 상관없이 알파벳과 숫자 순으로 나열하는 기능 구현
    • 선택하지 않거나 최상위에 있는 '선택해주세요'를 선택하고 이동하게 되면 에러 메시지 발생
    • 결제 방법 선택 후, PAY 버튼 누르면 해당 방법으로 결제 완료 되도록 기능 구현
  • 내 정보

    • 회원가입 시에 작성한 성명과 생년월일, 아이디, 비밀번호 표시

 

3. 클래스

[클래스 1]

 

[클래스 2]

 

4. 오류 처리

 

  • 로그인 하게 되면, 파일로부터 한 줄씩 읽어 온 문자열을 String 배열에 저장한 후, 아이디가 저장된 맨 앞의 방을 기준으로 비교하여 그에 해당하는 메시지 발생


  • 로그인 상태를 나타내는 변수 opt_login이 true이면 로그인 되었다는 의미로, 예매 화면으로 이동
  • opt_login이 false이면 로그인상태가 아니기에 Message 클래스를 통해 에러 메시지 발생


  • Choice 객체로 생성된 CH_movie, CH_date, CH_time, CH_person에서 getSelectedIndex()를 통해 인덱스값을 얻음
  • 얻어온 인덱스 값이 0일 경우 즉, 선택되지 않았을 경우 Message 클래스를 통해 에러 메시지 발생


>> 위 내용은 필자가 공부하여 직접 정리한 내용이며, 위 그림 역시 직접 편집한 그림이므로 워터마크 "s5unnyjjj"를 삽입하였음을 알려드립니다.

>> 부족한 점이 많을 수 있기에 잘못된 내용이나 궁금한 사항이 있으면 댓글 달아주시기 바랍니다.

>>  필자가 직접 구현한 코드를 추후 업로드 예정입니다.

>> 긴 글 읽어주셔서 감사합니다. 

반응형

'Project' 카테고리의 다른 글

[2019 Forensic] '제 6회 디지털범인을 찾아라' 풀이  (0) 2021.05.15
Comments