Question

In: Computer Science

Project part 3: Part Three: Complete the addShip() Method 1. In the Driver.java file, see below...

Project part 3:

Part Three: Complete the addShip() Method

1. In the Driver.java file, see below for where you will add code to finish the addShip() method.

// Add a New Ship public static void addShip() {

// complete this method

}

2. Next, review the required functionality of the “Add Ship” menu option below.

Menu Option Validation Check(s) Functionality
Add Ship - Ensures ship does not already exist in our system - Ensures all class variables are populated
Adds ship to system

3. Add Ship Method: Write the code for the addShip() method. When your code is complete, test the output. Be sure that the completed method does the following:

a. Adds a new Ship object b. Includes all class variables c. Updates appropriate ArrayList

TIP: You can refer to the Ship.java class constructor to make sure you have included all variables.

Here is the given ship code:

public class Ship {

// Class Variables
private String shipName;
private int roomBalcony;
private int roomOceanView;
private int roomSuite;
private int roomInterior;
private boolean inService;

// Constructor - default
Ship() {
}

// Constructor - full
Ship(String tName, int tBalcony, int tOceanView,
int tSuite, int tInterior, boolean tInService) {
shipName = tName;
roomBalcony = tBalcony;
roomOceanView = tOceanView;
roomSuite = tSuite;
roomInterior = tInterior;
inService = tInService;
}

// Accessors
public String getShipName() {
return shipName;
}

public int getRoomBalcony() {
return roomBalcony;
}

public int getRoomOceanView() {
return roomOceanView;
}

public int getRoomSuite() {
return roomSuite;
}

public int getRoomInterior() {
return roomInterior;
}

public boolean getInService() {
return inService;
}

// Mutators
public void setShipName(String tVar) {
shipName = tVar;
}

public void setRoomBalcony(int tVar) {
roomBalcony = tVar;
}

public void setRoomOceanView(int tVar) {
roomOceanView = tVar;
}

public void setRoomSuite(int tVar) {
roomSuite = tVar;
}

public void setRoomInterior(int tVar) {
roomInterior = tVar;
}

public void setInService(boolean tVar) {
inService = tVar;
}

// print method
public void printShipData() {
int spaceCount;
String spaces = "";
spaceCount = 20 - shipName.length();

for (int i = 1; i <= spaceCount; i++) {
spaces = spaces + " ";
}

System.out.println(shipName + spaces + roomBalcony + "\t" +
roomOceanView + "\t" + roomSuite + "\t" +
roomInterior + "\t\t" + inService);
}

// method added to print ship's name vice memory address
@Override
public String toString() {
return shipName;
}
}

And here is the driver code that needs to be completed:

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

import static java.lang.Integer.parseInt;

