Question: on the following script this is being requested but i am unsure how to complete... There is no need to have a separate prompt for

on the following script this is being requested but i am unsure how to complete...

  • There is no need to have a separate prompt for the number of fruits. That should be an inherent part of the child class.
  • For the Fruit Basket, there is no reason to ask for nuts since they cannot be part of that basket, they are only a part of the Sweet Basket.

Enter number of fruits (e.g., 6 for S, 9 for M, 15 for L): 6 (take away) Does basket have citrus fruits? (e.g., 1 for yes, 2 for no): 2 Does basket have nuts? (e.g., 1 for yes, 2 for no): 2

  • The main () should contain the driver information. It should not be sent to another method called driver/run.
  • Some of the coding in the driver/run coding should be located in the parent-child methods.
  • The program is not instantiated by the program name. It must be instantiated with Gift.

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

package FruitSweetBasket;

import java.util.ArrayList; import java.util.Scanner;

public class CMIS242ASG2AfetseM {

// parent class class Gift { private String orderNumber; private String size; private int numFruits; private double price;

public Gift(String orderNumber, String size, int numFruits, int citrusFruits, int nuts) { this.orderNumber = orderNumber; this.size = size; this.numFruits = numFruits; this.price = calculatePrice(size, numFruits, citrusFruits, nuts); }

public String getOrderNumber() { return orderNumber; }

public String getSize() { return size; }

public void setSize(String size) { this.size = size; }

public int getNumFruits() { return numFruits; }

public void setNumFruits(int numFruits) { this.numFruits = numFruits; }

public double getPrice() { return price; }

public double calculatePrice(String size, int numFruits, int citrusFruits, int nuts) {

if (size.equalsIgnoreCase("S")) { price = 19.99; } else if (size.equalsIgnoreCase("M")) { price = 29.99; } else if (size.equalsIgnoreCase("L")) { price = 39.99; }

if (citrusFruits == 1) { price += 5.99; }

if (nuts == 1) { price += 4.49; }

return price; }

public void display() { System.out.println("Order number: " + orderNumber); System.out.println("Size: " + size); System.out.println("Number of fruits: " + numFruits); System.out.println("Price: " + "$" +String.format("%.2f", price)); } }

//child class FruitBasket class FruitBasket extends Gift { private int citrusFruits;

public FruitBasket(String orderNumber, String size, int numFruits, int citrusFruits, int nuts) { super(orderNumber, size, numFruits, citrusFruits, nuts); this.citrusFruits = citrusFruits; }

public int getCitrusFruits() { return citrusFruits; }

public void setCitrusFruits(int citrusFruits) { this.citrusFruits = citrusFruits; } //overriding method @Override public void display() { System.out.println(" Fruit Basket"); System.out.println("Order number: " + super.getOrderNumber()); System.out.println("Size: " + super.getSize()); System.out.println("Number of fruits: " + super.getNumFruits()); System.out.println("Price: " + "$" +String.format("%.2f", super.getPrice())); } }

//child class SweetsBasket class SweetsBasket extends Gift { private int nuts;

public SweetsBasket(String orderNumber, String size, int numFruits, int citrusFruits, int nuts) { super(orderNumber, size, numFruits, citrusFruits, nuts); this.nuts = nuts; }

public int getNuts() { return nuts; }

public void setNuts(int nuts) { this.nuts = nuts; } //overriding method @Override public void display() { System.out.println(" Sweet Basket"); System.out.println("Order number: " + super.getOrderNumber()); System.out.println("Size: " + super.getSize()); System.out.println("Number of fruits: " + super.getNumFruits()); System.out.println("Price: " + "$" +String.format("%.2f", super.getPrice())); } }

//ArrayList to hold orders generated ArrayList orderList = new ArrayList(); FruitBasket f; SweetsBasket s;

