Java Global Assignment

profileCaptainKD
Project3Instructions.html.zip

Project 3 Instructions.html

Competency

In this project, you will demonstrate your mastery of the following competency:

  • Write programs using object-oriented conventions in accordance with industry standard best practices

Scenario

Global Rain logo

You work for Global Rain, a software engineering company that specializes in custom software design and development. As a junior software developer, you are part of a software development team at Global Rain that collaborates to create software solutions for entrepreneurs, businesses and government agencies around the world.

Your Global Rain software development team has been asked to develop a menu-driven system for the Luxury Ocean Cruise Outings company. This company coordinates cruise bookings for luxury ship owners and cruise lines. As a returning customer for Global Rain, Luxury Ocean Cruise Outings has requested a simple menu-based system to perform core functions that are essential to its daily operations.

Other developers on your team have made progress on this project and have already created different classes for the software application. Your supervisor has asked you to complete several tasks to meet the customer’s needs.

Directions

The Luxury Ocean Cruise Outings company has provided Global Rain with a software specification document that details a menu-driven software application. Other developers on your software development team have already begun this project by creating the Ship, Cruise, Passenger, and Driver classes. You will modify the classes by including attributes and their proper data structures, writing methods to perform required functionality and behavior, and making sure that your program performs input validation and exception handling.

Before you get started with your assigned tasks, complete the following pre-work to understand your client’s needs, set up your development environment, and become familiar with the work that has already been completed. Refer to the Supporting Materials for relevant files to complete your pre-work.

Several individuals working at different computers

  1. Review the specification document, which will provide you with an overview of your client’s needs. Pay special attention to the relationships between the system’s different components.
  1. Open the Virtual Lab by clicking on the link in the Virtual Lab Access module. Then open your IDE. Upload the package of .java class files into your IDE and compile the code. Although the program is not complete, it will compile without error. This will help you test your development environment and ensure it is ready to start coding.
  1. Read through the code for each class. You will get clear directions in the project guide on how to modify and complete the code. This will help you understand what code has been created, and may give you ideas for the methods you must complete to meet the software requirements.
  1. Once you have completed your pre-work, you are ready to begin your assigned tasks on the menu-driven software application. Follow the project guide in the Supporting Materials section, which will take you step-by-step through completing the software application’s menu system.

What to Submit

To complete this project, you must submit the following:

Note: All class files must be submitted because the entire package of files is required for the application to run.

Driver.java Class File Submit your modified Driver.java class file. Be sure to include in-line comments for all your changes and additions.

Cruise.java Class File Submit your modified Cruise.java class file. Be sure to include in-line comments for all your changes and additions.

Ship.java Class File Submit the Ship.java class file, even though you were not required to make changes to it for this project.

Passenger.java Class File Submit the Dog.java class file, even though you were not required to make changes to it for this project.

Supporting Materials

The following resource(s) may help support your work on the project:

Luxury Ocean Cruise Outings System Specification Document Review the system specification document, provided by Luxury Ocean Cruise Outings, to complete the menu-driven software application.

Luxury.zip (Class Files) Review the code in each class file to understand what code has been created and what code you will create. The Ship and Passenger classes have been fully coded and do not require changes. The Driver and Cruise classes have been partially coded and require changes. All classes are required for the Luxury Ocean Cruise Outings app.

Uploading Files to Eclipse Tutorial You will write, test, and run each class file in an IDE. Review this tutorial to learn how to upload the zipped folder, which contains all your class files, into your IDE.

Downloading Files from Eclipse Tutorial You will write, test, and run your class files using an IDE. Review this tutorial to learn how to save and export files from your IDE. Important: Do not change the names of any class files.

Project Three Guide Follow this guide, which will take you step-by-step through creating the software application’s menu for Luxury Ocean Cruise Outings.

The following rubric will be used to assess Project Three. Familiarize yourself with this document as you work on the project, and return to this rubric before you submit Project Three to make sure you've included everything you need to be successful. 

Project Three Rubric

