Question: class Vehicle: def _ _ init _ _ ( self , stock _ id , vin, vehicle _ type, year, make, model, odometer, sale _

class Vehicle:
def __init__(self, stock_id, vin, vehicle_type, year, make, model, odometer, sale_price):
self.stock_id = stock_id
self.vin = vin
self.vehicle_type = vehicle_type
self.year = year
self.make = make
self.model = model
self.odometer = odometer
self.sale_price = sale_price
def showDescription(self):
return (f"Stock ID: {self.stock_id}, VIN: {self.vin}, Type: {self.vehicle_type},"
f"Year: {self.year}, Make: {self.make}, Model: {self.model},"
f"Odometer: {self.odometer}, Sale Price: ${self.sale_price:.2f}")
class ElectricVehicle(Vehicle):
def __init__(self, stock_id, vin, year, make, model, odometer, sale_price, battery_size):
super().__init__(stock_id, vin, 'E', year, make, model, odometer, sale_price)
self.battery_size = battery_size
def showDescription(self):
base_description = super().showDescription()
return f"{base_description}, Battery Size: {self.battery_size} kWh"
class HybridVehicle(Vehicle):
def __init__(self, stock_id, vin, year, make, model, odometer, sale_price, mpg):
super().__init__(stock_id, vin, 'H', year, make, model, odometer, sale_price)
self.mpg = mpg
def showDescription(self):
base_description = super().showDescription()
return f"{base_description}, MPG: {self.mpg}"
class VehicleInventory:
def __init__(self):
self.inventory ={}
def getInput(self):
print("
Menu:")
print("[1] Display inventory")
print("[2] Add a new vehicle")
print("[3] Update an existing vehicle")
print("[4] Delete an existing vehicle")
print("[5] Exit")
choice = input("Select an option: ")
if choice =='1':
self.dispInventory()
self.getInput()
elif choice =='2':
self.addInventory()
self.getInput()
elif choice =='3':
self.updatePrice()
self.getInput()
elif choice =='4':
self.deleteInventory()
self.getInput()
elif choice =='5':
print("Exiting the program.")
else:
print("Invalid choice, please try again.")
self.getInput()
def addInventory(self):
vehicle_type = input("Enter vehicle type (R/E/H): ").upper()
stock_id = input("Enter Stock ID: ")
vin = input("Enter VIN: ")
year = input("Enter Year: ")
make = input("Enter Make: ")
model = input("Enter Model: ")
odometer = float(input("Enter Odometer: "))
sale_price = float(input("Enter Sale Price: "))
if vehicle_type =='E':
battery_size = float(input("Enter Battery Size (kWh): "))
vehicle = ElectricVehicle(stock_id, vin, year, make, model, odometer, sale_price, battery_size)
elif vehicle_type =='H':
mpg = int(input("Enter MPG: "))
vehicle = HybridVehicle(stock_id, vin, year, make, model, odometer, sale_price, mpg)
else:
vehicle = Vehicle(stock_id, vin, vehicle_type, year, make, model, odometer, sale_price)
self.inventory[stock_id]= vehicle
print("Vehicle added successfully.")
def dispInventory(self):
if not self.inventory:
print("No vehicles in inventory.")
return
for vehicle in self.inventory.values():
print(vehicle.showDescription())
def updatePrice(self):
stock_id = input("Enter Stock ID to update price: ")
if stock_id in self.inventory:
new_price = float(input("Enter new Sale Price: "))
self.inventory[stock_id].sale_price = new_price
print("Price updated successfully.")
else:
print("Invalid Stock ID, please try again.")
self.updatePrice()
def deleteInventory(self):
stock_id = input("Enter Stock ID to delete: ")
if stock_id in self.inventory:
del self.inventory[stock_id]
print("Vehicle deleted successfully.")
else:
print("Invalid Stock ID, please try again.")
self.deleteInventory()
def main():
inventory_manager = VehicleInventory()
inventory_manager.getInput()
if __name__=="__main__":
main()

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Programming Questions!