You are working for a Retirement Planners company that helps customers plan retirement parties. The company has to track all retirement parties for which it is providing planning services. However, since you are building a brand new application for the company, you decide to first build a proof of concept application that only manages one retirement party for now, with the goal of tracking all retirement parties in the future. Each retirement party has a customer budget that describes the maximum amount of money the customer is willing to spend on items purchased for the retirement party. The application must track a running total of the amount of money spent on items purchased for the retirement party and the number of items purchased.
Create an application that uses solid object-oriented principles to simulate one retirement party and an accompanying implementation class that will instantiate one instance of the data definition class, using it to process item purchases for a single retirement party.
The data definition class must also store the name of the person retiring and if a speech will be given. It must have validating mutators for all numeric instance variables and non-validating mutators for non-numeric instance variables. Accessors must be created for all instance variables. The data definition class must allow for the budget to only be set at object creation time, but should not be required. The default budget when it is not specified at object creation time should be $1,000.00. Additionally, the data definition class must be able to calculate how much money is remaining in the budget at any given time.
The implementation class will instantiate one instance of the data definition class with a budget of $2000.00. The program will then prompt the user for the name of the person retiring and if a speech will be given. Next, the user will be prompted to enter item purchase amounts (one at a time) until they have indicated they are finished entering item purchase amounts. Validation of each purchase amount must include a check to make sure there is sufficient money remaining in the budget. When the user has indicated they are finished entering purchase amounts, the program will display a well-formatted summary of the name of the person retiring, whether a speech will be given, the total number of item purchases, the amount of money spent on all item purchases, and the amount of money remaining in the budget.
Notes:
Must use object-oriented techniques rather than procedural.
You may not use Scanner or System classes for input/output. You must use JOptionPane.
You may not use System.exit, or any variant that exits the program in the middle of the program. The program should only exit once the algorithm has finished completing.