public void run() { boolean quit = false; Scanner scanner = new Scanner(System.in); while (!quit) { System.out.println("********** GIFT ORDER MENU **********"); System.out.println("Please Select From the Following Menu:"); System.out.println("1. Add a gift order"); System.out.println("2. Change a gift order"); System.out.println("3. Display a single gift order"); System.out.println("4. Display all gift orders"); System.out.println("9. Quit");

String input = scanner.nextLine(); switch (input) { case "1": addGiftOrder(scanner); break; case "2": changeGiftOrder(scanner); break; case "3": displaySingleGiftOrder(scanner); break; case "4": displayAllGiftOrders(); break; case "9": System.out.println("Thank You for using the program. Enjoy Your Day!"); quit = true; break; } } }

//add gift public void addGiftOrder(Scanner scanner) { String orderNumber; while (true) { System.out.print(" Please enter order number [FB or SB for type of gift and three integers] : "); orderNumber = scanner.nextLine(); if(orderNumber.length()==5){ if(orderNumber.substring(0,2).equalsIgnoreCase("FB") || orderNumber.substring(0,2).equalsIgnoreCase("SB")){ try { Integer.parseInt(orderNumber.substring(2, 5)); break; } catch (Exception e) { System.out.println("Error! Please enter three integers"); } }else{ System.out.println("Error! Type FB or SB followed by three integers"); } }else{ System.out.println("Error! More than 5 Characters! Type FB or SB followed by three integers"); } }

System.out.println("Enter size (e.g., S, M, L):"); String size = scanner.nextLine(); System.out.println("Enter number of fruits (e.g., 6 for S, 9 for M, 15 for L):"); int numFruits = scanner.nextInt(); System.out.println("Does basket have citrus fruits? (e.g., 1 for yes, 2 for no):"); int citrusFruits = scanner.nextInt(); System.out.println("Does basket have nuts? (e.g., 1 for yes, 2 for no):"); int nuts = scanner.nextInt(); scanner.nextLine();

if(orderNumber.charAt(0)=='F'||orderNumber.charAt(0)=='f'){ f = new FruitBasket(orderNumber, size, numFruits, citrusFruits, nuts); orderList.add(f); }else{ s = new SweetsBasket(orderNumber, size, numFruits, citrusFruits, nuts); orderList.add(s); } System.out.println(" Thank You for Adding a Gift!"); }

//change gift public void changeGiftOrder(Scanner scanner) { if(orderList.size() == 0) { System.out.println("No gift has been ordered yet"); return; } System.out.println("Please enter order number to change:"); String orderNumber = scanner.nextLine(); for (Gift gift : orderList) { if (gift.getOrderNumber().equals(orderNumber)) { System.out.println("Enter new size (e.g., S, M, L):"); String size = scanner.nextLine(); System.out.println("Enter new number of fruits (e.g., 6 for S, 9 for M, 15 for L):"); int numFruits = scanner.nextInt(); System.out.println("Does basket now have citrus fruits? (e.g., 1 for yes, 2 for no):"); int citrusFruits = scanner.nextInt(); System.out.println("Does basket now have nuts? (e.g., 1 for yes, 2 for no):"); int nuts = scanner.nextInt(); scanner.nextLine();

gift.setSize(size); gift.setNumFruits(numFruits); gift.calculatePrice(size, numFruits, citrusFruits, nuts); for (Gift gift1 : orderList) { if (gift1.getOrderNumber().equals(orderNumber)) { if(gift1 instanceof FruitBasket) gift1.display(); else if(gift1 instanceof SweetsBasket) gift1.display(); } } } } }

//display single gift public void displaySingleGiftOrder(Scanner scanner) { if(orderList.size() == 0) { System.out.println("No gift has been ordered yet"); return; } System.out.println("Please enter order number to display:"); String orderNumber = scanner.nextLine(); for (Gift gift : orderList) { if (gift.getOrderNumber().equals(orderNumber)) { if(gift instanceof FruitBasket) gift.display(); else if(gift instanceof SweetsBasket) gift.display(); } } } //display all gifts public void displayAllGiftOrders() { for(Gift g : orderList){ if(g instanceof FruitBasket) g.display(); else if(g instanceof SweetsBasket) g.display(); } }

public static void main(String[] args) {

FruitSweetBasket driver = new FruitSweetBasket (); driver.run(); } }

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Programming Questions!