Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

Hello, can some assist with the java code. Note: Most of the code is already completed. I need help the part highted in bold. Below

Hello, can some assist with the java code. Note: Most of the code is already completed. I need help the part highted in bold. Below I have attached the completed (1 primary code. (2 Item class (3 Equipable subclass (4 Consumable sublcass (5 Weapon subclass, and instructions (italics).

Each stop at a space station usually means that we have to unload and reload our cargo bay. Each time we arrive at a station, we must unload our cargo into the station hold for inspection and reload it back into our own ships cargo hold when we wish to leave. This is becoming very tedious and taking away time that we could be plundering in space. We head into the station central to research a way to eliminate this problem. We meet a fellow space pirate who has found a solution to the problem we shared. We sit back and listen as he tells us how to find a workaround.

We must now store our items in a file and read from the file if prompted by the user. You can create a file with the list of items so you never have to type them in again, and you can control the items that are introduced to our world.

Create an algorithm that maximizes the amount of money we will get if we ever come across this situation again. We will call this method ransack and it should accept a large list of items and return the optimal list of items we should grab based on our weight limit.

Items have attributes such as Name, Weight, Value, Durability and ID. (Create an object called Item)

We now classify our items by separating them into 3 distinct categories Equipable, Consumable or Weapon. (You must implement these 3 classes that are subclasses of Item and they must have at least 3 unique attributes in each subclass)

We can carry an unlimited number of items, as long as they dont exceed the maximum weight of the cargo bay, 25 Tons. (Use an ArrayList that checks an items weight before placing it in the cargo hold)

We need to be able to add and remove items by their name.

We need to be able to search for a specific type of item in our cargo bay based on the items name and one of its attributes (Implement 2 searches one on name and another on any attribute you choose).

We need to be able to sort items by their names alphabetically in descending order (A-Z)

We need to know how many of each item we have in our cargo bay and display their attributes.

We must also add a partial search (think of this as a filter option).

(1 PRIMARY BASE CODE

import java.util.*; import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Scanner;

public class Assignment9 { public static void main(String[] args){ new Assignment9(); }

public Assignment9() { Scanner input = new Scanner(System.in); Item temp = new Item(); ArrayList cargohold = new ArrayList(); while(true){ System.out.println("1:Add an item to the cargo hold."); System.out.println("2:Add an item attribute to the cargo hold."); System.out.println("3:Remove an item from the cargo hold."); System.out.println("4:Sort the contents of the cargo hold ."); System.out.println("5:Search for an item."); System.out.println("6:Search for an item by attribute."); System.out.println("7:Display the items in the cargo hold."); System.out.println("8:Perform a partial search for an item."); System.out.println("0:Exit the BlackStar Cargo Hold interface."); int userChoice = input.nextInt(); switch(userChoice){ case 1: addItemB(cargohold, temp); break; case 2: System.out.println("1: Add an equipable attributre."); System.out.println("2: Add a consumble attribute."); System.out.println("3: Add a weapon attribute."); userChoice = input.nextInt(); switch(userChoice){ case 1: temp = new Equipable(); addItem(cargohold, temp); break; case 2: temp = new Consumable(); addItem(cargohold, temp); break; case 3: temp = new Weapon(); addItem(cargohold, temp); break; } break; case 3: removeItem(cargohold); break; case 4: filterItem(cargohold); break; case 5: searchItem(cargohold); break; case 6: searchByAttribute(cargohold, temp); break; case 7: displayItem(cargohold); break; case 8: partialSearch(cargohold); break; case 0: System.out.println("Thank you for using the BlackStar Cargo Hold interface. See you again soon!"); System.exit(0); } System.out.println(); } } private void addItemB(ArrayList cargohold, Item temp) { Scanner input = new Scanner(System.in); if(temp instanceof Item){ System.out.print("Enter the name of the item: "); temp.setName(input.nextLine()); System.out.print("Enter the item ID: "); temp.setID(input.nextLine()); } double getWeight = 0; System.out.print("Enter item weight: "); getWeight = input.nextDouble(); if(getWeight > 25) { System.out.println("Weight Limit Exceed"); return; } else { System.out.println("Enter the item value: "); temp.setValue(input.nextLine()); } System.out.println("Enter the item durability: "); temp.setDurability(input.nextLine()); cargohold.add(temp); }

private void addItem(ArrayList cargohold, Item temp){ Scanner input = new Scanner(System.in); if(temp instanceof Equipable){ System.out.print("Enter equipable item ID: "); temp.setID(input.nextLine()); System.out.print("Enter equipable attribute name: "); temp.setName(input.nextLine()); System.out.print("Enter equipable attribute color: "); ((Equipable)temp).setColor(input.nextLine()); System.out.print("Is this an outfit (Y/N): "); String outfit = input.nextLine(); String y = "y"; if(y.equalsIgnoreCase(outfit.trim())){ ((Equipable)temp).setoutfit(true); } else{ ((Equipable)temp).setoutfit(false); } System.out.print("What is the item size: "); ((Equipable)temp).setSize(input.nextInt()); cargohold.add(temp); } else if(temp instanceof Consumable){ System.out.print("Enter the consumable ID: "); ((Consumable)temp).setID(input.nextLine()); System.out.print("Enter the consumable name: "); ((Consumable)temp).setName(input.nextLine()); System.out.print("Enter the consumable color: "); ((Consumable)temp).setColor(input.nextLine()); System.out.print("Is the consumable a food (Y/N): "); String Food = input.nextLine(); String y = "y"; if(y.equalsIgnoreCase(Food.trim())){ ((Consumable)temp).setFood(true); } else{ ((Consumable)temp).setFood(false); } System.out.print("Is the consumable water(Y/N): "); String Water = input.nextLine(); if(y.equalsIgnoreCase(Water.trim())){ ((Consumable)temp).setWater(true); } else{ ((Consumable)temp).setWater(false); } System.out.print("Is the consumable healthy (Y/N): "); String Healthy = input.nextLine(); if(y.equalsIgnoreCase(Healthy.trim())){ ((Consumable)temp).setHealthy(true); } else{ ((Consumable)temp).setHealthy(false); } cargohold.add(temp); } else{ System.out.print("Enter weapon ID: "); ((Weapon)temp).setID(input.nextLine()); System.out.print("What is the weapon name: "); ((Weapon)temp).setName(input.nextLine()); System.out.print("Enter fungus color: "); ((Weapon)temp).setColor(input.nextLine());

System.out.print("Is it a projectile (Y/N): "); String Projectile = input.nextLine(); String y = "y"; if(y.equalsIgnoreCase(Projectile.trim())){ ((Weapon)temp).setProjectile(true); } else{ ((Weapon)temp).setProjectile(false); } cargohold.add(temp); } }

private void removeItem(ArrayList cargohold){ Scanner input = new Scanner(System.in); System.out.print("Name of item to Remove: "); String item = input.nextLine(); for(Item x: cargohold){ if (x.getName().equals(item)) { cargohold.remove(x); break; } } } private void filterItem(ArrayList cargohold) { for (int i = 0; i < cargohold.size() - 1; i++ ) for (int j = 0; j < cargohold.size() - 1 - i; j++) if (cargohold.get(j).getName().compareToIgnoreCase(cargohold.get(j+1).getName()) > 0) { cargohold.add(j+1, cargohold.remove(j)); } System.out.println("Item NOT found"); } private void searchItem(ArrayList cargohold) { Scanner input = new Scanner(System.in); int itemfound = 0; System.out.print("Search items: "); String item = input.nextLine();

for (Item x : cargohold) { if (x.getName().equalsIgnoreCase(item)) { System.out.println(x.getName() + " found"); itemfound = 1; break; } } if(itemfound == 0){ System.out.println("Item NOT found"); } } private void searchByAttribute (ArrayList cargohold, Item temp){ Scanner input = new Scanner(System.in); System.out.println("What the is the item attribute?"); int n; System.out.println("Enter name of item to search: "); if ((n = cargohold.indexOf(new Item(input.nextLine()))) == -1) System.out.println("Item not found"); else System.out.println("Item found at location " + n); int t; System.out.println("Enter the attribute of item to search: "); if ((t = cargohold.indexOf(new Item(input.nextLine()))) == -1) System.out.println("Item not found"); else System.out.println("Item found at location " + t);

} private void displayItem(ArrayList cargohold) { for (Item x : cargohold) { System.out.println("Item ID " + x.getID() + " Item Name " + x.getName()); } } private void partialSearch(ArrayList cargohold) { boolean flagFound = false; System.out.println("Enter name of item to search: "); Scanner input = new Scanner(System.in); String partialName = input.nextLine(); for (int i = 0; i < cargohold.size(); i++) if (cargohold.get(i).getName().contains(partialName)) { System.out.println("Found " + cargohold.get(i).getName() + " at location " + i); flagFound = true; } if (!flagFound) System.out.println("The items are not found"); } }

(2 ITEM CLASS

public class Item_3 { String name; String ID; String category; Double weight; String value; String durability; public String getName() { return name; }

public void setName(String name) { this.name = name; } public String getID() { return ID; }

public void setID(String ID) { this.ID = ID; } public Double getWeight(){ return weight; } public void setWeight(Double weight){ this.weight = weight; } public String getValue(){ return value; } public void setValue(String value){ this.value = value; } public String getDurability(){ return durability; } public void setDurability(String durability){ this.durability = durability; }

//Create accessors and mutators for your triats. public void setCategory(String category) { this.category = category; } public String getCategory() { return category; } }

(3 EQUIPABLE SUBCLASS

public class Equipable extends Item { // instance variables - replace the example below with your own private String Color; boolean outfit; private int Size; public String getColor() { return Color; }

public void setColor(String Color) { this.Color = Color; }

public boolean isoutfit() { return outfit; }

public void setoutfit(boolean outfit) { this.outfit = outfit; }

public int getSize() { return Size; }

public void setSize(int Size) { this.Size = Size; } }

(4 CONSUMABLE SUBCLASS

public class Consumable extends Item { String Color; public boolean food; public boolean water; public boolean healthy;

public Consumable() {

}

// Create an overridden constructor here public Consumable(boolean food, boolean water, boolean healthy) { this.food = food; this.water = water; this.healthy = healthy; }

public boolean isFood() { return food; }

public void setFood(boolean food) { this.food = food; } public boolean isWater() { return water; }

public void setWater(boolean water) { this.water = water; } public String getColor() { return Color; }

public void setColor(String Color) { this.Color = Color; } public boolean isHealthy() { return healthy; }

public void setHealthy(boolean healthy) { this.healthy = healthy; } void Name(){ super.getName(); } void ID(){ super.getID(); } }

(4 WEAPON SUBCLASS

public class Weapon extends Item { String Color; public boolean projectile;

public Weapon() {

}

// Create an overridden constructor here public Weapon(boolean projectile) { this.projectile = projectile; }

public boolean isProjectile() { return projectile; }

public void setProjectile(boolean projectile) { this.projectile = projectile; } public String getColor() { return Color; }

public void setColor(String Color) { this.Color = Color; } //from super void Name(){ super.getName(); } void ID(){ super.getID(); } }

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image_2

Step: 3

blur-text-image_3

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

Power Bi And Azure Integrating Cloud Analytics For Scalable Solutions

Authors: Kiet Huynh

1st Edition

B0CMHKB85L, 979-8868959943

More Books

Students also viewed these Databases questions