1. The user must be able to add and remove customers, add and remove rental locations, and add and remove vehicles.
2. Vehicles can be assigned to a rental location where they are picked up and returned. A vehicle can also have no location assigned, meaning that they are not for currently available for rent.
3. Customers can be added and removed from the system. You should store their first and last name, street address, and age. Customers can also be designated “preferredcustomers” meaning that they get 20% off the price of any car rental. Customers that are 25 years or younger must pay 20% extra for their rental, and cannot be designated preferred customers.
4. Customers can rent a car from a rental location for a number of [login to view URL] must specify the day that the rental begins, and the expected day to return the car (1). That makes the car object unavailable for rent by any other customers during that time(1). If wants to rent a car during a day that it’s already booked by another customer, then the system will tell them that the car is unavailable on the day that the other booking is starting(1).
5. The process of renting a car should follow this pattern:
a. Select a username from a drop-down list. Select a rental location from a second drop-down list. A third drop-down list should them be populated with the cars that are available for rent at that location where the user can select the car they want to rent from the list.
b. There should be a text field where the user can enter the starting date and end date of the rental.
c. For the purposes of this assignment, when you start your program, the system starts at day #0. Then days are just numbered sequentially after that. Don’t keep track of names of days, or weeks or months. To keep things simple, just pretend that the days are just numbers that go up forever, so if you run this program long enough, you might reach day #345923 for example.
d. There should be a button on the GUI to simulate advancing to the next day. When the user clicks this button, there should be a day number showing somewhere on the interface.
6. The user can also return a car, however the process is much simpler. The user should be able to view a list of all customers that are currently renting a car. When a customer is selected, the user can see which car they are currently renting, the number of days they have rented it for, and the total price of the rental period. There should be a button for returning the car on the current day that is showing in the interface. That should then make the car available for rent on the next day (a car cannot be rented on the same day that it is rented to simulated taking time to clean it and do maintenance). Also, if the car is returned past the expected return date, then they must pay 100% extra for the days that the car is late.