on the following script this is being requested but i am unsure how to complete... There is
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 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
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(); } }
Income Tax Fundamentals 2013
ISBN: 9781285586618
31st Edition
Authors: Gerald E. Whittenburg, Martha Altus Buller, Steven L Gill