[Kotlin/Team] 11조 - 공차 Kiosk 만들기

[Kotlin/Team] 11조 - 공차 Kiosk 만들기

팀명 :협객(協客) - “협력”과 “나누다”를 합성한 단어로, 팀원들 간의 협력과 아이디어의 나눔을 강조합니다.

프로젝트 소개 : 공차 를 바탕으로 만들어진 Kiosk

[최종 구현 단계]

Lv0~Lv3 : 완벽 구현완료.

4Lv :

구현완료☑️ 숫자를 입력해야하는데 문자를 입력했을때 다시 입력할 수 있도록 예외를 처리해요

현재 잔액과 가격을 비교해서 구매 가능한 상태를 정의해요 (클래스 추가가능) -> 초기에 적용했으나 이후 결제 처리부분이 3가지로 구현되어 프로젝트와 어울리지 않기때문에 구현X

5Lv :

구현완료☑️ 특정 작업이 종료된 후, 3초뒤에 다른 작업을 수행할 수 있도록 코드를 작성해요

구현완료☑️ 결제시 현재 시간을 비교하여 특정 시간대에는 결제할 수 없다는 알림창을 띄워줘요

프로그램을 종료할때까지 5초마다 현재 주문 대기수를 실시간으로 출력해줘요 -> 주문대기자수를 출력해보았으나 5초마다 뜨게하는기능이 불편하다 생각되어 구현X

🥤구현 클래스 & 상세기능

1) 메인 - KioskMain.kt

"어서오세요. 공들여 맛있는 공차입니다."

아래 메뉴판을 보시고 메뉴를 골라 입력해주세요
[ 공차 메뉴 ]
1. 베스트 콤비네이션  | 공차 고객들이 즐겨찾는 티와 토핑의 환상의 조합
2. 오리지널 티      | 찻잎을 정성껏 우려낸 프리미엄 잎차
3. 밀크티          | 프리미엄 잎차에 부드러운 밀크를 넣은 공차의 No.1메뉴
4. 쥬얼리          | 쥬얼리가 기본으로 들어간 맛있는 밀크티
5. Coffee         | 프리미엄 잎차와 100% 아라비카 원두의 이색 만남
6. Order          | 장바구니를 확인 후 주문합니다.
7. Cancel         | 진행중인 주문을 취소합니다.
메뉴 선택:

2) 공차 메뉴

베스트 콤비네이션/음료+토핑조합 BestComMenu.kt

[ Best Combination MENU ]
1. 블랙밀크티+펄          |4700 원|
2. 타로밀크티+펄          |4700 원|
3. 우롱티+코코넛+밀크폼     |4700 원|
4. 아메리카노+펄          |4000 원|
0. 뒤로가기
음료 선택:

오리지널 티 OriginalTMenu.kt

[ OriginalT MENU ]
1. 블랙티              |  4000 원 |
2. 자스민 그린티         |  4000 원 |
3. 얼그레이 티          |  4000 원 |
4. 우롱티              |  5100 원 |
0. 뒤로가기
음료 선택:

밀크티 MilkTMenu.kt

[ MilkT MENU ]
1. 블랙밀크티            |4500 원|
2. 타로밀크티            |4500 원|
3. 얼그레이 밀크티         |4500 원|
4. 제주그린 밀크티         |4500 원|
5. 초콜릿 밀크티          |4500 원|
6. 피스타치오 밀크티       |4900 원|
0. 뒤로가기
음료 선택:

쥬얼리 JewerlyMenu.kt

[ Jewelry MENU ]
1. 딸기쥬얼리 밀크티       |3500 원|
2. 브라슈가쥬얼리 밀크티    |5500 원|
0. 뒤로가기
음료 선택:

커피 CoffeMenu.kt

[ Coffee MENU ]
1. 아메리카노            |3700 원|
2. 카페라떼              |4200 원|
3. 카라멜라떼            |4500 원|
4. 바닐라라떼            |4500 원|
0. 뒤로가기
음료 선택:

3) 공통 옵션

공통옵션 TeaOption.kt

메뉴 선택 후 공통적으로 보여지는 추가옵션 이다.

음료를 선택했을 때 결정해야 할 온도, 얼음량, 당도 등을 설정할 수 있는 클래스 이다.

이후, 선택한 옵션들을 getOption메소드에 반환하고 주문 목록에서 출력한다.

  • 공통옵션의경우 기본으로 (ICE/regular/50)이 추천되도록 구현
현재옵션:ICE/50%/regular
옵션을 변경하려면 번호를 입력하세요.
1. ICE/HOT 설정
2. 당도 설정
3. 얼음량 설정
4. 토핑 추가
0. 뒤로가기
옵션 선택:
ICE/HOT
음료 온도를 설정해 주세요.
1. HOT
2. ICE
옵션 선택: 2
옵션이 변경되었습니다. 현재 옵션: ICE
당도
당도를 설정해 주세요.
1. 0%
2. 30%
3. 50%
4. 70%
5. 100%
옵션 선택: 5
당도가 변경되었습니다. 현재 당도: 100%
얼음량
얼음 옵션을 설정해 주세요.
1. less
2. regular
3. full
옵션 선택: 1
얼음 옵션이 변경되었습니다. 현재 옵션: less

