상세 컨텐츠

본문 제목

23일차 학습 Python 종강 프로젝트

풀스텍과정

by 정태웅 2024. 6. 12. 09:24

본문

판매점 재고관리 프로그램


def main():
  while True:
    print("===== 편의점 재고 관리 프로그램 =====")
    print("1: 재품_등록")
    print("2: 재품_판매")
    print("3: 재품_조회")
    print("0: 프로그램_종료")
    choice = int(input("메뉴를 선택하세요: "))
   
    if  choice == 1:
        inventory.Inventory_Management_add()
       
    elif choice == 2:
        inventory.Inventory_Management_sub()
       
    elif choice == 3:
        inventory.Inventory_Management_info()                
       
    elif choice == 0:
        print("제고 관리 프로그램을 종료합니다.")
        break
    else:
        print("잘 못 선택하셨습니다.")
       
class Inventory_Management:

  def Inventory_Management_info():
    while True:  
      item = input("조회할 제품명을 입력하세요(a:전체): ")        
      if item == "":
        break
     
      if item.lower() != "a" and item not in inventory_Dict:
         print(f"조회할 상품 {item}가(이) 존재하지 않습니다.")
         
      for name, info in inventory_Dict.items():
          if item.lower() == "a":
            print(f"상품명: {name}, 수량: {info["수량"]}개, 단가: {info["단가"]}원, 판매금액: {info["판매금액"]}원")
          else:
            if item == name:  
              print(f"상품명: {name}, 수량: {info["수량"]}개, 단가: {info["단가"]}원, 판매금액: {info["판매금액"]}원")
              break
           
  def Inventory_Management_add():
    while True:
      print("================== 재고 현황 ====================")
      for name, info in inventory_Dict.items():
          print(f"상품명: {name}, 수량: {info["수량"]}개, 단가: {info["단가"]}원, 판매금액: {info["판매금액"]}원")
      print("=================================================")
           
      item = input("등록할 상품명을 입력하세요: ")  
      if item == "":
        break

      storeCnt = int(input("등록할 상품의 수량을 입력하세요: "))
      if item in inventory_Dict:
        inventoryCnt = inventory_Dict[item]["수량"]
        unitPricer = inventory_Dict[item]["단가"]
        salePrice = inventory_Dict[item]["판매금액"]
        inventoryCnt += storeCnt
        inventory_Dict[item] = {"수량":inventoryCnt,"단가":unitPricer,"판매금액":salePrice}      
        print(f"정상적으로 상품: {item} {storeCnt}개가  추가되었습니다. ")    
      else:
        unitPricer = int(input("등록할 상품의 단가를 입력하세요: "))
        salePrice = 0
        inventoryCnt = storeCnt
        inventory_Dict[item] = {"수량":inventoryCnt,"단가":unitPricer,"판매금액":salePrice}      
        print(f"정상적으로 상품: {item} {storeCnt}개가  등록되었습니다. ")    
 
  def Inventory_Management_sub():
    while True:  
      print("================== 재고 현황 ====================")
      for name, info in inventory_Dict.items():
          print(f"상품명: {name}, 수량: {info["수량"]}개, 단가: {info["단가"]}원, 판매금액: {info["판매금액"]}원")
      print("=================================================")
     
      item = input("판매할 상품명을 입력하세요: ")      

      if item == "":
        break
     
      if item in inventory_Dict:
        inventoryCnt = inventory_Dict[item]["수량"]
        unitPricer = inventory_Dict[item]["단가"]
        salePrice = inventory_Dict[item]["판매금액"]
        releaseCnt = int(input("판매할 제품의 수량을 입력하세요: "))
        if releaseCnt > inventoryCnt:
          print(f"판매상품 : {item}에 보유한 수량{(inventoryCnt)}보다 판매수량{(releaseCnt)} 보다 클수는 없습니다.")    
        else:
          inventoryCnt -= releaseCnt
          salePrice = (releaseCnt * unitPricer) + salePrice
          inventory_Dict[item] = {"수량":inventoryCnt,"단가":unitPricer,"판매금액":salePrice}      
          print(f"판매상품 : 정상적으로 판매되어 {item}이(가) {inventoryCnt}개 남았습니다. ")    
      else:
        print(f"판매할 상품 {item}이(가) 존재하지 않습니다.")

##### 초기값 딕셔너리 선언 #####
inventory_Dict = {"삼각김밥":{"수량":10, "단가":700, "판매금액":0},
                  "커피우유":{"수량":10, "단가":800, "판매금액":0}}

##### Inventory_Management class 호출 #####
inventory = Inventory_Management

##### 메인 함수 호출 #####
main()

거북이 대포 게임

import turtle as t
import random

def turn_up():
  t.left(2)

def turn_down():
  t.right(2)  
 
def fire():
  ang = t.heading()
  while t.ycor() > 0:
    t.forward(15)
    t.right(5)
   
  d = t.distance(target, 0)
  t.sety(random.randint(10, 100))

  if d < 25:
    t.color("blue")
    t.write("Good!", False, "center", ("", 15))
    move_target()  #추가
  else:
    t.color("red")
    t.write("Bad!", False, "center", ("", 15))      


  t.color("black")  
  t.goto(-200, 10)
  t.setheading(ang)

def move_target():
  global target     #추가
  t.clear()         #추가 화면지우기
  t.pensize(3)
  t.color("green")
 
  t.goto(-300, 0)
  t.down()
  t.goto(300, 0)

# 목표 지점을 설정하고 그립니다.
  target = random.randint(50, 150)    # 목표 지점을 50~150 사이에서 임의의 수로 지정합니다.
  t.pensize(3)
  t.color("green")
  t.up()
  t.goto(target - 25, 2)
  t.down()
  t.goto(target + 25, 2)

# 거북이 색상을 검은색으로 지정하고 처음 발사했던 곳으로 되돌립니다.
  t.color("black")
  t.up()
  t.goto(-200, 10)
  t.setheading(20)

move_target()   #초기값 설정

t.onkeypress(turn_up, "Up")
t.onkeypress(turn_down, "Down")
t.onkeypress(fire, "space")
t.listen()

t.exitonclick()

관련글 더보기