Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

PLEASE READ CAREFULLY and code in PYTHON Write a function record repair() that r

ID: 3810600 • Letter: P

Question

PLEASE READ CAREFULLY and code in PYTHON

Write a function record repair() that records a repair for a car and returns the total cost of all repairs for that car (including the new repair). The function takes four arguments, in this order:

• cars: a list of Car objects

• vin: the VIN for the car that we want to record a repair for

• repair_desc: a description of the repair

• repair_cost: the cost of the repair (an integer)

The function must search the list of Car objects for the car with the given vin, call the add repair method of the Car class with the given repair desc and repair cost to record a repair for the car, and then return the new total repair costs for the car. If no Car object is found in the list cars with the given vin, the function should simply return 0.

PROVIDED BELOW IS THE "BAREBONE" CLASSES THAT ARE USED AND REFERENCED IN THE PROBLEM. FEEL FREE TO ADD METHODS AS NECESSARY

BELOW IS THE INFORMATION GIVEN AS TO THE TEST CASES

Explanation / Answer

# linkf or code in case indentation mess up: https://goo.gl/tukOAo

class Car:
def __init__(self, vin, brand, model, year):
self._vin = vin
self._brand = brand
self._model = model
self._year = year
self._repairs = []

def add_repair(self, repair_desc, repair_cost):
self._repairs += [Repair(repair_desc, repair_cost)]

def __repr__(self):
return 'VIN: ' + self._vin + ' ' +
' Brand: ' + self._brand + ' ' +
' Model: ' + self._model + ' ' +
' Year: ' + str(self._year) + ' '


class Repair:
def __init__(self, desc, cost):
self._desc = desc
self._cost = cost

def __repr__(self):
return self._desc + ': $' + str(self._cost)

def record_repair(carList, vin, repair_desc, cost):
total_cost = 0
for car in carList:
if car._vin == vin:
car.add_repair(repair_desc, cost)
repairs = car._repairs
for repair in repairs:
total_cost += repair._cost
return total_cost

if __name__ == '__main__':
def reset_car_database():
c01 = Car('XYZ123X', 'Toyota', 'Camry', 2012)
c02 = Car('HSY113Y', 'Honda', 'Civic', 2016)
c03 = Car('MZJ291E', 'Ford', 'Escape', 2009)
c04 = Car('KJD922P', 'Jeep', 'Wrangler', 2011)
c05 = Car('TRQ235K', 'Hyundai', 'Sonata', 2017)
c06 = Car('JNH47GB', 'Toyota', 'Camry', 2011)
c07 = Car('K83JDE3', 'Honda', 'Pilot', 2009)
c08 = Car('MCJD83J', 'Hyundai', 'Elantra', 2013)
c09 = Car('9EM2JSK', 'Toyota', 'Camry', 2002)
c10 = Car('JF83JKS', 'Honda', 'Civic', 2012)

c01.add_repair('Broken axle', 2900)
c01.add_repair('Punctured tire', 40)
c02.add_repair('Cracked windshield', 1000)
c04.add_repair('Oil change', 45)
c04.add_repair('New clearcoat', 550)
c05.add_repair('Punctured tire', 30)
c05.add_repair('Cracked windshield', 1000)
c06.add_repair('Popped dents', 75)
c06.add_repair('Broken headlight', 80)
c06.add_repair('Broken taillight', 95)
c07.add_repair('Rebuilt engine', 4880)
c09.add_repair('Broken headlight', 80)
c09.add_repair('Punctured tire', 80)
c10.add_repair('Replaced windshield wipers', 125)

car_list1 = [c02, c03, c05, c06, c07, c08, c09]
car_list2 = [c01, c03, c04, c05, c06, c08, c09, c10]
car_list3 = [c03, c04, c08]

return car_list1, car_list2, car_list3
cars1, cars2, cars3 = reset_car_database()

vin = 'HSY113Y' # car currently has at least one repair
repair = 'Punctured tire'
cost = 40
print('Testing record_repair() for cars1, {}, "{}", {}: {}'.format(vin, repair, cost,
record_repair(cars1, vin, repair, cost)))
vin = 'MZJ291E' # car currently has no repairs
repair = 'Cracked rim'
cost = 800
print('Testing record_repair() for cars1, {}, "{}", {}: {}'.format(vin, repair, cost,
record_repair(cars1, vin, repair, cost)))
vin = 'XYZ123X' # car not in cars1 list
repair = 'Broken mirror'
cost = 250
print('Testing record_repair() for cars1, {}, "{}", {}: {}'.format(vin, repair, cost,
record_repair(cars1, vin, repair, cost)))
  

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote