본문 바로가기

카테고리 없음

카페에서 쓰는 키오스크 프로그램 만들어보기

import random  #추천기능 넣기 위함
# 메뉴와 가격을 저장할 딕셔너리 
menu = {}

# 재고 딕셔너리
stock = {
    "에스프레소": 10,
    "아메리카노": 15,
    "카페라떼": 8,
    "카푸치노": 12
}

# 매출 정보를 저장할 변수
daily_sales = 0

# 메뉴를 추가하는 함수
def add_menu(item, price):
    menu[item] = price

# 메뉴를 삭제하는 함수
def delete_menu(item):
    if item in menu:
        del menu[item]
        print(f"{item} 메뉴가 삭제되었습니다.")
    else:
        print(f"{item} 메뉴는 메뉴 목록에 없습니다.")

# 주문을 받는 함수
def take_order():
    global daily_sales  # 전역 변수로 선언

    print(f"주문 가능한 메뉴: \n{menu}")
    print(f"재고정보: \n{stock}")
    order = input("무엇을 주문하시겠습니까? (종료: '끝') \n 메뉴 추천을 원하시면 '추천' 입력: ")
    if order == '추천':
        recommend_menu()

    order_list = []
    total_pay = 0

    while order != "끝":
        if order in menu:
            try:
                quantity = int(input(f"{order} 몇 잔을 주문하시겠습니까? "))
                if quantity <= 0:
                    print("잘못된 주문 수량입니다. 1 이상의 정수를 입력하세요.")
                    continue
            except ValueError:
                print("잘못된 입력입니다. 숫자를 입력하세요.")
                continue

            if stock[order] >= quantity:  # 재고 확인
                order_list.append((order, quantity))
                total_pay += menu[order] * quantity
                stock[order] -= quantity  # 주문한 만큼 재고 감소
                daily_sales += menu[order] * quantity  # 매출 업데이트
            else:
                print(f"{order}의 재고가 부족합니다. 현재 재고: {stock[order]}")
        elif order == '추천':
            pass
        else:
            print("존재하지 않는 메뉴입니다.")

        order = input("추가 주문하시겠습니까? (종료: '끝') ")
        if order == "추천":  #추가 주문 질문에서도 추천 가능.
            recommend_menu()
        else:
            pass
    
    print("주문 내역:")
    for item, quantity in order_list:
        print(f"{item} {quantity}잔")

    print(f"총 결제금액: {total_pay}원")
    print("감사합니다 또 오세요")

# 메뉴 추천 함수
def recommend_menu():
    available_menus = [menu_item for menu_item in stock if stock[menu_item] > 0]
    if available_menus:
        recommended_menu = random.choice(available_menus)
        print(f"추천 메뉴: {recommended_menu}")
    else:
        print("현재 재고로는 추천할 수 있는 메뉴가 없습니다.")

# 매출 확인 함수
def confirm_sales():
    print(f"오늘의 매출: {daily_sales}원")

#가장 먼저 실행되도록 if문 추가

if __name__ == "__main__":
    # 테스트용 메뉴 추가
    add_menu("에스프레소", 4000)
    add_menu("아메리카노", 4100)
    add_menu("카페라떼", 4800)
    add_menu("카푸치노", 4700)

    # 주문받을 때, 실행
    take_order()

    # 매출 확인
    confirm_sales()

 

colab에서 했습니다.