The system needs to define a Parking Lot, Parking Spots, Parking Ticket, and Vehicle information. The relationship between them is that the Parking Lot contains Parking Spots. For each Vehicle that enters the Parking Lot, the system has to assign it a Parking Ticket and a Parking Spot. The fee for the Vehicle is determined by the elapsed time from entry to exit of the Parking Lot.
For each class, define the attributes (data) it will hold and the methods (functions) that operate on the attributes. Ensure they align with the object's responsibilities and adhere to the principle of encapsulation. Write your code in the code editor below.
The algorithm isn't the most efficient at finding the best parking spot for a Vehicle based on size. If all small and medium sized spots are taken for a motorcycle, then the algorithm would parse through all spots multiple times. So if the parking lot is extremely large, this would take some time.