Criteria Exemplary   Proficient  Needs Improvement  Not Evident  Value
Part One: Print Cruise Method n/a Creates a method within a class that produces easy-to-read output of all class variables, and meets all the client’s specifications (100%) Meets some “Proficient” criteria, but with major errors; areas for improvement may include functionality, syntax, or logic (55%) Does not attempt criterion (0%) 16.67
Part Two: Print Ship List Method n/a Modifies a method that provides easy-to-read output that displays details of an object (100%) Meets some “Proficient” criteria, but with major errors; areas for improvement may include functionality, syntax, or logic (55%) Does not attempt criterion (0%) 16.67
Part Three: Add Ship Method n/a Creates a method that instantiates an object, includes all class variables, and updates an array (100%) Meets some “Proficient” criteria, but with major errors; areas for improvement may include functionality, syntax, or logic (55%) Does not attempt criterion (0%) 16.67
Part Four: Add Cruise Method n/a Creates a method that prompts the user for input, ensures that entered input meets all specifications, and updates an array (100%) Meets some “Proficient” criteria, but with major errors; areas for improvement may include functionality, syntax, or logic (55%) Does not attempt criterion (0%) 16.67
Part Five: Main Method n/a Modifies the main method within a class to include a loop and maps user input to the specified functionality (100%) Meets some “Proficient” criteria, but with major errors; areas for improvement may include functionality, input validation, syntax, or logic (55%) Does not attempt criterion (0%) 16.67
Industry Standard Best Practices Exceeds proficiency in an exceptionally clear, insightful, sophisticated, or creative manner (100%) Demonstrates industry standard best practices including naming conventions, input validation, exception handling, and in-line comments (85%) Meets some “Proficient” criteria, but with major errors; areas for improvement may include appropriate naming conventions or inclusion of in-line comments (55%) Does not attempt criterion (0%) 16.65
Total: 100%

course_documents/Global Rain.png

course_documents/IT-145 Project Three Image.jpg

course_documents/IT 145 LOCO System Specification Document.docx

System Specification Document

Overview

Our mission at Luxury Ocean Cruise Outings is to provide the accurate and efficient ability to coordinate cruise bookings for our growing list of affiliate luxury cruise ship owners and cruise lines. We desire a simple menu-based system to perform core functions that are essential to our daily operations.

The envisioned system will include three primary components: ships, cruises, and passengers. The Luxury Ocean Cruise Outings company does not own ships; instead, it creates cruises using available ships. Once a ship is placed “in service,” it is available for cruises. Passengers can be added to cruises. Here are the relationships of these components:

· Ships have unique names.

· Cruises have unique names and are assigned to ships.

· Ships can have multiple cruises.

· Each ship has a finite number of passenger cabins (Balcony, Ocean View, Suite, and Interior). Overbooking is not permitted.

· Passengers are assigned to cruises.

System Menu

We require a simple text-based menu system that should resemble the illustration below. A text version of this table is also available. Comment by Gutschow, Molly: Jordan: Link to IT 145 System Menu Text Version.

course_documents/luxury.zip

CruiseShipProject/.classpath

CruiseShipProject/.project

CruiseShipProject org.eclipse.jdt.core.javabuilder org.eclipse.jdt.core.javanature

CruiseShipProject/.settings/org.eclipse.jdt.core.prefs

eclipse.preferences.version=1 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled org.eclipse.jdt.core.compiler.codegen.targetPlatform=9 org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve org.eclipse.jdt.core.compiler.compliance=9 org.eclipse.jdt.core.compiler.debug.lineNumber=generate org.eclipse.jdt.core.compiler.debug.localVariable=generate org.eclipse.jdt.core.compiler.debug.sourceFile=generate org.eclipse.jdt.core.compiler.problem.assertIdentifier=error org.eclipse.jdt.core.compiler.problem.enumIdentifier=error org.eclipse.jdt.core.compiler.source=9

CruiseShipProject/bin/Cruise.class

CruiseShipProject/bin/Driver.class

