Scenario:
You are working for an Art Gallery. The gallery sells paintings for office rooms. An application is needed to manage all of the paintings available in inventory. The gallery has limited space and can only hold 58 paintings at any given time. Each painting has a unique, application generated bar code (represented as an integer starting at 200, and increasing by 100 for each new painting), painting name (e.g. “VSE Building at Night”), artist name, whether or not it was painted by a student, and total area of the painting (in feet). Paintings may not exceed an area of 36 feet. The cost for each painting is calculated at $26 plus the total area of the painting, unless the painting was painted by a student, in which case the cost is reduced to $16 plus the total area of the painting. For example, a painting that is 20 feet and not painted by a student would cost $46.
Create an application with a main menu containing the following options:
Show All Paintings
This option must allow the user to see a list of all painting names with their artist name. If there are no paintings available, the user must see an error message.
Add New Painting
This option must allow the user to enter all information about a painting, other than the unique, application generated bar code. The painting will then be added to the inventory. If the maximum number of paintings has already been entered, the user must see an error message.
Delete Painting
This option must allow the user to see a list of all painting names with their artist name and then choose which painting he/she would like to delete. If the user selects an invalid painting, the user must see an error message. If there are no paintings available to delete, the user must see an error message.
Sell Painting
This option must allow the user to see a list of all painting names with their artist name and then choose which painting he/she would like to sell. Upon selecting a painting, the user should see the unique, application generated bar code, all user entered information about the painting, and the painting’s cost. Then, the painting must be deleted from inventory. If the user selects an invalid painting, the user must see an error message. If there are no paintings available to sell, the user must see an error message.
Quit Application
This option must display a summary report including the total number of paintings currently in inventory, number of paintings sold, and total profit earned across all paintings sold.
Note: Once a user selects any option other than “Quit Application”, and the option is finished executing, he/she should be returned back to the main menu and re-prompted to enter another option.
Other Requirements:
· Your solution must use object-oriented techniques rather than procedural.
· Your solution must include appropriate constants, constructors, accessors (including a toString() method), mutators, and special purpose methods
· Your solution must demonstrate use of arrays. You may not use ArrayLists.
· 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.