Reference no: EM132354745
Question
Make a Python project fly_drone. Add a Python file drone.py to this project. Define a class Drone in this file. This class has the following five methods:
(a) __init__ : Create two instance variables to store the speed and the height of the drone. Initialize them to 0.0. This method has no parameters other than self and no return value.
(b) accelerate : Increase the speed of the drone by 10. This method has no parameters other than self and no return value.
(c) decelerate : Decrease the speed of the drone by 10. The new speed cannot be negative. This method has no parameters other than self and no return value.
(d) ascend : Increase the height of the drone by 10. This method has no parameters other than self and no return value.
(e) descend : Decrease the height of the drone by 10. The new height cannot be negative. This method has no parameters other than self and no return value.
The following class diagram shows the design of this class:
Drone
+speed: Float
+height: Float
+create()
+accelerate()
+decelerate()
+ascend()
+descend()
Add a file fly_drone_main.py to this project. In the main module, make a instance of Drone. Make a loop to control the speed and height of the drone. In the loop, ask the user to enter 1 for acceleration, 2 for deceleration, 3 for ascending, 4 for descending, or 0 for exit.
Call the appropriate method of the Drone object to change the speed or height of the drone. Every time the speed or height of the drone changes, display the speed and height.
The following are what a sample test run should look like:
Enter 1 for accelerate, 2 for decelerate, 3 for ascend, 4 for descend, 0 for exit: 1
Speed: 10 Height: 0
Enter 1 for accelerate, 2 for decelerate, 3 for ascend, 4 for descend, 0 for exit: 1
Speed: 20 Height: 0
Enter 1 for accelerate, 2 for decelerate, 3 for ascend, 4 for descend, 0 for exit: 3
Speed: 20 Height: 10
Enter 1 for accelerate, 2 for decelerate, 3 for ascend, 4 for descend, 0 for exit: 3
Speed: 20 Height: 20
Enter 1 for accelerate, 2 for decelerate, 3 for ascend, 4 for descend, 0 for exit: 3
Speed: 20 Height: 30
Enter 1 for accelerate, 2 for decelerate, 3 for ascend, 4 for descend, 0 for exit: 2
Speed: 10 Height: 30
Enter 1 for accelerate, 2 for decelerate, 3 for ascend, 4 for descend, 0 for exit: 0
Speed: 10 Height: 30