4) 추가토핑

ToppingOption.kt

음료에 추가할 수 있는 토핑 메뉴를 보여주고, 선택할 수 있게 해주는 클래스이다.

KioskMain 클래스에서 List형식으로 저장하였다.

추가된 토핑: 펄 
1. 펄     | 500원
2. 화이트펄 | 500원
3. 알로에  | 500원
4. 코코넛  | 500원
5. 밀크폼  | 700원
6. 치즈폼  | 700원
0. 뒤로가기 
토핑 선택 : 
  • 토핑은 최대 3개까지 추가되도록 구현

  • 추가된 토핑이 상단에 보여지도록 구현


5) 장바구니

Order.kt

" 아메리카노 "이(가) 장바구니에 추가 되었습니다.
선택한 옵션: ICE/50%/regular
선택한 토핑: 펄, 밀크폼
총 가격: 4900원
  • 음료 선택시 선택한 옵션과 토핑, 총 가격이 나오도록 구현
[ | 장바구니 | ]
아메리카노         | 4900원 | 선택한 옵션: ICE/50%/regular | 선택한 토핑: 펄, 밀크폼
피스타치오 밀크티    | 5400원 | 선택한 옵션: ICE/100%/less   | 선택한 토핑: 펄

결제금액 :10300원
1. 주문
2. 메뉴추가
주문하려면 1번 다른 메뉴를 보고 싶으면 2번을 눌러주세요: 

---------------------------------------

장바구니가 비어있습니다.
=====메뉴를 골라주세요=====
  • 주문을 리스트로 저장한뒤 메뉴들과 ,총 가격,상세 옵션들을 보여줌
  • 장바구니가 비어있으면 if문으로 비어있다고 출력, 리스트에 담긴 음료,가격, 옵션을 출력해줌
  • 1번 주문 버튼을누르면 결제부분과 연결되도록 구현
  • 2번을 누르면 메뉴 선택화면으로 돌아가도록 구현
  • 주문이 완료되면 장바구니를 초기화 하도록 구현

6) 결제

Payment.kt

"총 결제 금액"
=========
 10300원
1. 카드
2. 쿠폰
3. 현금 
그 외 뒤로 가기
결제 수단을 선택해주세요: 
  • 결제 수단을 3개 선택할 수 있도록 구현
현재는 점검시간이라, 결제를 할 수 없는 시간대입니다. 
24:00부터 24:30까지 결제가 불가능합니다.
  • 특정시간 결제 블락 처리
카드
카드 투입구에 카드를 넣어주세요.
영수증을 발급하시겠습니까? 
1.예 
2.아니오
그 외 뒤로 가기

---------------------------------------

"=====영수증====="
피스타치오 밀크티    | 4900원 | 선택한 옵션: ICE/100%/less
결제 수단: 카드
결제금액 : 10300
1. 매장 
2. 포장 
3. 그 외 뒤로가기

---------------------------------------

매장 결제 대기 번호표: 100
현재 대기 인원 수 0
"주문이 완료되었습니다."
"결제가 완료되었습니다."
결제 완료 시간: 2023-07-28 10:29:12
현금
현금 영수증을 발급하시겠습니까? 
1. 예
2. 아니오 
그 외 뒤로 가기

---------------------------------------

1. 개인
2. 사업자
그 외 뒤로가기

---------------------------------------

핸드폰번호를 입력해주세요.
0 하나만 누르면 뒤로 돌아갑니다.

---------------------------------------

해당 번호로 현금영수증 하겠습니다.
영수증을 발급하시겠습니까? 
1.예 
2.아니오
그 외 뒤로 가기
영수증
"=====영수증====="
피스타치오 밀크티    | 4900원 | 선택한 옵션: ICE/100%/less
결제 수단: 카드
결제금액 : 10300
1. 매장 
2. 포장 
3. 그 외 뒤로가기
쿠폰
쿠폰 번호를 8자리를 입력해주세요(취소하려면 1번을 눌려주세요):
---------------------------------------

쿠폰이 등록되었습니다.
영수증을 발급하시겠습니까? 
1.예 
2.아니오
그 외 뒤로 가기

---------------------------------------

"=====영수증====="
브라슈가쥬얼리 밀크티 | 5500원 | 선택한 옵션: ICE/100%/full
결제 수단: 쿠폰
쿠폰 번호: 12345678
결제금액 : 7400
1. 매장 
2. 포장 
3. 그 외 뒤로가기

---------------------------------------

매장 결제 대기 번호표: 102
현재 대기 인원 수 2
"주문이 완료되었습니다."
"결제가 완료되었습니다."
결제 완료 시간: 2023-07-28 10:33:45

7) 대기자 수

Waiting.kt

매장 결제 대기 번호표: 100
현재 대기 인원 수 0
"주문이 완료되었습니다."
"결제가 완료되었습니다."
결제 완료 시간: 2023-07-28 10:29:12

---------------------------------------

포장 결제 대기 번호표: 201
현재 대기 인원 수 1
"주문이 완료되었습니다."
"결제가 완료되었습니다."
결제 완료 시간: 2023-07-28 10:30:51
  • 매장,포장 record 기능
  • 지불 정보와 주문번호표를 저장하는 기능을 제공

© 2023. All rights reserved.

AgileCatch