CruiseShipProject/bin/Passenger.class

CruiseShipProject/bin/Ship.class

CruiseShipProject/src/Cruise.java

CruiseShipProject/src/Cruise.java

public   class   Cruise   {

     // Class Variables
     private   String  cruiseName ;
     private   String  cruiseShipName ;
     private   String  departurePort ;
     private   String  destination ;
     private   String  returnPort ;

     // Constructor - default
     Cruise ()   {
     }

     // Constructor - full
     Cruise ( String  tCruiseName ,   String  tShipName ,   String  tDeparture ,   String  tDestination ,   String  tReturn )   {
        cruiseName  =  tCruiseName ;
        cruiseShipName  =  tShipName ;
        departurePort  =  tDeparture ;
        destination  =  tDestination ;
        returnPort  =  tReturn ;
     }

     // Accessors
     public   String  getCruiseName ()   {
         return  cruiseName ;
     }

     public   String  getCruiseShipName ()   {
         return  cruiseShipName ;
     }

     public   String  getDeparturePort ()   {
         return  departurePort ;
     }

     public   String  getDestination ()   {
         return  destination ;
     }

     public   String  getReturnPort ()   {
         return  returnPort ;
     }

     // Mutators
     public   void  setCruiseName ( String  tVar )   {
        cruiseName  =  tVar ;
     }

     public   void  setCruiseShipName ( String  tVar )   {
        cruiseShipName  =  tVar ;
     }

     public   void  setDeparturePort ( String  tVar )   {
        departurePort  =  tVar ;
     }

     public   void  setDestination ( String  tVar )   {
        destination  =  tVar ;
     }

     public   void  setReturnPort ( String  tVar )   {
        returnPort  =  tVar ;
     }

     // print cruise details
     public   void  printCruiseDetails ()   {

         // complete this method

     }

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

CruiseShipProject/src/Driver.java

CruiseShipProject/src/Driver.java

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" );

             // complete this code block


         }   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 ()   {

         // This method does not need to be completed
         System . out . println ( "The \"Edit Ship\" feature is not yet implemented." );

     }

     // Add a New Cruise
     public   static   void  addCruise ()   {

         // complete this method

        
     }

     // Edit an existing cruise
     public   static   void  editCruise ()   {

         // This method does not need to be completed
         System . out . println ( "The \"Edit Cruise\" feature is not yet implemented." );

     }

     // Add a New Passenger
     public   static   void  addPassenger ()   {

         Scanner  newPassengerInput  =   new   Scanner ( System . in );
         System . out . println ( "Enter the new passenger's name: " );
         String  newPassengerName  =  newPassengerInput . nextLine ();

         // ensure new passenger name does not already exist
         for   ( Passenger  eachPassenger :  passengerList )   {
             if   ( eachPassenger . getPassengerName (). equalsIgnoreCase ( newPassengerName ))   {
                 System . out . println ( "That passenger is already in the system. Exiting to menu..." );
                 return ;   // quits addPassenger() method processing
             }
         }

         // get cruise name for passenger
         System . out . println ( "Enter cruise name: " );
         String  newCruiseName  =  newPassengerInput . nextLine ();

         // ensure cruise exists
         for   ( Cruise  eachCruise :  cruiseList )   {
             if   ( eachCruise . getCruiseName (). equalsIgnoreCase ( newCruiseName ))   {
                 // cruise does exist
             }   else   {
                 System . out . println ( "That cruise does not exist in the system. Exiting to menu..." );
                 return ;   // quits addPassenger() method processing
             }
         }

         // get room type
         System . out . println ( "Enter Room Type (BAL, OV, STE, or INT: " );
         String  room  =  newPassengerInput . nextLine ();
         // validate room type
         if   (( room . equalsIgnoreCase ( "BAL" ))   ||   ( room . equalsIgnoreCase ( "OV" ))   ||
                 ( room . equalsIgnoreCase ( "STE" ))   ||   ( room . equalsIgnoreCase ( "INT" )))   {
             // validation passed - add passenger
             Passenger  newPassenger  =   new   Passenger ( newPassengerName ,  newCruiseName ,  room . toUpperCase ());
            passengerList . add ( newPassenger );
         }   else   {
             System . out . println ( "Invalid input. Exiting to menu..." );
             return ;   // quits addPassenger() method processing
         }
     }

     // Edit an existing passenger
     public   static   void  editPassenger ()   {

         // This method does not need to be completed
         System . out . println ( "The \"Edit Passenger\" feature is not yet implemented." );

     }

     // Method to check if input is a number
     public   static   boolean  isANumber ( String  str )   {
         for   ( int  i  =   0 ;  i  <  str . length ();  i ++ )   {
             if   ( Character . isDigit ( str . charAt ( i ))   ==   false )
                 return   false ;
         }
         return   true ;
     }

}

