언어 자료구조 알고리즘/프로그래밍 실습
[python] 상속 실습 - 상품과 할인 상품
언제나휴일
2020. 10. 30. 11:19
반응형
주석으로 작성한 시나리오에 맞게 상품과 할인 상품 클래스를 정의하시오.
Product.py
#Product.py
#상품
# 상품명, 제조사,가격, 보유 개수, 판매량
# 생성할 때 상품명과 제조사, 가격을 입력받는다.
# 입고 기능에서는 입고 개수를 입력 인자로 받는다.
# 판매 기능에서는 출고 개수를 입력 인자로 받는다.
# 현황 보기에서는 상품명, 제조사, 가격, 보유 개수, 판매량, 판매 총액을 출력한다.
SaleProduct.py
#SaleProduct.py
#할인 상품:상품에서 파생
# 할인률(생성 시 전달)을 멤버로 갖는다.
# 할인현황보기를 제공한다.
# - 상품의 현황보기 외에 할인률을 고려하여 출력한다.
Main.py
from SaleProduct import SaleProduct
from Product import Product
sp = SaleProduct("롤TV","모르지",1000000000,0.2)
sp.ViewState()
sp.SaleViewState()
sp.InProduct(10)
sp.OutProduct(3)
sp.ViewState()
sp.SaleViewState()
sp.OutProduct(10)
sp.ViewState()
sp.SaleViewState()
sp.InProduct(5)
sp.OutProduct(2)
sp.ViewState()
sp.SaleViewState()
p = Product("롤TV","모르지",1000000000)
p.ViewState()
p.InProduct(10)
p.OutProduct(3)
p.ViewState()
p.OutProduct(10)
p.ViewState()
p.InProduct(5)
p.OutProduct(2)
p.ViewState()
실습 예
Product.py
#Product.py
#상품
# 상품명, 제조사,가격, 보유 개수, 판매량
# 생성할 때 상품명과 제조사, 가격을 입력받는다.
# 입고 기능에서는 입고 개수를 입력 인자로 받는다.
# 판매 기능에서는 출고 개수를 입력 인자로 받는다.
# 현황 보기에서는 상품명, 제조사, 가격, 보유 개수, 판매량, 판매 총액을 출력한다.
class Product:
#생성자(초기화) 메서드
def __init__(self,name,company,price):
self.name = name
self.company = company
self.price = price
self.hcount = 0
self.scount = 0
def ViewState(self):
print("상품명:",self.name)
print(" 제조사:",self.company)
print(" 가격:",self.price)
print(" 보유 개수:",self.hcount)
print(" 판매량:",self.scount)
print(" 판매 총액:",self.scount*self.price)
def InProduct(self,cnt):
self.hcount += cnt
def OutProduct(self,cnt):
if(self.hcount<cnt):
cnt = self.hcount
self.hcount -=cnt
self.scount += cnt
return cnt
SaleProduct.py
#SaleProduct.py
#할인 상품:상품에서 파생
# 할인률(생성 시 전달)을 멤버로 갖는다.
# 할인현황보기를 제공한다.
# - 상품의 현황보기 외에 할인률을 고려하여 출력한다.
from Product import Product
class SaleProduct(Product):
def __init__(self,name,company,price,salep):
Product.__init__(self,name,company,price)
self.salep = salep
def SaleViewState(self):
self.ViewState()
print(" 할인율:",self.salep)
print("실제 판매 가격:",self.price*(1-self.salep))
print("실제 판매 총액:",self.price*self.scount*(1-self.salep))
Main.py
from SaleProduct import SaleProduct
from Product import Product
sp = SaleProduct("롤TV","모르지",1000000000,0.2)
sp.ViewState()
sp.SaleViewState()
sp.InProduct(10)
sp.OutProduct(3)
sp.ViewState()
sp.SaleViewState()
sp.OutProduct(10)
sp.ViewState()
sp.SaleViewState()
sp.InProduct(5)
sp.OutProduct(2)
sp.ViewState()
sp.SaleViewState()
p = Product("롤TV","모르지",1000000000)
p.ViewState()
p.InProduct(10)
p.OutProduct(3)
p.ViewState()
p.OutProduct(10)
p.ViewState()
p.InProduct(5)
p.OutProduct(2)
p.ViewState()
반응형