본문 바로가기
PYTHON

python. 편의점 재고관리 / 재고등록 / 재고판매 / 재고조회 프로그램 만들기 프로젝트

by yunzzang-c 2024. 6. 12.
반응형
amount = {
    '삼각김밥' : 10,
    '커피우유' : 10
}

def get_input(a):
    user_input = input(a)
    if user_input == '0':
        print('프로그램을 종료합니다.')
        main()
    return user_input

def add():
    addstuff = get_input('등록할 제품명을 입력해주세요: ')
    if addstuff in amount:
        i = int(get_input('등록할 갯수를 입력해주세요: '))
        amount[addstuff] += i
        print(amount)
    else:
        newstuff = get_input('새로 등록할 제품명을 입력하세요: ')
        newadd = int(get_input('새로 등록할 제품 갯수 입력하세요: '))
        amount.update({newstuff: newadd})
        print(amount)
       
def sell():
    sellstuff = get_input('구매할 제품명을 입력해주세요: ')
    if sellstuff in amount:
        sellnum = int(get_input('구매할 갯수를 입력해주세요: '))
        if amount[sellstuff] >= sellnum:
            amount[sellstuff] = amount[sellstuff] - sellnum
            print(f'{sellstuff} {amount[sellstuff]}개 남았습니다.')
        elif amount[sellstuff] < sellnum:
            print('재고가 부족합니다.')
    else:
        print('찾으시는 제품이 없습니다.')
       
def show_amount():
   
    info = get_input('조회할 제품명 입력: ')
   
    if info in amount:
        print(f'제품명:{info}, 갯수:{amount[info]}')
    else:
        print('등록되지 않은 상품입니다.')
       

def menu():
    print('+++ 재고관리 프로그램 +++')
    print('1. 재고등록:')
    print('2. 제품판매:')
    print('3. 재고조회:')
    print('4. 프로그램 종료:')

def main():
    while True:
        menu()
       
        choice = get_input('메뉴를 선택하세요: ')
       
        if choice == '1':
            add()
        elif choice == '2':
            sell()
        elif choice == '3':
            show_amount()
        elif choice == '4':
            print('프로그램을 종료합니다.')
            break
        else:
            print('정상적인 접근 경로가 아닙니다.')
       
main()

 

어떤 choice 실행 중 input 중에도 "0"을 입력하면 프로그램 종료가 출력되며 main()으로 다시 돌아가게끔 

 

def get_input(a):
    user_input = input(a)
    if user_input == '0':
        print('프로그램을 종료합니다.')
        main()
    return user_input

 

get_input 로 정의해서 모든 define input을 get_input으로 받도록 했다.

import sys / sys.exit() 코드도 있다는데 활용방법을 모르겠다.

이 코드의 출력결과는 다음과 같다.

 

+++ 재고관리 프로그램 +++
1. 재고등록:       
2. 제품판매:       
3. 재고조회:       
4. 프로그램 종료:  
메뉴를 선택하세요: 1
등록할 제품명을 입력해주세요: 바나나우유
새로 등록할 제품명을 입력하세요: 바나나우유
새로 등록할 제품 갯수 입력하세요: 30
{'삼각김밥': 10, '커피우유': 10, '바나나우유': 30}
+++ 재고관리 프로그램 +++
1. 재고등록:
2. 제품판매:
3. 재고조회:
4. 프로그램 종료:
메뉴를 선택하세요: 1
등록할 제품명을 입력해주세요: 딸기우유
새로 등록할 제품명을 입력하세요: 딸기우유
새로 등록할 제품 갯수 입력하세요: 25
{'삼각김밥': 10, '커피우유': 10, '바나나우유': 30, '딸기우유': 25}
+++ 재고관리 프로그램 +++
1. 재고등록:
2. 제품판매:
3. 재고조회:
4. 프로그램 종료:
메뉴를 선택하세요: 2
구매할 제품명을 입력해주세요: 0

# 여기서 "0" 입력하니 프로그램 종료됨


프로그램을 종료합니다.
+++ 재고관리 프로그램 +++
1. 재고등록:
2. 제품판매:
3. 재고조회:
4. 프로그램 종료:
메뉴를 선택하세요: 2
구매할 제품명을 입력해주세요: 딸기우유
구매할 갯수를 입력해주세요: 10
딸기우유 15개 남았습니다.

# 하지만 여기서 보면 딸기우유 재고가 그대로인게 확인되며, 저장된 정보로 완전 종료가아닌 main()으로 돌아온것을 볼수있다.

+++ 재고관리 프로그램 +++
1. 재고등록:
2. 제품판매:
3. 재고조회:
4. 프로그램 종료:
메뉴를 선택하세요: 3
조회할 제품명 입력: 딸기우유
제품명:딸기우유, 갯수:15
+++ 재고관리 프로그램 +++
1. 재고등록:
2. 제품판매:
3. 재고조회:
4. 프로그램 종료:
메뉴를 선택하세요: 1
등록할 제품명을 입력해주세요: 삼각김밥
등록할 갯수를 입력해주세요: 1
{'삼각김밥': 11, '커피우유': 10, '바나나우유': 30, '딸기우유': 15}
+++ 재고관리 프로그램 +++
1. 재고등록:
2. 제품판매:
3. 재고조회:
4. 프로그램 종료:
메뉴를 선택하세요:

반응형