이번 3주차에는 키오스크 기능
을 간단하게 구현하는 팀 프로젝트를 진행했습니다.
컨셉은 대전의 자랑 성심당
을 선택했습니다.
- 대략적인 진행
- 키오스크 실행
- 메뉴판 출력
- 메뉴 선택 시 상세 상품 목록 출력
- 상품를 고르면 장바구니에 추가
- 결제 선택 시 장바구니 목록과 보유 잔액 출력
저는 class Menu
와 class WaitCount
를 맡았습니다. (자세한 사항은 팀 노션으로)
import java.text.DecimalFormat
open class Menu {
val dec = DecimalFormat("#,###")
val breadArray = arrayOf( // 빵 상세 품목
arrayOf("튀소패밀리", dec.format(10800)),
arrayOf("파이만주세트", dec.format(9600)),
arrayOf("오키도키슈", dec.format(3500)),
arrayOf("오키도키슈세트", dec.format(14000)),
arrayOf("김과장세트", dec.format(40000))
)
val snacksArray = arrayOf( // 전통 과자 상세 품목
arrayOf("대전부르스약과", dec.format(1200)),
arrayOf("쑥떡앙빵", dec.format(1800)),
arrayOf("파래미니전병", dec.format(3500)),
arrayOf("땅콩미니전병", dec.format(1000)),
arrayOf("대전부르스만주 1호", dec.format(17000))
)
val cakeArray = arrayOf( // 케이크 상세 품목
arrayOf("축복 4호", dec.format(41000)),
arrayOf("키리쉬모짜르트", dec.format(35000)),
arrayOf("티라미수 1호", dec.format(30000)),
arrayOf("딸기요거트", dec.format(30000)),
arrayOf("클래식치즈케이크", dec.format(30000))
)
val rollsAndPoundArray = arrayOf( // 롤파운드 상세 품목
arrayOf("순수마들렌 1호", dec.format(5000)),
arrayOf("제로쿠키세트", dec.format(25000)),
arrayOf("대흥동 종소리", dec.format(30000)),
arrayOf("성심갸또컬렉션 2호", dec.format(39000)),
arrayOf("마들파운드 2호", dec.format(30000))
)
open fun add(orderList: MutableSet<String>) {
// 장바구니에 추가
}
}
import java.util.Timer
import java.util.TimerTask
import kotlin.random.Random
class WaitCount {
fun waitCount() {
// 1부터 20까지 무작위 대기자
var waitCount = Random.nextInt(1, 21)
// 타이머 객체 선언
val timer = Timer()
// 타이머 동작 시간 지정 및 작업 내용 지정
timer.schedule(object : TimerTask() {
override fun run() {
// 최초 대기자 수 출력
println("이와 같이 주문 하시겠습니까? (현재 주문 대기수: ${waitCount})")
// 1부터 3까지 무작위 픽업
val pickupCount = Random.nextInt(1, 4)
// 대기자 수 감소
if (waitCount > pickupCount) {
waitCount -= pickupCount
} else {
waitCount--
}
// 대기자가 0명이 되면 타이머 종료
if (waitCount <= 0) {
println("[현재 주문 대기자가 없습니다!]")
timer.cancel()
}
}
}, 0, 5000) // 즉시 실행, 5초 마다 반복
}
}
23/07/28 추가
이름 | 역할 | MBTI | BLOG |
---|---|---|---|
추민수 | 팀장 | ENFJ | 바로가기! |
김민준 | 팀원 | ENTP | 바로가기! |
신민지 | 팀원 | ISFP | 바로가기! |
손현준 | 팀원 | INTP | 바로가기! |
이혜명 | 팀원 | INFP & ENTP | 바로가기! |
주제 : 키오스크 프로그래밍
프로젝트명 : 🥐 대전의 자랑 🥐
프로젝트 소개 : 대전의 자랑 ‘성심당’의 키오스크 구현하기
Main.kt
실행 시 Balance
, Datetime
Class를 불러와 현재시간 및 현재 잔액 표시Datetime
: 현재 실시간 정보를 받아와 은행점검 이외의 시간에만 결제가 가능하도록 구현한 클래스Balance
: 랜덤함수를 통해 처음 실행 시 20 ~ 30 만원 사이의 값을 랜덤으로 받아와 저장하도록 구현한 클래스orderList
에 항목 추가됨Order
클래스 호출Order
class 내부에서 장바구니(orderList
) 를 불러와 항목 출력 후 총 가격 표시WaitCount
클래스르 호출해 현재 대기자 수를 랜덤으로 불러오고 5초마다 한번씩 랜덤으로 대기자가 줄어들게 구현