public class Driver {

// class variables (add more as needed)
private static ArrayList<Ship> shipList = new ArrayList();
private static ArrayList<Cruise> cruiseList = new ArrayList();
private static ArrayList<Passenger> passengerList = new ArrayList();


public static void main(String[] args) {

initializeShipList(); // initial ships
initializeCruiseList(); // initial cruises
initializePassengerList(); // initial passengers

// add loop and code here that accepts and validates user input
// and takes the appropriate action. include appropriate
// user feedback and redisplay the menu as needed


}

// hardcoded ship data for testing
// Initialize ship list
public static void initializeShipList() {
add("Candy Cane", 20, 40, 10, 60, true);
add("Peppermint Stick", 10, 20, 5, 40, true);
add("Bon Bon", 12, 18, 2, 24, false);
add("Candy Corn", 12, 18, 2, 24, false);
}

// hardcoded cruise data for testing
// Initialize cruise list
public static void initializeCruiseList() {
Cruise newCruise = new Cruise("Southern Swirl", "Candy Cane", "Miami", "Cuba", "Miami");
cruiseList.add(newCruise);
}

// hardcoded cruise data for testing
// Initialize passenger list
public static void initializePassengerList() {
Passenger newPassenger1 = new Passenger("Neo Anderson", "Southern Swirl", "STE");
passengerList.add(newPassenger1);

Passenger newPassenger2 = new Passenger("Trinity", "Southern Swirl", "STE");
passengerList.add(newPassenger2);

Passenger newPassenger3 = new Passenger("Morpheus", "Southern Swirl", "BAL");
passengerList.add(newPassenger3);
}

// custom method to add ships to the shipList ArrayList
public static void add(String tName, int tBalcony, int tOceanView,
int tSuite, int tInterior, boolean tInService) {
Ship newShip = new Ship(tName, tBalcony, tOceanView, tSuite, tInterior, tInService);
shipList.add(newShip);
}


public static void printShipList(String listType) {
// printShipList() method prints list of ships from the
// shipList ArrayList. There are three different outputs
// based on the listType String parameter:
// name - prints a list of ship names only
// active - prints a list of ship names that are "in service"
// full - prints tabbed data on all ships

if (shipList.size() < 1) {
System.out.println("\nThere are no ships to print.");
return;
}
if (listType == "name") {
System.out.println("\n\nSHIP LIST - Name");
for (int i = 0; i < shipList.size(); i++) {
System.out.println(shipList.get(i));
}
} else if (listType == "active") {
System.out.println("\n\nSHIP LIST - Active");

System.out.println("-----------------------------------------------");
System.out.println(" Number of Rooms In");
System.out.print("SHIP NAME Bal OV Ste Int Service");
System.out.println("\n-----------------------------------------------");
for (Ship eachShip: shipList) {
if(eachShip.getType()==true)
eachShip.printShipData();
}


} else if (listType == "full") {
System.out.println("\n\nSHIP LIST - Full");
System.out.println("-----------------------------------------------");
System.out.println(" Number of Rooms In");
System.out.print("SHIP NAME Bal OV Ste Int Service");
System.out.println("\n-----------------------------------------------");
for (Ship eachShip: shipList)
eachShip.printShipData();

} else
System.out.println("\n\nError: List type not defined.");
}

public static void printCruiseList(String listType) {
if (cruiseList.size() < 1) {
System.out.println("\nThere are no cruises to print.");
return;
}
if (listType == "list") {
System.out.println("\n\nCRUISE LIST");
for (int i=0; i < cruiseList.size(); i++) {
System.out.println(cruiseList.get(i));
}
} else if (listType == "details") {
System.out.println("\n\nCRUISE LIST - Details");
System.out.println("------------------------------------------------------------------------------------------");
System.out.println(" |----------------------PORTS-----------------------|");
System.out.print("CRUISE NAME SHIP NAME DEPARTURE DESTINATION RETURN");
System.out.println("\n-----------------------------------------------------------------------------------------");
for (Cruise eachCruise: cruiseList)
eachCruise.printCruiseDetails();
} else
System.out.println("\n\nError: List type not defined.");
}

public static void printPassengerList() {
if (passengerList.size() < 1) {
System.out.println("\nThere are no passengers to print.");
return;
}
System.out.println("\n\nPASSENGER LIST");
System.out.println("-----------------------------------------------------");
System.out.print("PASSENGER NAME CRUISE ROOM TYPE");
System.out.println("\n-----------------------------------------------------");
for (Passenger eachPassenger: passengerList)
eachPassenger.printPassenger();
}

// display text-based menu
public static void displayMenu() {

System.out.println("\n\n");
System.out.println("\t\t\tLuxury Ocean Cruise Outings");
System.out.println("\t\t\t\t\tSystem Menu\n");
System.out.println("[1] Add Ship [A] Print Ship Names");
System.out.println("[2] Edit Ship [B] Print Ship In Service List");
System.out.println("[3] Add Cruise [C] Print Ship Full List");
System.out.println("[4] Edit Cruise [D] Print Cruise List");
System.out.println("[5] Add Passenger [E] Print Cruise Details");
System.out.println("[6] Edit Passenger [F] Print Passenger List");
System.out.println("[x] Exit System");
System.out.println("\nEnter a menu selection: ");
}

// Add a New Ship
public static void addShip() {

// complete this method

}

// Edit an existing ship
public static void editShip() {

Solutions

Expert Solution

/******************************ShipDriver.java*******************/

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

import Cruise.Cruise;

import static java.lang.Integer.parseInt;

public class ShipDriver {

// class variables (add more as needed)
   private static ArrayList<Ship> shipList;
   private static ArrayList<Cruise> cruiseList;
   private static ArrayList<Passenger> passengerList;

   public static void main(String[] args) {

       shipList = new ArrayList<>();
       cruiseList = new ArrayList<>();
       passengerList = new ArrayList<>();
       initializeShipList(); // initial ships
       initializeCruiseList(); // initial cruises
       initializePassengerList(); // initial passengers

// add loop and code here that accepts and validates user input
// and takes the appropriate action. include appropriate
// user feedback and redisplay the menu as needed

   }

// hardcoded ship data for testing
// Initialize ship list
   public static void initializeShipList() {
       add("Candy Cane", 20, 40, 10, 60, true);
       add("Peppermint Stick", 10, 20, 5, 40, true);
       add("Bon Bon", 12, 18, 2, 24, false);
       add("Candy Corn", 12, 18, 2, 24, false);
   }

// hardcoded cruise data for testing
// Initialize cruise list
   public static void initializeCruiseList() {
       Cruise newCruise = new Cruise("Southern Swirl", "Candy Cane", "Miami", "Cuba", "Miami");
       cruiseList.add(newCruise);
   }

// hardcoded cruise data for testing
// Initialize passenger list
   public static void initializePassengerList() {
       Passenger newPassenger1 = new Passenger("Neo Anderson", "Southern Swirl", "STE");
       passengerList.add(newPassenger1);

       Passenger newPassenger2 = new Passenger("Trinity", "Southern Swirl", "STE");
       passengerList.add(newPassenger2);

       Passenger newPassenger3 = new Passenger("Morpheus", "Southern Swirl", "BAL");
       passengerList.add(newPassenger3);
   }

   // custom method to add ships to the shipList ArrayList
   public static void add(String tName, int tBalcony, int tOceanView, int tSuite, int tInterior, boolean tInService) {
       Ship newShip = new Ship(tName, tBalcony, tOceanView, tSuite, tInterior, tInService);
       shipList.add(newShip);
   }

   public static void printShipList(String listType) {
       // printShipList() method prints list of ships from the
       // shipList ArrayList. There are three different outputs
       // based on the listType String parameter:
       // name - prints a list of ship names only
       // active - prints a list of ship names that are "in service"
       // full - prints tabbed data on all ships

       if (shipList.size() < 1) {
           System.out.println("\nThere are no ships to print.");
           return;
       }
       if (listType == "name") {
           System.out.println("\n\nSHIP LIST - Name");
           for (int i = 0; i < shipList.size(); i++) {
               System.out.println(shipList.get(i));
           }
       } else if (listType == "active") {
           System.out.println("\n\nSHIP LIST - Active");

           System.out.println("-----------------------------------------------");
           System.out.println(" Number of Rooms In");
           System.out.print("SHIP NAME Bal OV Ste Int Service");
           System.out.println("\n-----------------------------------------------");
           for (Ship eachShip : shipList) {
               if (eachShip.getType() == true)
                   eachShip.printShipData();
           }

       } else if (listType == "full") {
           System.out.println("\n\nSHIP LIST - Full");
           System.out.println("-----------------------------------------------");
           System.out.println(" Number of Rooms In");
           System.out.print("SHIP NAME Bal OV Ste Int Service");
           System.out.println("\n-----------------------------------------------");
           for (Ship eachShip : shipList)
               eachShip.printShipData();

       } else
           System.out.println("\n\nError: List type not defined.");
   }

   public static void printCruiseList(String listType) {
       if (cruiseList.size() < 1) {
           System.out.println("\nThere are no cruises to print.");
           return;
       }
       if (listType == "list") {
           System.out.println("\n\nCRUISE LIST");
           for (int i = 0; i < cruiseList.size(); i++) {
               System.out.println(cruiseList.get(i));
           }
       } else if (listType == "details") {
           System.out.println("\n\nCRUISE LIST - Details");
           System.out.println(
                   "------------------------------------------------------------------------------------------");
           System.out.println(" |----------------------PORTS-----------------------|");
           System.out.print("CRUISE NAME SHIP NAME DEPARTURE DESTINATION RETURN");
           System.out.println(
                   "\n-----------------------------------------------------------------------------------------");
           for (Cruise eachCruise : cruiseList)
               eachCruise.printCruiseDetails();
       } else
           System.out.println("\n\nError: List type not defined.");
   }

   public static void printPassengerList() {
       if (passengerList.size() < 1) {
           System.out.println("\nThere are no passengers to print.");
           return;
       }
       System.out.println("\n\nPASSENGER LIST");
       System.out.println("-----------------------------------------------------");
       System.out.print("PASSENGER NAME CRUISE ROOM TYPE");
       System.out.println("\n-----------------------------------------------------");
       for (Passenger eachPassenger : passengerList)
           eachPassenger.printPassenger();
   }

   // display text-based menu
   public static void displayMenu() {

       System.out.println("\n\n");
       System.out.println("\t\t\tLuxury Ocean Cruise Outings");
       System.out.println("\t\t\t\t\tSystem Menu\n");
       System.out.println("[1] Add Ship [A] Print Ship Names");
       System.out.println("[2] Edit Ship [B] Print Ship In Service List");
       System.out.println("[3] Add Cruise [C] Print Ship Full List");
       System.out.println("[4] Edit Cruise [D] Print Cruise List");
       System.out.println("[5] Add Passenger [E] Print Cruise Details");
       System.out.println("[6] Edit Passenger [F] Print Passenger List");
       System.out.println("[x] Exit System");
       System.out.println("\nEnter a menu selection: ");
   }

   // Add a New Ship
   public static void addShip() {

       Scanner scan = new Scanner(System.in);

       System.out.print("Enter Ship Name: ");
       String shipName = scan.nextLine();
       System.out.print("Balcony: ");
       int balcony = scan.nextInt();
       System.out.print("Ocean View:");
       int oceanView = scan.nextInt();
       System.out.print("Room Suite: ");
       int roomSuite = scan.nextInt();
       System.out.print("Room Interior: ");
       int roomInterior = scan.nextInt();
       System.out.print("In Service: ");
       boolean inService = scan.nextBoolean();
       scan.nextLine();

       shipList.add(new Ship(shipName, balcony, oceanView, roomSuite, roomInterior, inService));

   }

   // Edit an existing ship
   public static void editShip() {

       Scanner scan = new Scanner(System.in);
       System.out.print("Enter shipName: ");
       String shipName = scan.nextLine();
       Ship ship1 = null;
       for (Ship ship : shipList) {

           if (ship.getShipName().equalsIgnoreCase(shipName)) {

               ship1 = ship;
           }
       }

       System.out.print("Balcony: ");
       int balcony = scan.nextInt();
       System.out.print("Ocean View:");
       int oceanView = scan.nextInt();
       System.out.print("Room Suite: ");
       int roomSuite = scan.nextInt();
       System.out.print("Room Interior: ");
       int roomInterior = scan.nextInt();
       System.out.print("In Service: ");
       boolean inService = scan.nextBoolean();
       scan.nextLine();

       ship1.setRoomBalcony(balcony);
       ship1.setRoomOceanView(oceanView);
       ship1.setRoomSuite(roomSuite);
       ship1.setRoomInterior(roomInterior);
       ship1.setInService(inService);
   }
}

Please let me know if you have any doubt or modify the answer, Thanks:)


Related Solutions

Project Part 4: Part Four: Complete the addCruise() Method 1. In the Driver.java file, see below...
Project Part 4: Part Four: Complete the addCruise() Method 1. In the Driver.java file, see below for where you will add code to finish the addCruise() method. // Adda New Cruise public static void addCruise() { // complete this method } 2. Next, review the required functionality of the “Add Cruise” menu option below. Menu Option Validation Check(s) Functionality Add Cruise - Ensures cruise does not already exist in our system - Ensures all class variables are populated Adds cruise...
ACC 3010 Project 3 Part 1 Complete the attached Depreciation Schedules for each of the planned...
ACC 3010 Project 3 Part 1 Complete the attached Depreciation Schedules for each of the planned asset purchases using the provided information regarding cost, useful life, and selected method. You should do only the first 4 years for the building and do the complete useful life depreciation schedules for all of the other assets. *SHOW WORK FOR ALL CALCULATIONS PLANNED ASSET ACQUISITIONS Reminder that the company’s fiscal year is July 1 through June 30. Asset Cost Useful life Salvage Value...
To complete this assignment, choose one of the THREE topics of your choice (see below), do...
To complete this assignment, choose one of the THREE topics of your choice (see below), do a thorough research and analysis on the topic, write it up, and finally submit it as an attached document. 6. Here are the THREE topics and all you need is to pick the one that is of interest to you : (i) China and the US have been in serious disputes and disagreements in areas of international trade and commerce. Present a background on...
To complete this assignment, choose one of the THREE topics of your choice (see below), do...
To complete this assignment, choose one of the THREE topics of your choice (see below), do a thorough research and analysis on the topic, write it up, and finally submit it as an attached document. 6. Here are the THREE topics and all you need is to pick the one that is of interest to you: (i) China and the US have been in serious disputes and disagreements in areas of international trade and commerce. Present a background on the...
Please see attached file and the link below and respond to following questions: 1. Is climate...
Please see attached file and the link below and respond to following questions: 1. Is climate change really a problem? 2. How much investment should firms really put into reducing emissions. 3. From a strategic standpoint, what are the practical implications of these changes/predicted changes? Sea transport has a relatively green image because ships emit less carbon dioxide per tonne and per kilometre than rail, truck or air transport. Yet, given its scale and rapid growth, it’s a major source...
Please complete it in C++ Part 1: Stack Create a New Project and give your project...
Please complete it in C++ Part 1: Stack Create a New Project and give your project a name, say Lab6a. Download the given source files StackArr.h and StackArr.cpp from Moodle and save them to your Lab6a folder. Also import them to your project. Add a source file to your project, called StackMain.cpp and implement your program according to the following: Prompt the user to input a program filename. Open the file and check if every right brace (i.e. }), bracket...
Part I– Check your file system Step 1: Execute the ls /dev/sd* command to see the...
Part I– Check your file system Step 1: Execute the ls /dev/sd* command to see the current hard disk devices. Step 2. Execute the fdisk -l command to list the current hard disk partitions Step 3. Execute the parted -l command to list the current hard disk partition table. Part II– Create a new virtual disk Step 1. In the Oracle VM VirtualBox Manager program, create a new virtual hard disk with the size of 200 MB, and name it...
1. As a part of a quality improvement initiative , ABC co. employees complete a three...
1. As a part of a quality improvement initiative , ABC co. employees complete a three day training program on teaming and a two day training program on problem solving .The manager of quality improvement has requested that at least 8 training programs on teaming and at least 10 training programs on problem solving be offered during the next six months. In addition , senior-level management has specified that at least 25 total training program must be offered during this...
Please construct a code following the instructions below Part 3 – infixEvaluator method You are required...
Please construct a code following the instructions below Part 3 – infixEvaluator method You are required to implement the following method:   public static double infixEvaluator(String line) This function first needs to tokenize the input expression (in the form of a String and stored in input variable “line”). You can tokenize the input expression by creating an object of StringSplitter and passing it the String as follows. StringSplitter uses a queue to accomplish the tokenization (see the class for details). StringSplitter...
Part 1: The three (3) Key aspects of a Team As a group, identify the three...
Part 1: The three (3) Key aspects of a Team As a group, identify the three (3) key aspects of a team. What are their characteristics? As a group, which of the teams do you mostly identify with and why? Support your presentation with appropriate references. Use APA format throughout. Part 2: Rewarding Team Work: Develop power point presentation on how to reward team work. As a team, why is it important to reward term work?
ADVERTISEMENT
ADVERTISEMENT
ADVERTISEMENT