Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Please help me with this java program You are to write a program to simulate the

ID: 3588092 • Letter: P

Question

Please help me with this java program

You are to write a program to simulate the counter activity at a deli. The actions that can be taken are given by the String[] in the DeliCounter class provided. Only the major components of the classes you are to write will be provided; other requirements will have to be derived and provided based on implied program behavior.

Write the following classes

MenuItem

Write an abstract class MenuItem. The deli’s menu is, simply, a collection of MenuItem objects. All MenuItems have a name and a price. We’ll assume that all names are a single word (no embedded spaces) and all prices can be represented as a double value. MenuItem has an abstract method, boolean isInventory(). More on “inventory” below.

PackagedItem

Some items on the deli’s menu are pre-packaged and considered inventory; bottles of water, cans of soft drinks, bags of chips are examples. These items, in addition to a name and unit price, have a quantity. For example, the deli may have 50 bags of chips on hand. The quantity must be adjusted as items are sold. (We won’t worry about restocking for this program.) The owner of the shop wants to know the total value of his packaged inventory items.

PreparedItem

Some items on the deli’s menu must be prepared for each order. Such items are not considered to be “inventory.” In addition to a name and price, PreparedItems have a preparation time that is kept in minutes.

Additional Program Capability

Initially, the deli program starts with an empty menu. It should be able to save and restore the menu on demand. It should be able to offer customers the list of items that may be ordered, sell an item, add new items to the menu, and list the current value of the packaged items.

Sample Execution

The following is a sample execution.

[0] Restore Inventory

[1] Save Inventory

[2] List Total Packaged Item Value

[3] List Menu

[4] Order Item

[5] Add New Package

[6] Add New Cooked Item

[7] Exit

3   

[0] Restore Inventory

[1] Save Inventory

[2] List Total Packaged Item Value

[3] List Menu

[4] Order Item

[5] Add New Package

[6] Add New Cooked Item

[7] Exit

5

Add a new packaged item:

Item name:

chips

Item price:

1.50

Item quantity:

10

**********************************

DeliCounter.java

import java.io.File;

import java.io.FileInputStream;

import java.io.FileOutputStream;

import java.io.IOException;

import java.io.ObjectInputStream;

import java.io.ObjectOutputStream;

import java.util.ArrayList;

import java.util.Scanner;

public class DeliCounter {

public static final String[] ACTIONS = { "Restore Inventory", "Save Inventory", "List Total Packaged Item Value",

"List Menu", "Order Item", "Add New Package", "Add New Cooked Item", "Exit" };

public static void main(String[] args) {

ArrayList menu = new ArrayList<>();

Scanner kybd = new Scanner(System.in);

DeliCounter deli = new DeliCounter();

displayMenu(ACTIONS);

int activity = kybd.nextInt();

while (!ACTIONS[activity].equalsIgnoreCase("Exit")) {

if (ACTIONS[activity].equalsIgnoreCase("Restore Inventory")) {

menu = restoreInventory();

} else if (ACTIONS[activity].equalsIgnoreCase("Save Inventory")) {

saveInventory(menu);

} else if (ACTIONS[activity].equalsIgnoreCase("List Total Packaged Item Value")) {

displayPackageValue(menu);

} else if (ACTIONS[activity].equalsIgnoreCase("List Menu")) {

displayMenu(menu);

} else if (ACTIONS[activity].equalsIgnoreCase("Order Item")) {

System.out.println("Which item number do you want? ");

int itemNum = kybd.nextInt();

orderItem(itemNum, menu);

} else if (ACTIONS[activity].equalsIgnoreCase("Add New Package")) {

MenuItem newItem = newPackagedItem(kybd);

menu.add(newItem);

} else if (ACTIONS[activity].equalsIgnoreCase("Add New Cooked Item")) {

MenuItem newItem = addCooked(kybd);

menu.add(newItem);

} else {

System.out.println("Invalid input ignored");

}

displayMenu(ACTIONS);

activity = kybd.nextInt();

}

}

private static MenuItem addCooked(Scanner kybd) {

System.out.println("Add a new cooked item: ");

return null;

}

private static MenuItem newPackagedItem(Scanner kybd) {

System.out.println("Add a new packaged item: ");

return null;

}

private static void orderItem(int itemNum, ArrayList menu) {

}

private static void displayMenu(ArrayList items) {

System.out.println(" ");

System.out.println(" ");

}

private static void displayPackageValue(ArrayList menu) {

System.out.println(" ");

}

private static void saveInventory(ArrayList menu) {

}

private static ArrayList restoreInventory() {

return null;

}

public static void displayMenu(String[] items) {

System.out.println(" ");

for (int i = 0; i < items.length; i++) {

System.out.println("[" + i + "] " + items[i]);

}

System.out.println(" ");

}

}

*******************************

MenuItem.java


// stub to help DeliCounter compile initially

public class MenuItem {

}

Explanation / Answer

Hi,

PFB source code:

1. DeliCounter.java

import java.io.File;

import java.io.FileInputStream;

import java.io.FileOutputStream;

import java.io.IOException;

import java.io.ObjectInputStream;

import java.io.ObjectOutputStream;

