need help with this python assignment Preliminaries For this lab you will be wor
ID: 3812588 • Letter: N
Question
need help with this python assignment
Preliminaries For this lab you will be working with the following classes 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 In' +N Model self model An Year str (self. year) In' +N Total Repairs: str(self total repairs 0) class Repair: def init (self desc cost) self desc desc self cost cost def repr. (self) return self desc str (self cost)Explanation / Answer
# pastebin link for code: https://pastebin.com/tHSGxcwg
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(cars, vin, repair_desc, repair_cost):
vin_values = []
for i in range(len(cars)):
vin_values.append(cars[i]._vin)
if vin in vin_values:
repairs = cars[vin_values.index(vin)]._repairs
if len(repairs) != 0:
temp_cost = 0
for i in range(len(repairs)):
temp_cost += repairs[i]._cost
return temp_cost + repair_cost
else:
return repair_cost
else:
return 0
def total_cost(car):
repairs = car._repairs;
total_cost = 0
for repair in repairs:
total_cost += repair._cost;
return total_cost
def sort_cars(cars):
pos = 0
while pos < len(cars):
if pos == 0 or total_cost(cars[pos]) <= total_cost(cars[pos-1]):
pos += 1
else:
temp = cars[pos]
cars[pos] = cars[pos-1]
cars[pos-1] = temp
pos -= 1
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()
print('Testing sort_cars() with cars1. cars1 after sorting:')
sort_cars(cars1)
print(cars1)
print('Testing sort_cars() with cars2. cars2 after sorting:')
sort_cars(cars2)
print(cars2)
print('Testing sort_cars() with cars3. cars3 after sorting:')
sort_cars(cars3)
print(cars3)
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.