CruiseShipProject/src/Passenger.java

CruiseShipProject/src/Passenger.java

public   class   Passenger   {

     // Class variables
     private   String  passengerName ;
     private   String  passengerCruise ;
     private   String  passengerRoomType ;


     // Constructor - default
     Passenger ()   {
     }

     // Constructor - full
     Passenger ( String  pName ,   String  pCruise ,   String  pRoomType )   {
        passengerName  =  pName ;
        passengerCruise  =  pCruise ;
        passengerRoomType  =  pRoomType ;   // should be BAL, OV, STE, or INT
     }

     // Accessors
     public   String  getPassengerName ()   {
         return  passengerName ;
     }

     public   String  getPassengerCruise ()   {
         return  passengerCruise ;
     }

     public   String  getPassengerRoomType ()   {
         return  passengerRoomType ;
     }

     // Mutators
     public   void  setPassengerName ( String  tVar )   {
        passengerName  =  tVar ;
     }

     public   void  setPassengerCruise ( String  tVar )   {
        passengerCruise  =  tVar ;
     }

     public   void  setPassengerRoomType ( String  tVar )   {
        passengerRoomType  =  tVar ;
     }

     // print method
     public   void  printPassenger ()   {
         int  spaceCount ;
         String  spaces1  =   "" ;
         String  spaces2  =   "" ;
        spaceCount  =   20   -  passengerName . length ();
         for   ( int  i  =   1 ;  i  <=  spaceCount ;  i ++ )   {
            spaces1  =  spaces1  +   " " ;
         }
        spaceCount  =   20   -  passengerCruise . length ();
         for   ( int  i  =   1 ;  i  <=  spaceCount ;  i ++ )   {
            spaces2  =  spaces2  +   " " ;
         }

         System . out . println ( passengerName  +  spaces1  +  passengerCruise  +  spaces2  +
                passengerRoomType );
     }

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

}

CruiseShipProject/src/Ship.java

CruiseShipProject/src/Ship.java

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 ;
     }
}

course_documents/Uploading Files to Eclipse Tutorial.pdf

Uploading Files to Eclipse This tutorial will guide you through the process of uploading a project into Eclipse via the STEM Lab.

1. Open the STEM Lab and select the Launch button for the Java Programming app. The virtual environment can take a couple of minutes to load.

2. Once the STEM Lab opens, be sure your browser window is in full-screen mode. Select the

upload icon on the STEM Lab tool bar.

3. In the File upload window, select a destination folder by clicking the Upload button. This is where the file will appear when you upload it. For this example, we will select Desktop.

4. Next, you are provided with a File Upload dialog box. Navigate to and select the file you want to

upload. Then, click the Open button. In this example, we’ve selected the studentproject.zip file.

5. Once the file uploads, it will be listed in the File Upload window and in the destination folder you selected. In this example, the studentproject.zip file appears in the File upload window, and the destination folder is the Desktop.

6. Close the File upload dialog window.

7. Locate the studentproject.zip folder. In this case, it is saved on the Desktop. Right-click on the folder and select Extract All…

8. This will bring up a dialog box asking you to select a destination for your extracted files. In this example, the default location is the Desktop. Click Extract, which will create an unzipped folder in the destination you have selected.