import java.util.ArrayList;

import java.util.Scanner;

public class DeliCounter {

public static final String[] ACTIONS = { "Restore Inventory", "Save Inventory", "List Total Packaged Item Value",

"List Menu", "Order Item", "Add New Package", "Add New Cooked Item", "Exit" };

public static void main(String[] args) {

ArrayList menu = new ArrayList<>();

Scanner kybd = new Scanner(System.in);

DeliCounter deli = new DeliCounter();

displayMenu(ACTIONS);

int activity = kybd.nextInt();

while (!ACTIONS[activity].equalsIgnoreCase("Exit")) {

if (ACTIONS[activity].equalsIgnoreCase("Restore Inventory")) {

menu = restoreInventory();

} else if (ACTIONS[activity].equalsIgnoreCase("Save Inventory")) {

saveInventory(menu);

} else if (ACTIONS[activity].equalsIgnoreCase("List Total Packaged Item Value")) {

displayPackageValue(menu);

} else if (ACTIONS[activity].equalsIgnoreCase("List Menu")) {

displayMenu(menu);

} else if (ACTIONS[activity].equalsIgnoreCase("Order Item")) {

System.out.println("Which item number do you want? ");

int itemNum = kybd.nextInt();

orderItem(itemNum, menu);

} else if (ACTIONS[activity].equalsIgnoreCase("Add New Package")) {

MenuItem newItem = newPackagedItem(kybd);

menu.add(newItem);

} else if (ACTIONS[activity].equalsIgnoreCase("Add New Cooked Item")) {

MenuItem newItem = addCooked(kybd);

menu.add(newItem);

} else {

System.out.println("Invalid input ignored");

}

displayMenu(ACTIONS);

activity = kybd.nextInt();

}

}

private static MenuItem addCooked(Scanner kybd) {

String n1 = "";

double p1 = 0.0;

long m1 = 0;

System.out.println("Add a cooked item:");

System.out.println("Item name:");

n1 = kybd.next();

System.out.println("Item price:");

p1 = kybd.nextDouble();

System.out.println("Prep Time in min:");

m1 = kybd.nextInt();

MenuItem mi = new PreparedItem(n1, p1, m1);

return mi;

}

private static MenuItem newPackagedItem(Scanner kybd) {

String n1 = "";

double p1 = 0.0;

int q1 = 0;

System.out.println("Add a new packaged item:");

System.out.println("Item name:");

n1 = kybd.next();

System.out.println("Item price:");

p1 = kybd.nextDouble();

System.out.println("Item quantity:");

q1 = kybd.nextInt();

MenuItem mi = new PackagedItem(n1, p1, q1);

return mi;

}

private static void orderItem(int itemNum, ArrayList menu) {

menu.remove(itemNum);

}

private static void displayMenu(ArrayList items) {

System.out.println(" ");

System.out.println(" ");

for(int i=0;i<items.size();i++)

{

System.out.println(items.get(i));

}

}

private static void displayPackageValue(ArrayList menu) {

System.out.println(" ");

System.out.println(PackagedItem.getCounter());

}

private static void saveInventory(ArrayList menu) {

//please specify extly what is required

}

private static ArrayList restoreInventory() {

//please specify extly what is required

return null;

}

public static void displayMenu(String[] items) {

System.out.println(" ");

for (int i = 0; i < items.length; i++) {

System.out.println("[" + i + "] " + items[i]);

}

System.out.println(" ");

}

}

2. MenuItem.java:

public abstract class MenuItem {

String name="";

double price = 0.0;

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public double getPrice() {

return price;

}

public void setPrice(double price) {

this.price = price;

}

public MenuItem(String n,double p)

{

this.name = n;

this.price = p;

}

public MenuItem()

{

}

abstract boolean isInventory();

}

3. PackagedItem.java:

import java.util.Scanner;

public class PackagedItem extends MenuItem{

String name = "";

double price = 0.0;

int quantity = 0;

public static int counter = 0;

Scanner sc = new Scanner(System.in);

public PackagedItem(String n, double p, int q) {

super(n, p);

// TODO Auto-generated constructor stub

name = n;

price = p;

quantity = q;

counter++;

}

public int getQuantity() {

return quantity;

}

public void setQuantity(int quantity) {

this.quantity = quantity;

}

public PackagedItem() {

// TODO Auto-generated constructor stub

}

public static int getCounter() {

return counter;

}

@Override

public String toString() {

// TODO Auto-generated method stub

return name+" : "+price+" : "+quantity;

}

@Override

boolean isInventory() {

// TODO Auto-generated method stub

return true;

}

}

4. PreparedItem.java:

import java.util.Scanner;

public class PreparedItem extends MenuItem{

String name = "";

double price = 0.0;

long minutes = 0;

Scanner sc = new Scanner(System.in);

public PreparedItem(String n, double p, long min) {

super(n, p);

// TODO Auto-generated constructor stub

name = n;

price = p;

minutes = min;

}

@Override

public String toString() {

// TODO Auto-generated method stub

return name+" : "+price+" : "+minutes;

}

@Override

boolean isInventory() {

// TODO Auto-generated method stub

return false;

}

}

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote