Main ParkingLot class to track number of vehicles per floor. It'll have an array of floors.
Class Floor that will contain an array of ParkingSpot, as well as a value to indicate if the floor is full.
Class ParkingSpot will contains the size of the vehicle allowed, a member to track state of the spot (whether it's empty or occupied), and maybe a time member to track how long it has been since the spot is occupied.
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.
Explain design tradeoffs you considered. Check and explain whether your design adheres to SOLID principles. Explain how your design can handle changes in scale and whether it would be easy to extend with new functionalities. Identify areas for future improvement...