728x90
반응형
편의점 재고관리 프로그램
요구사항
1) 재고관리는 딕셔너리로 한다. 상품명이 product, 개수가 quantity이고, 초기값은 '삼각김밥' 10개, '커피우유' 10개로 한다.
2) 설명 : 메뉴 기반의 텍스트 사용자 인터페이스 제공
3) 사례 : 편의점 재고관리 프로그램의 메뉴는 "1.재고등록, 2.제품 판매, 3.재고 조회 4.프로그램 종료" 이다. 이 메뉴는 프로그램을 종료할 때까지 무한 반복 출력된다.
4) 2를 선택하면 함수 호출하여 실행한다. 제품판매 함수 호출되어 실행한다. 상품명과 개수 입력을 받는다. 있는 상품이면 기존 개수에서 빼고 남은 개수를 안내한다(~개 남았습니다). 재고보다 판매수량이 많으면 "재고가 부족합니다"출력한다. 제품목록에 없는 상품이면 "찾으시는 제품이 없습니다"출력한다. 엔터키를 입력할 때까지 계속 반복해서 실행한다.
5) 3을 선택하면 재고 조회함수를 호출하여 실행한다. 상품명을 입력 받아서 개수를 출력한다. 제품목록에 없는 상품명이면 "등록되지 않은 상품입니다"출력한다. 엔터키를 입력할 때까지 계속 반복해서 실행한다.
6) 4를 입력하면 프로그램 종료한다.
예외 처리
1) 설명 : 파일 입출력 및 잘못된 입력에 대한 예외 처리
2) 사례 : 파일이 없을 경우, 잘못된 수량 입력
3) 핵심 : 안정적인 프로그램 동작 보장
class ConvenienceStore:
def __init__(self):
self.goods = {'삼각김밥' : 10, '커피우유' : 10}
def add_product(self, product, quantity):
self.goods[product] = quantity
def sell_product(self, product, quantity):
if product in self.goods and self.goods[product] >= quantity:
self.goods[product] -= quantity
print(f"{product}의 남은 재고수량 : {self.goods[product]}")
def check_inventory(self):
print("================== 재고 현황 ====================")
for product, quantity in self.goods.items():
print(f"{product} : {quantity}")
print("=================================================")
convenience_store = ConvenienceStore()
while True:
print("============ 편의점 재고관리 프로그램 ===========\n1.상품등록 2.제품판매 3.재고조회 4.프로그램 종료\n=================================================")
choice = int(input("메뉴를 선택하세요 : "))
if choice == 1:
product = input("추가하실 상품을 등록해주세요 : ")
quantity = int(input(f"{product}의 수량을 입력해주세요 : "))
convenience_store.add_product(product, quantity)
convenience_store.check_inventory()
elif choice == 2:
convenience_store.check_inventory()
product = input("판매할 상품을 등록해주세요 : ")
if product in convenience_store.goods:
quantity = int(input(f"{product}의 판매수량을 입력해주세요 : "))
convenience_store.sell_product(product, quantity)
else:
print("해당 상품이 존재하지 않습니다.")
elif choice == 3:
convenience_store.check_inventory()
elif choice == 4:
print("프로그램을 종료합니다.")
break
728x90
반응형
'파이썬' 카테고리의 다른 글
파이썬(지역별소득통계프로그램)-2024-06-20 (0) | 2024.06.20 |
---|---|
파이썬(Turtle_Game)-2024-06-12 (0) | 2024.06.13 |
파이썬(섭씨 화씨 변환 프로그램)_2024-06-11 (2) | 2024.06.11 |
파이썬(은행입출금 프로그램)_2024-06-10 (2) | 2024.06.10 |
파이썬(메모장 프로그램)_2024-06-10 (2) | 2024.06.10 |