[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 기능
- 지불 정보와 주문번호표를 저장하는 기능을 제공