asked 2.1k views
5 votes
You have been hired to create a Grilled Rump Steak ordering app. The app should have a class named GrilledRumpSteak which contains data about a single rump. The GrilledRumpSteak class should include the following:

▪ Private instance variables to store the size of the rump (either small, medium, or large), the number of salsa toppings, the number of tomato toppings, and the number of mushroom toppings.
▪ Constructor(s) that set all the instance variables.
▪ Public methods to get and set the instance variables.
▪ A public method named calcCost( ) that returns the cost of the rump as a double. The Grilled
Rump Steak cost is determined by: Large: R200 + 30 per topping Medium: R150 + R20 per
topping Small: R120 + R15 per topping
▪ public method named getDescription( ) that returns a String containing the rump size, quantity
of each topping.
Write test code to create several grilled rump steaks and output their descriptions. For example, a large rump with one salsa, one tomato, and two mushroom toppings should cost a total of R320. Now Create a GrilledRumpSteakOrder class that allows up to three grilled rump steaks to be saved in order. Each grilled rump steak saved should be a GrilledRumpSteak object. Create a method calcTotal() that returns the cost of the order

1 Answer

3 votes


\boxed{ \red{ \sf Answer}}

Here's an implementation of the GrilledRumpSteak class with the required features:

```java

public class GrilledRumpSteak {

private String size;

private int salsaToppings;

private int tomatoToppings;

private int mushroomToppings;

public GrilledRumpSteak(String size, int salsaToppings, int tomatoToppings, int mushroomToppings) {

this.size = size;

this.salsaToppings = salsaToppings;

this.tomatoToppings = tomatoToppings;

this.mushroomToppings = mushroomToppings;

}

public String getSize() {

return size;

}

public void setSize(String size) {

this.size = size;

}

public int getSalsaToppings() {

return salsaToppings;

}

public void setSalsaToppings(int salsaToppings) {

this.salsaToppings = salsaToppings;

}

public int getTomatoToppings() {

return tomatoToppings;

}

public void setTomatoToppings(int tomatoToppings) {

this.tomatoToppings = tomatoToppings;

}

public int getMushroomToppings() {

return mushroomToppings;

}

public void setMushroomToppings(int mushroomToppings) {

this.mushroomToppings = mushroomToppings;

}

public double calcCost() {

double cost;

switch (size) {

case "Large":

cost = 200 + salsaToppings * 30 + tomatoToppings * 30 + mushroomToppings * 30;

break;

case "Medium":

cost = 150 + salsaToppings * 20 + tomatoToppings * 20 + mushroomToppings * 20;

break;

default:

cost = 120 + salsaToppings * 15 + tomatoToppings * 15 + mushroomToppings * 15;

}

return cost;

}

public String getDescription() {

return size + " rump with " + salsaToppings + " salsa toppings, " + tomatoToppings + " tomato toppings, and " + mushroomToppings + " mushroom toppings";

}

}

```

And here's an implementation of the GrilledRumpSteakOrder class that allows up to three grilled rump steaks to be saved in order:

```java

public class GrilledRumpSteakOrder {

private GrilledRumpSteak[] rumpSteaks;

private int count;

public GrilledRumpSteakOrder() {

rumpSteaks = new GrilledRumpSteak[3];

count = 0;

}

public void addRumpSteak(GrilledRumpSteak rumpSteak) {

if (count < 3) {

rumpSteaks[count] = rumpSteak;

count++;

}

}

public double calcTotal() {

double total = 0;

for (int i = 0; i < count; i++) {

total += rumpSteaks[i].calcCost();

}

return total;

}

}

```

To test the classes, we can create several GrilledRumpSteak objects and output their descriptions, then create a GrilledRumpSteakOrder object, add the rump steaks to it, and calculate the total cost of the order:

```java

public static void main(String[] args) {

GrilledRumpSteak rump1 = new GrilledRumpSteak("Large", 1, 1, 2);

GrilledRumpSteak rump2 = new GrilledRumpSteak("Medium", 2, 0, 1);

GrilledRumpSteak rump3 = new GrilledRumpSteak("Small", 0, 3, 0);

System.out.println(rump1.getDescription()); // Output: Large rump with 1 salsa toppings, 1 tomato toppings, and 2 mushroom toppings

System.out.println(rump2.getDescription()); // Output: Medium rump with 2 salsa toppings, 0 tomato toppings, and 1 mushroom toppings

System.out.println(rump3.getDescription()); // Output: Small rump with 0 salsa toppings, 3 tomato toppings, and 0 mushroom toppings

GrilledRumpSteakOrder order = new GrilledRumpSteakOrder();

order.addRumpSteak(rump1);

order.addRumpSteak(rump2);

order.addRumpSteak(rump3);

System.out.println("Total cost: R" + order.calcTotal());

answered
User Vuzun
by
7.6k points