Pop's Pie Shop wants you to help computerize its ever-changing menu. Here's an example of the delicious items that Pop's has to offer:
Here is what we are starting with today:
Savory:
Savory Mince & Cheese
Pork & Peach
BBQ C
urried Lamb & Spinach
Chicken & Kumara
Smoked Salmon, Leek & Potato
Thai Butternut Curry (vegan)
Sausage Roll
Spinach & Cheese
Roll Beef Pasty
Sweet Pie by the slice:
Banoffee
Blueberry Apple (vegan)
Buttermilk & Raspberry
Chocolate Chess
Chocolate Raspberry Cream
Coconut Cream
Dutch Apple
Lemon Meringue
Mock Turtle (vegan)
Sweet Treats:
Anzac Biscuit
Caramel Blondie
Cherry Pecan Brownie
Chocolate Peppermint Cookie
Lamington
Lemon Coconut Cake
Mellowpuff
Yo Yo
As you can see, there are three categories in the menu each containing food items. A single, basic food item has a name, a designation if it's suitable for vegan or other special diets, and a category (Savory, Sweet Pie, or Sweet Treat).
In addition, Pop's pies are so "pop"ular (get it?) that he would like a field to indicate if a Food Item is available or not, so that he can update the menu when an item is sold out. What data types comprise the fields in a FoodItem class?
The other class that needs to be designed represents the menu of the day at Pop's Pie Shop. The name of the Java class is Menu. The important characteristics of a Menu for Pop's application are the three collections of FoodItems and the date. The menu to be displayed to customers is a list of all the available food items in each category, so the Menu class needs a method that will return a string representation of the current menu that includes the date.
The PieShop class contains the main method and is responsible for reading in the text file that contains the list of food items for the menu. The name of the file is to be read as a command line argument.
(Failure to use command line arguments will result in a severe point penalty.) The food items are listed in the text file one item per line. The line is formatted with the name, menu category, special diet information, and availability all separated by a colon (:). For example:
Savory Mince & Cheese : savory : none : y
Blueberry Apple : sweet pie : vegan : y
Mellowpuff : sweet treat : none : n
The program will create FoodItem objects from the data in the text files and populate the day's menu with those FoodItems that are available. (Failure to create these objects in your program will greatly reduce the number of points that you earn for the project.)
Once this has been done, the program will display today's menu with a header, the current date, and the three categories of FoodItems listed separately. After displaying the menu for the day, the program will provide the following options:
1 - Update an existing item on the menu
2 - Save the menu
3 - Close the program
For the first option, the program will prompt the user for the category and name of the item. If the item is included in the menu, then provide the option to change it from available to unavailable or from unavailable to available. Option 2 will save the current menu, including any changes made via option 1, to a file named menu.out.
Please use Drjava for this program. As long as the program runs correctly, extra work doesn't need to be added. Please make it as elementary as possible. I'd just love to see your programming code from mine to learn more. Thank you so much!