You are to create an efficient, well-documented object-oriented application to manage a list of non-profit organizations. The organizations only need to track a list of volunteers and total donations. The idea is to set up a kiosk-style application that will continually run, giving the user(s) the following choices:
1. Add a new organization
2. Donate to an existing organization
3. Volunteer for an existing organization
You are the developer of the application and need to rely on the design of others in your organization. That said, you need to follow the guidelines of the following UML Class Diagram and IPO (Hierarchy) chart of the intended application (please refer to the attachment for these).
The UML Diagram is intended to describe each Organization to be managed and the IPO chart is to give you a `feel' for the application that is run at the kiosk.
Note the following:
- User can only be added once to an organization's volunteer list (the purpose of the find method is to determine if a volunteer already exists in the list for an organization).
- Donations must be between $1 and $10,00.
Please rename attached 533311-Kiosk.java as Kiosk.java before you compile and execute it. Java version "1.7.0_03" was used during the development and testing ...
Solution uses MAX size Arrays of organizations and volunteers. It verifies the donation amount range in the donation method of Organization class, but a method validDonationAmount has been provided in Kiosk class that you can make use of in donate method of Kiosk class, in case you want to handle donation amount verification there.