这是一个汽车销售的程序,有汽车、人员和销售系统三类对象。 1)汽车类,包含制造商、型号、年份、价格四个属性,这些信息一旦录入就不能轻易变更,仅能通过get方法读取(如get_make、get_model、get_year、get_price分别是获取制造商、型号、年份、价格),仅能通过set_price方法更改价格属性。 2)人员类,包含姓名、员工号、层级(‘销售员、经理’两种),派生出两个子类,销售员类和经理类。 (A)销售员类,还包含佣金比例、当月佣金总额等属性(name, ID, commission_rate, commission),还需要设置一个当月销售车辆的属性(sellList)用于存储该员工当月销售的所有汽车对象;销售员只有一个普通方法sell_car用于销售汽车对象。 (B)经理类,没有额外属性,包含普通方法input_car、set_price,input_car是经理从键盘input新的汽车信息,set_price方法是仅有经理可以修改汽车价格。 3)销售系统类,包含2个属性,分别存储所有在售汽车对象组成的数据、所有在职的销售员组成的数据;包含3个普通方法,分别是add_car、add_salesperson、sell_car分别是添加汽车、添加销售员和销售汽车;还有一个__str__魔术方法
请在Begin和End之间按要求补充代码,然后提交全部代码: """
# 定义一个汽车类
class Car:
""" 汽车类,包含制造商、型号、年份、价格四个属性"""
def __init__(self, make, model, year, price):
self.__make = make
self.__model = model
self.__year = year
self.__price = price
def get_make(self):
"""获取汽车制造商"""
return self.__make
def get_model(self):
"""获取汽车型号"""
return self.__model
def get_year(self):
"""获取汽车年份"""
return self.__year
def get_price(self):
"""获取汽车价格"""
return self.__price
def set_price(self, new_price):
"""更新汽车价格"""
self.__price = new_price
def __str__(self):
"""返回汽车的描述信息"""
return f"{self.__year} {self.__make} {self.__model} - 价格:{self.__price}元"
# 创建一个汽车销售系统,多家门店多个系统
class CarSalesSystem:
#********** Begin *********#
#请补充完成汽车销售类。
#********** End *********#
def __str__(self):#打印所有库存
outStr = ''
for cari in self.cars:
outStr += str(cari) + '\n'
return '现有库存车,如下:\n' + outStr
class Person:
#********** Begin *********#
#请补充完成Person类。
#********** End *********#
# 定义一个经理类,负责管理销售价格
class Manager(Person):
#********** Begin *********#
#请补充完成Manager类。
#********** End *********#
def input_car(self, sellSys:CarSalesSystem):
while True:
info = input().split()#空格分,输入制造商、型号、年份、价格四个属性
if not info:#空输入退出
break
info[2] = int(info[2])
info[3] = float(info[3])#万为单位
car = Car(*info)
sellSys.add_car(car)
# 定义一个销售员类
class Salesperson(Person):
#********** Begin *********#
#请补充完成Salesperson类。
#********** End *********#
print(f"{self.name}销售了一辆{car.get_make()} {car.get_model()},获得佣金{comm}元。")
if __name__ == '__main__':
store1 = CarSalesSystem()#1号店销售系统
manager1 = Manager('老王', '001', 'Manager')
seller1 = Salesperson('小张', '101', 'Seller', 0.01, store1)
seller2 = Salesperson('小明', '102', 'Seller', 0.02, store1)
manager1.input_car(store1)
print(store1)
car_index = 1
car1 = store1.cars[car_index] #选一辆车
print(car1)
manager1.set_price(car1, 100)
print(car1)
seller1.sell_car(car_index)
car_index = 2
car2 = store1.cars[car_index] #选一辆车
print(car2)
seller1.sell_car(car_index)
print('销售员{}当月佣金总共{}元。'.format(seller1.name, seller1.commission))
car_index = 0
car3 = store1.cars[car_index] #选一辆车
seller2.sell_car(car_index)
print('销售员{}当月佣金总共{}万元。'.format(seller2.name, seller2.commission))
print(store1)
输入
本田 雅阁 2022 25000 奥迪 A4 2021 35000 雪佛兰 科鲁兹 2023 18000 雷克萨斯 ES 2020 40000
输出
现有库存车,如下: 2022 本田 雅阁 - 价格:25000.0元 2021 奥迪 A4 - 价格:35000.0元 2023 雪佛兰 科鲁兹 - 价格:18000.0元 2020 雷克萨斯 ES - 价格:40000.0元
2021 奥迪 A4 - 价格:35000.0元 2021 奥迪 A4 - 价格:100元 小张销售了一辆奥迪 A4,获得佣金1.0元。 2020 雷克萨斯 ES - 价格:40000.0元 小张销售了一辆雷克萨斯 ES,获得佣金400.0元。 销售员小张当月佣金总共401.0元。 小明销售了一辆本田 雅阁,获得佣金500.0元。 销售员小明当月佣金总共500.0万元。 现有库存车,如下: 2023 雪佛兰 科鲁兹 - 价格:18000.0元