2187. A08 类-汽车

这是一个汽车销售的程序,有汽车、人员和销售系统三类对象。 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元

登录以提交代码。
单点时限 1 秒
内存限制 128 MB
提交 390
通过 81