9. Next, open Eclipse by double-clicking the Eclipse icon located on the Desktop.

10. Select the Launch button in the Eclipse Launcher window to open Eclipse.

11. From the File menu, select Open Projects from File System. This will open up a dialog window.

12. You will use the Import dialog window to navigate to the project you uploaded. Next to the Import Source text box, click the Directory… button to browse for your project folder.

13. In the dialog box, navigate to the destination folder where you uploaded your project. In this example, the destination folder is the Desktop. Select your project folder and click the OK button.

14. After selecting the file to import, you should see the folder’s address in the Import Source textbox. Select the Finish button in the Import dialog window.

15. To access the project files, navigate to the Package Explorer workspace. You can view and open your project files in this workspace.

a) In the Package Explorer workspace, click on the arrow next to the project folder to view the

files. In this example, the folder is called studentproject. b) To open your files in the Package Explorer workspace and begin working, double-click on

each class file. Each file will have its own tab, so you can easily switch back and forth between them. Your project is now in Eclipse and ready for you to use!

course_documents/IT 145 Downloading Files from Eclipse Tutorial.pdf

Downloading Files From Eclipse This tutorial will guide you through the steps necessary to download files from Eclipse and submit them to your instructor via the learning management system (LMS).

1. Open your project in Eclipse. Be sure your browser window is in full-screen mode and ensure the Package Explorer is visible.

a) If the Package Explorer is not visible, navigate to the Window tab on the menu bar at the top of the screen.

b) From the drop-down menu, click Show View. Then click the Project Explorer option from the second drop-down menu.

2. With your project open in Eclipse, use the Package Explorer tab in the upper left-hand corner to expose your project files.

a) First, click on your project name. In this example, the project name is project1. b) Next, click on the src folder. Then, click the default Package folder. In this example, the

default Package is called projectPackage.

3. Right-click your JAVA file and select the Properties option. Note the Location of your file. In this example, the location reads: U:\project1\src\projectPackage\Example.java.

4. Close the Properties window.

5. Select the download icon from the STEM Lab toolbar.

6. Navigate to your files based on the location you identified in Step 3. In this example, the file is located in Cloud PC, then Documents, then project 1, then src, and then projectPackage.

7. Select the file and then click the Download button. This will download the selected file to your computer. You may only select one file for download at a time. Repeat this step for any additional files that are needed.

8. Take note of where your downloaded files are on your local computer. You will have access to

the Downloads menu bar in your browser window. You can also check the Downloads folder on your local computer.

9. Log in to your classroom in the LMS and navigate to your assignment. On the assignment page, click the Add a File button.

10. From the Add a File window, click the Upload icon and navigate to the location of your files on your local computer.

a) Alternatively, you can drag and drop your files in the Drop files here area. b) When all files have been selected, click the Add button at the bottom left of the screen.

11. If you are instructed to add text to the Comments section, you may do so at this time. Finally, you are ready to click the Submit button to submit your assignment.

course_documents/IT 145 Project Three Guide.pdf

IT 145 Project Three Guide

Use this step-by-step guide to complete all the methods needed for the software application’s

menu system.

TIP: As you work on your code, you can add sample data to test your code changes. Remember

that every time you exit the program, your sample data will be cleared. To avoid this issue, it is

recommended that you hard-code your sample data as illustrated in the beginning of the

Driver.java file. Some hardcoded data has already been created for you, but you may add more

if you would like. Look for these in-line comments at the start of the code:

// hardcoded ship data for testing

// Initialize ship list

Part One: Complete the printCruiseDetails() Method

1. Open the Cruise.java file. Pay attention to the variable names and the code for the

constructors, accessors, and mutators, which have already been created by your

development team. See below for where you will add code to finish the

printCruiseDetails() method.

// print cruise details

public void printCruiseDetails() {

// complete this method

}

2. Next, review the required functionality of the “Print Cruise Details” menu option below.

Menu Option Functionality

