def coffee_kiosk():
import pandas as pd
print('='*16,' CAFE ','='*16)
print('1번:아메리카노:1500원 \n2번:카페라떼:2500원 \n3번:카페모카:3500원 \n4번:녹차라떼:3500원 \n\n9번:결산(관리자용)')
print('='*40)
c_type = ['아메리카노','카페라떼','카페모카','녹차라떼']
c_stock = [20,10,30,20] # [0]: 아메리카노 재고, [1] : 카페라떼 재고, [2] : 카페모카 재고, [3] : 녹차라떼 재고
c_price = [1500,2500,3500,3500] # [0]: 아메리카노 가격, [1] : 카페라떼 가격, [2] : 카페모카 가격, [3] : 녹차라떼 가격
coupon = 0
order_no = 1
cafe_dict = {}
cafe_dict['주문번호'] = []
cafe_dict['주문시간'] =[]
cafe_dict['커피종류'] = []
cafe_dict['수량'] = []
cafe_dict['가격'] = []
while True:
# 전체 품절
if c_stock[0] == 0 and c_stock[1] == 0 and c_stock[2] == 0 and c_stock[3] == 0:
print('\n\n\n모든 커피가 품절입니다.')
print('='*40,'\n')
break
num = int(input('\n%d번손님,주문하시겠습니까? \n메뉴를 골라주세요. 번호를 눌러주세요.'%order_no))
# 주문
if num < 5:
print('%s를 선택하셨습니다.'%c_type[num-1])
if c_stock[num-1] == 0:
print('\n%s : 품절'%c_type[num-1])
print('\n다시 입력해주세요~')
continue
cup = int(input('몇 잔 주문하시겠습니까? '))
if cup > c_stock[num-1]:
print('\n죄송합니다. 주문량에 비해 %s가 부족합니다.'%c_type[num-1])
print('현재 주문 가능한 수량은 %d잔 입니다.' %c_stock[num-1], '다시 입력해주세요.')
cup = int(input('몇 잔 주문하시겠습니까? '))
price = c_price[num-1] * cup
print('\n결제하실 금액은 %d원 입니다.'%price)
# 쿠폰x, 정상결제 시
if coupon < 20:
money = int(input('돈을 입력하시오~ '))
if c_stock[num-1] >= cup and money >= price:
print('\n[주문번호 %d]'%order_no)
print('%s가 나왔습니다. 거스름돈은 '%c_type[num-1],money - price,'원 입니다.')
print('쿠폰이 %d개 발급되었습니다.(20개 모으면 한잔 무료)'%cup)
c_stock[num-1] -= cup
coupon += cup
print('현재 보유한 쿠폰 : %d개 '%coupon)
print('='*40,'\n')
from datetime import datetime
now = str(datetime.now())
cafe_dict['주문번호'].append(order_no)
cafe_dict['주문시간'].append(now)
cafe_dict['커피종류'].append(c_type[num-1])
cafe_dict['수량'].append(cup)
cafe_dict['가격'].append(price)
order_no += 1
elif c_stock[num-1] >= cup and money < price:
print('금액이 부족합니다. 돈을 반환합니다.')
print('='*40,'\n')
continue
#쿠폰 20개 이상
elif coupon >= 20:
question1 = int(input('쿠폰을 사용하시겠습니까?(1일 1회 1잔만 가능) \n예 : 1번\n아니오 : 2번 '))
# 쿠폰사용
if question1 == 1:
print('\n쿠폰 20개가 차감됩니다.')
coupon -= 20
if cup == 1:
price -= price
print('\n[주문번호 %d]'%order_no)
print('%s가 나왔습니다. 쿠폰은 발급되지 않습니다.'%c_type[num-1])
print('현재 보유한 쿠폰 : %d개 '%coupon)
print('='*40,'\n')
else:
price -= c_price[num-1]
money2 = int(input('결제할 차액은 %s 원 입니다. 돈을 입력하세요~ '%price))
if money2 >= price:
print('\n[주문번호 %d]'%order_no)
print('%s가 나왔습니다. 거스름돈은 %s원 입니다. 쿠폰은 발급되지 않습니다.'%(c_type[num-1],money2 - price))
print('현재 보유한 쿠폰 : %d개 '%coupon)
print('='*40,'\n')
elif money2 < price:
print('금액이 부족합니다. 돈을 반환합니다.')
print('='*40,'\n')
continue
from datetime import datetime
now = str(datetime.now())
cafe_dict['주문번호'].append(order_no)
cafe_dict['주문시간'].append(now)
cafe_dict['커피종류'].append(c_type[num-1])
cafe_dict['수량'].append(cup)
cafe_dict['가격'].append(price)
order_no += 1
#쿠폰 사용 안함
elif question1 == 2:
print('\n쿠폰을 사용하지 않습니다')
money = int(input('돈을 입력하시오~ '))
if c_stock[num-1] >= cup and money >= price:
print('\n[주문번호 %d]'%order_no)
print('%s가 나왔습니다. 거스름돈은 '%c_type[num-1],money - price,'원 입니다.')
print('쿠폰이 %d개 발급되었습니다.(20개 모으면 한잔 무료)'%cup)
c_stock[num-1] -= cup
coupon += cup
print('현재 보유한 쿠폰 : %d개 '%coupon)
print('='*40,'\n')
from datetime import datetime
now = str(datetime.now())
cafe_dict['주문번호'].append(order_no)
cafe_dict['주문시간'].append(now)
cafe_dict['커피종류'].append(c_type[num-1])
cafe_dict['수량'].append(cup)
cafe_dict['가격'].append(price)
order_no += 1
elif c_stock[num-1] >= cup and money < price:
print('금액이 부족합니다. 돈을 반환합니다.')
print('='*40,'\n')
continue
else:
print('번호를 잘못 입력했습니다. 처음 화면으로 돌아갑니다.')
# 결산(관리자용)
elif num == 9:
print('\n\n------- 관리자 모드로 실행됩니다 -------')
password = int(input('비밀번호를 입력하세요~ '))
if password == 1234:
print('\n\t정산 내역을 출력합니다')
break
else:
print('비밀번호가 틀렸습니다. 처음 화면으로 돌아갑니다.')
continue
# 메뉴 없음
else:
print('메뉴가 없습니다. 처음 화면으로 돌아갑니다.')
print('='*40,'\n')
continue
cafe = pd.DataFrame(cafe_dict)
cafe.to_csv("c:\\data\\coffee_report_"+now[:10]+'일_'+now[11:13]+'시_'+now[14:16]+'분_'+now[17:19]+'초'+".csv",encoding = "ANSI")
print('\n 오늘 지금까지 총 수익은 ',cafe['가격'].sum(),'원 입니다.')
return cafe
반응형
'Study > class note' 카테고리의 다른 글
pyhon / 모듈 (0) | 2021.12.15 |
---|---|
python / 함수(지역변수, 전역변수, return값) (0) | 2021.12.15 |
python / 함수 (0) | 2021.12.15 |
python / 튜플형 , 사전형 자료 이해하기 (0) | 2021.12.14 |
python / 리스트 이해하기 (0) | 2021.12.13 |