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

Write a new version of the Retirement project you wrote in Problem 2. Create a n

ID: 3822272 • Letter: W

Question

Write a new version of the Retirement project you wrote in Problem 2. Create a new Python project RetirementNew and copy the files from the old project. Make the following changes to class Employee:

Change all instance variables to private

Write setter methods for salary and years of service.

Define a __str__ method to display the employee’s name, salary and years of service.

Do the following in the main module:

Get name, salary and years of service from the user and use the input data to create one instance of Employee

Display the Employee instance with a print statement

Write a loop to allow the user to change salary and years of service. Inside the loop, ask the user to enter 1 to change salary, 2 to change years of service or 3 to exit the loop. Make changes to the Employee object.

Display the Employee object with a print statement again

Call the pension method of the Employee instance to calculate pension. Display pension.

The following shows a sample test run:

Enter name: Joe Chen

Enter salary: 80000

Enter years of service: 30

Name: Joe Chen Salary: 80000.0 Years of service: 30.0

Update employee information:

Enter 1 to change salary, 2 to change years of service, 3 to exit: 1

Enter new salary: 85000

Enter 1 to change salary, 2 to change years of service, 3 to exit: 2

Enter new years of service: 31

Enter 1 to change salary, 2 to change years of service, 3 to exit: 3

Name: Joe Chen Salary: 85000.0 Years of service: 31.0

Monthly pension payout: 3952.5

for your information

problem 2 is :

Create a Python project DriveCar. Add a Python file car.py to this project. Define a class Car in this file. In this class, create three publicly accessible instance variables to store the car’s make, model, and speed. Also define the following methods:

A __init__ method that accepts car’s make and model as arguments. Write statements in __init__ to store them in instance variables. Also create an instance variable for speed and initialize it to 0.

An accelerate method to increase the speed of the car by 5 mph. This method has no parameters and no return value.

A decelerate method to decrease the speed of the car by 5 mph. This method needs to ensure that the speed will never go below 0. It has no parameters and no return value.

   The following class diagram shows the design of this class:

Car

+make: String

+model: String

+speed: Float

+create(car_name:String, car_model:String)

+accelerate()

+decelerate()

Add a file driveCar_main.py to this project. This is the main module. Write code to ask the user to enter model and make of a car. Create an instance of Car. Display the initial speed of the car. Write a loop to control the speed of the car. In the loop, ask the user to enter 1 for acceleration, 2 for deceleration or 3 for exit. Every time the speed of the car changes, display the speed.

The following shows a sample test run:

Enter car make: Toyota

Enter car model: Prius

Car speed: 0

Enter 1 for accelerate, 2 for decelerate, or 3 to exit: 2

Car speed: 0

Enter 1 for accelerate, 2 for decelerate, or 3 to exit: 1

Car speed: 5

Enter 1 for accelerate, 2 for decelerate, or 3 to exit: 1

Car speed: 10

Enter 1 for accelerate, 2 for decelerate, or 3 to exit: 1

Car speed: 15

Enter 1 for accelerate, 2 for decelerate, or 3 to exit: 2

Car speed: 10

Enter 1 for accelerate, 2 for decelerate, or 3 to exit: 2

Car speed: 5

Enter 1 for accelerate, 2 for decelerate, or 3 to exit: 3

Car

+make: String

+model: String

+speed: Float

+create(car_name:String, car_model:String)

+accelerate()

+decelerate()

Explanation / Answer

#save as Employee.py
class Employee:

   def __init__(self, name, salary,years):
      self.name = name
      self.salary = salary
      self.years = years

   #set salary
   def setSalary(self,salary):
         self.salary = salary

      #set years
   def setYears(self,years):
         self.years = years

      #returns string representation of employee
   def __str__(self):
      return "Name %s Salary %d Years of Service %d"%(self.name,self.salary,self.years)

      #calculats the pension
   def displayPension(self):
         #pension factor=0.15 /100=0.0015
     pension=self.salary*0.0015*self.years
     print('Monthly pension payout: %5.2f'%pension)
    
#prompt name
name=str(input('Enter name:'))
#prompt salary
salary=int(input('Enter salary:'))
#prompt years of service
years=int(input('Enter years of service:'))


#create emp object
emp=Employee(name,salary,years)
#print to console
print(emp)

run=True
print('Update employee information:')

#prompt until user enters 3 to exit
while run:
      choice=int(input('Enter 1 to change salary, 2 to change years of service, 3 to exit:'))

      if choice ==1:
            newsalary=int(input('Enter new salary:'))
            emp.setSalary(newsalary)
      elif choice ==2:
            years=int(input('Enter new years of service:'))
            emp.setYears(years)
      else:
           run=False

#print emp
print(emp)
#print pension
emp.displayPension()

          
Sample output:

>>>
Enter name:Joe Chan
Enter salary:80000
Enter years of service:30
Name Joe Chan Salary 80000 Years of Service 30
Update employee information:
Enter 1 to change salary, 2 to change years of service, 3 to exit:1
Enter new salary:85000
Enter 1 to change salary, 2 to change years of service, 3 to exit:2
Enter new years of service:31
Enter 1 to change salary, 2 to change years of service, 3 to exit:3
Name Joe Chan Salary 85000 Years of Service 31
Monthly pension payout: 3952.50
------------------------------------------------------------------------------------------------------------------
#save as Car.py
class Car:

   def __init__(self, make, model,speed):
      self.make = make
      self.model = model
      self.speed = speed

   #increase speed by 5
   def accelerate(self):
      self.speed += 5

   #decrease speed by 5
   def decelerate(self):
      if self.speed>0:
            self.speed -= 5
      else:
            self.speed = 0

   #display speed
   def displaySpeed(self):       
     print('Car speed: %5.2f'%self.speed)
    
#prompt make of car
make=str(input('Enter car make:'))
#prompt model of car
model=input('Enter car model:')


#create emp object
car=Car(make,model,0)


run=True

#prompt until user enters 3 to exit
while run:
      choice=int(input('Enter 1 for accelerate, 2 for decelerate, or 3 to exit:'))

      if choice ==1:
            #calling accelerate method
            car.accelerate()
            car.displaySpeed()
      elif choice ==2:
            #calling decelerate method
            car.decelerate()
            car.displaySpeed()
      else:
           run=False


----------------------------------------------------------------------------------------------------
Sample run:
Enter car make:Toyoto
Enter car model:Prius
Enter 1 for accelerate, 2 for decelerate, or 3 to exit:1
Car speed: 5.00
Enter 1 for accelerate, 2 for decelerate, or 3 to exit:1
Car speed: 10.00
Enter 1 for accelerate, 2 for decelerate, or 3 to exit:1
Car speed: 15.00
Enter 1 for accelerate, 2 for decelerate, or 3 to exit:2
Car speed: 10.00
Enter 1 for accelerate, 2 for decelerate, or 3 to exit:2
Car speed: 5.00
Enter 1 for accelerate, 2 for decelerate, or 3 to exit:2
Car speed: 0.00
Enter 1 for accelerate, 2 for decelerate, or 3 to exit:

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