Print Cruise Details  Prints a list, each cruise on a separate row

 Data should be placed in columns that correspond to the variables: cruise name, cruise ship name, departure port, destination, and return port

3. Print Cruise Details Method: Write code for the printCruiseDetails() method. When your

code is complete, test the output by running the Driver.java class. Be sure the

completed method does the following:

a. Prints console output of all cruises and their details or, if there are no cruises in

the inventory, the output states this to the user

b. Prints the output in an easy-to-read format for the end users (for example, easy-

to-read output would present data in aligned columns)

TIP: Within the Ship.java file, there is a printShipData() method that is very similar to the

method you are tasked with creating. You can refer to that method as an example.

4. Industry Standard Best Practices: To ensure clarity, consistency, and efficiency among

all software developers, your code must do the following:

a. Follow appropriate naming conventions for variables and methods

b. Include descriptive in-line comments for all code you create and modify

Part Two: Complete the printShipList() Method

1. Open the Driver.java file. See below for where you will add code to finish the

printShipList() method.

} else if (listType == "active") {

System.out.println("\n\nSHIP LIST - Active");

// complete this code block

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

Menu Option Validation Check(s) Functionality

Print Ship In Service List

If no ships are in the inventory, informs the user

Prints a list consisting of all ship names that are in service

3. Print Ship List Method: Complete the code for the printShipList() method. When your

code is complete, test the output. Be sure that the completed method provides console

output that returns ship details based on the String value passed to the method.

TIP: The printShipList() method already supports printing ship names and a full ship list.

You can review the code as you edit the printShipList() to support printing ships in

service. See below for an example of the system’s printed output for the full ship list.

Actual results do not need to match this example exactly. A text version of this table is

also available.

4. Industry Standard Best Practices: To ensure clarity, consistency, and efficiency among

all software developers, your code must do the following:

a. Follow appropriate naming conventions for variables and methods

b. Include descriptive in-line comments for all code you create and modify

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.

4. Industry Standard Best Practices: To ensure clarity, consistency, and efficiency among

all software developers, your code must do the following:

a. Ensure that all user input is validated with appropriate feedback to the user

b. Include exception handling

c. Follow appropriate naming conventions for variables and methods

d. Include descriptive in-line comments for all code you create and modify

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 to system

3. Add Cruise Method: Write the code for the addCruise() method. When your code is

complete, test the output. Be sure that the completed method does the following:

a. Prompts the user for input

b. Requires all class variables when creating a cruise

c. Validates the ship name and ensures it is in service

d. Ensures ship name is not already assigned a cruise

e. Adds the new cruise to the cruiseList ArrayList if validation checks pass

4. Industry Standard Best Practices: To ensure clarity, consistency, and efficiency among

all software developers, your code must do the following:

a. Ensure that all user input is validated with appropriate feedback to the user

b. Include exception handling

c. Follow appropriate naming conventions for variables and methods

d. Include descriptive in-line comments for all code you create and modify

Part Five: Complete the main() Method

1. At the beginning of the Driver.java file, see below for where you will add code to finish

the main() method.

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

2. Main Method: Complete the code for the main() method. When your code is complete,

test the output. Be sure that the completed method does the following:

a. Includes a loop that allows the user to interact with the menu until they signal

that they want to exit the system

b. Maps user input to the specified functionality based on the all menu options

listed below. A text version of this table is also available.

Note: The methods for Edit Ship, Edit Cruise, and Edit Passenger do not need to be

completed but should still be mapped. When you test your menu, if you enter 2, 4, or 6

for a menu selection, you should get a response that the “feature is not yet

implemented.”

3. Industry Standard Best Practices: To ensure clarity, consistency, and efficiency among

all software developers, your code must do the following:

a. Ensure that all user input is validated with appropriate feedback to the user

b. Follow appropriate naming conventions for variables and methods

c. Include descriptive in-line comments for all code you create and modify

Part Six: Submission

Upon completing your code for each class file, review the What to Submit section of the Project

Three overview and submit all files to the Project Three submission.