Question

In: Computer Science

There is a lab assignment. Basically includes array and some other basic stuff. Comment if you...

There is a lab assignment. Basically includes array and some other basic stuff. Comment if you have any questions. Thank you.

I have got all classes here so that it might be more make sense.

BUS CLASS

package classes;
//DO NOT ERASE THE TODO STUBS! WRITE YOUR SOLUTIONS BELOW THE STUBS!

public class Bus extends Commercial {
      private int numPassengers;
      public Bus()
   {
       super();
       numPassengers = 0;
   }
      public Bus(String pVIN, String comID)
   {
       super(pVIN, comID);
       numPassengers = 0;
   }
   public Bus(String pVIN, String comID, int passengerCount)
   {
       super(pVIN, comID);
       numPassengers = passengerCount;
   }
   @Override
   public String toString()
   {
       return "Bus is " + super.toString();
   }
   // Getters
   public int getPassCount()
   {
       return numPassengers;
   }
   // Setters
   public void setPassCount(int passCount)
   {
       numPassengers = passCount;
   }
   }
CAR CLASS

package classes;
public class Car extends Vehicle {
   // TODO Add the following data members to the class Car: MSRP (double), numSeats (int), isICE (boolean), licensePlate (String), regState (String)
   // Note that MSRP is in dollars and is the suggested retail price of the car
      // TODO Create at least 4 reasonable constructors for the class Car (one will be default)
      // TODO Create an Override for the vehicle toString method.
   // Example returned string: "Car is Vehicle with VIN 85545 and License Plate ABC123 from Wisconsin"
      // TODO Create setters for all of the data members in class Car
      // TODO Create getters for all of the data members in class Car

   }

COMMERCIAL CLASS

package classes;
abstract public class Commercial extends Vehicle{
      private String commercialID;
      public Commercial()
   {
       super();
       commercialID = "";
   }
      public Commercial(String pVIN, String comID)
   {
       super(pVIN);
       commercialID = comID;
   }
      @Override
   public String toString()
   {
       return super.toString() + " is commercial with CID " + commercialID;
   }
   // TODO Add setters and getters for commercialID in the Commercial class
   }
MOTORBIKE CLASS

package classes;

public class Motorbike extends Vehicle {
   // TODO Add the following data members to the class Motorbike: MSRP (double), numWheels (int), licensePlate (String), regState (String)
   // Note that MSRP is in dollars and is the suggested retail price of the motorbike   
   // TODO Create at least 4 reasonable constructors for the class Motorbike (one will be default)
   // TODO Create an Override for the vehicle toString method.
   // Example returned string: "Motorbike is Vehicle with VIN 85545 and License Plate ABC123 from Wisconsin"
   // TODO Create setters for all of the data members in class Motorbike
   // TODO Create getters for all of the data members in class Motorbike

}

SEMI CLASS

package classes;
public class Semi extends Commercial{

   private int numAxles;
   private double weight; // LBS
   // Constructors
   public Semi()
   {
       super();
       numAxles = 0;
       weight = 0.0;
   }
   public Semi(String pVIN, String comID)
   {
       super(pVIN, comID);
       numAxles = 0;
       weight = 0;
   }
   public Semi(String pVIN, String comID, int axleCount, double weightLBS)
   {
       super(pVIN, comID);
       numAxles = axleCount;
       weight = weightLBS;
   }
   // toString Method
   @Override
   public String toString()
   {
       return "Semi is " + super.toString();
   }
   // TODO Add setters and getters for numAxles and weight in the Semi class
}

VEHICLE CLASS

package classes;

abstract public class Vehicle {
   // Data Members
   private String VIN;
   // Constructors
   public Vehicle()
   {
       VIN = "";
   }
  
   public Vehicle(String pVIN)
   {
       VIN = pVIN;
   }
   public String toString()
   {
       return "Vehicle with VIN " + VIN;
   }
  
   // Getters
   public String getVIN()
   {
       return VIN;
   }
   // Setters
   public void setVIN(String pVIN)
   {
       VIN = pVIN;
   }
}

DEMO CLASS

package programCode;

import classes.*;
public class Demo {

   public static void main(String[] args) {
       // Create Bus and Semi objects
       Bus myBus = new Bus("VIN12345", "CID0001");
       Semi mySemi = new Semi("VIN67890", "CID2222");
       // Call toString for both
       System.out.println(myBus);
       System.out.println(mySemi);
       System.out.println("\n\n");
       // Create an array of commercial vehicles in the fleet
       Commercial[] fleet = new Commercial[3];
       // Populate the array
       fleet[0] = new Semi("VIN00000", "CID0000");
       fleet[1] = new Semi("VIN99999", "CID3333");
       fleet[2] = new Bus("VIN77777", "CID1111");
       // Print out the fleet's basic information using toString
       System.out.println("Our fleet consists of: ");
       for(Commercial x : fleet)
       {
           System.out.println(" " + x);
       }
          // Get the VIN number of the vehicle in position 1 of fleet:
       String extractedVIN = fleet[1].getVIN();
       System.out.println(extractedVIN);

   }

}

DRIVER CLASS

package programCode;
// TODO Add necessary imports
public class driver {

   public static void main(String[] args) {
   // TODO Finish all of the TODO stubs in the classes before proceeding! Use the sample code, lectures,
       // completed code in the Bus, Commercial, Vehicle, and Demo files to assist you if you need help. You
       // need to reason about the objectives in the lab in order to create an effective solution. Don't just
       // copy code from one class to another! That won't work...
      
       // TODO You should test all of the methods (constructors, getters, and setters) for the classes. Make
       // sure they all do what they are expected to do!
      
       // TODO Create an array (called inventory) of Vehicle objects to store 10 vehicles
      
       // TODO Populate the array with 4 motorcycles and 6 cars. You need to set the members appropriately.
       // You may choose the values of each data member, but make sure none of them are null!
      
       // TODO Write a loop to print out the toString information for each vehicle in the array
      
       // TODO Write a loop that will print out all data members of the motorcycles in the array. Note that this
       // loop MUST work regardless of where the motorcycles appear in the array. HINT: Check the reference types
       // for each member of the array and process only the motorcycles.
      
       // TODO Write a loop that will print out the data members of the cars in the array. Note that this loop
       // MUST work regardless of where the cars appear in the array.
      
       // TODO Write a method that accepts as input a reference to an array of type Vehicle and returns
       // the integer index where the CHEAPEST car resides in that array. Place this method in the driver file.
       // Do not create a new file to hold the method!
      
       // TODO Use the method you just wrote to return the cheapest car in your vehicle array. Make sure it
       // returns the correct information! You should shuffle the entries in the array around some to make sure
       // the method reliably finds the cheapest entry. If two cheapest entries are found, you can choose any
       // of them. HINT: Use a basic linear search. You don't need to do anything complex.
      
       // TODO Suppose the dealership just obtained a new Semi. They'd like to add it to their inventory list.
       // QUESTION: Can they do this?
       // If so, modify your array code and add a Semi object to index 10 of the array.
       // If not, explain in detail why the Semi cannot be added to the inventory list.
       // QUESTION: Assume the Semi can somehow be added to the inventory list. Given the code in the lab
       // right now, could the dealership assign an MSRP to the semi? Why or why not? Note that
       // you do NOT need to make this possible in the code if it isn't possible. Just explain.

      
}

}

Solutions

Expert Solution

Here is the code,

I have completed the full code, only 3 parts are remaining(in Driver class)that can be done on your own. If you have any doubts about any of the parts feel free to ask in the comment section, I would try to help you with my best.

Bus.java

public class Bus extends Commercial {
    private int numPassengers;

    public Bus() {
        super();
        numPassengers = 0;
    }

    public Bus(String pVIN, String comID) {
        super(pVIN, comID);
        numPassengers = 0;
    }

    public Bus(String pVIN, String comID, int passengerCount) {
        super(pVIN, comID);
        numPassengers = passengerCount;
    }

    @Override
    public String toString() {
        return "Bus is " + super.toString();
    }

    // Getters
    public int getPassCount() {
        return numPassengers;
    }

    // Setters
    public void setPassCount(int passCount) {
        numPassengers = passCount;
    }
}

Car.java

public class Car extends Vehicle {

    // TODO Add the following data members to the class Car: MSRP (double), numSeats (int), isICE (boolean), licensePlate (String), regState (String)
    private double MSRP;
    private int numSeats;
    private boolean isICE;
    private String licensePlate;
    private String regState;

    // Note that MSRP is in dollars and is the suggested retail price of the car
    // TODO Create at least 4 reasonable constructors for the class Car (one will be default)

    public Car(){
        MSRP = 0.0;
        numSeats = 0;
        isICE = false;
        licensePlate = "";
        regState = "";
    }

    public Car(double MSRP, int numSeats, boolean isICE, String licensePlate, String regState){
        this.MSRP = MSRP;
        this.numSeats = numSeats;
        this.isICE = isICE;
        this.licensePlate = licensePlate;
        this.regState = regState;
    }

    public Car(String licensePlate, String regState){
        this.licensePlate = licensePlate;
        this.regState = regState;
    }

    public Car(double MSRP, String licensePlate, String regState){
        this.MSRP = MSRP;
        this.licensePlate = licensePlate;
        this.regState = regState;
    }


    // TODO Create an Override for the vehicle toString method.
    // Example returned string: "Car is Vehicle with VIN 85545 and License Plate ABC123 from Wisconsin"

    @Override
    public String toString() {
        return "Car is Vehicle with VIN "+getVIN()+" and License Plate "+licensePlate+" from "+regState;
    }

    // TODO Create setters for all of the data members in class Car
    // TODO Create getters for all of the data members in class Car
    public double getMSRP() {
        return MSRP;
    }

    public void setMSRP(double MSRP) {
        this.MSRP = MSRP;
    }

    public int getNumSeats() {
        return numSeats;
    }

    public void setNumSeats(int numSeats) {
        this.numSeats = numSeats;
    }

    public boolean isICE() {
        return isICE;
    }

    public void setICE(boolean ICE) {
        isICE = ICE;
    }

    public String getLicensePlate() {
        return licensePlate;
    }

    public void setLicensePlate(String licensePlate) {
        this.licensePlate = licensePlate;
    }

    public String getRegState() {
        return regState;
    }

    public void setRegState(String regState) {
        this.regState = regState;
    }
}

Vehicle.java

abstract public class Vehicle {
    // Data Members
    private String VIN;

    // Constructors
    public Vehicle() {
        VIN = "";
    }

    public Vehicle(String pVIN) {
        VIN = pVIN;
    }

    public String toString() {
        return "Vehicle with VIN " + VIN;
    }

    // Getters
    public String getVIN() {
        return VIN;
    }

    // Setters
    public void setVIN(String pVIN) {
        VIN = pVIN;
    }
}

Commercial.java

abstract public class Commercial extends Vehicle {
    private String commercialID;

    public Commercial() {
        super();
        commercialID = "";
    }

    public Commercial(String pVIN, String comID) {
        super(pVIN);
        commercialID = comID;
    }

    @Override
    public String toString() {
        return super.toString() + " is commercial with CID " + commercialID;
    }

    // TODO Add setters and getters for commercialID in the Commercial class
    public String getCommercialID() {
        return commercialID;
    }

    public void setCommercialID(String commercialID) {
        this.commercialID = commercialID;
    }
}

Motorbike.java

public class Motorbike extends Vehicle {
    // TODO Add the following data members to the class Motorbike: MSRP (double), numWheels (int), licensePlate (String), regState (String)
    private double MSRP;
    private int numWheels;
    private String licensePlate;
    private String regState;

    // Note that MSRP is in dollars and is the suggested retail price of the motorbike
    // TODO Create at least 4 reasonable constructors for the class Motorbike (one will be default)
    public Motorbike(){
        MSRP = 0.0;
        numWheels = 0;
        licensePlate = "";
        regState = "";
    }

    public Motorbike(double MSRP, int numWheels, String licensePlate, String regState){
        this.MSRP = MSRP;
        this.numWheels = numWheels;
        this.licensePlate = licensePlate;
        this.regState = regState;
    }

    public Motorbike(double MSRP, String licensePlate, String regState){
        this.MSRP = MSRP;
        this.licensePlate = licensePlate;
        this.regState = regState;
    }

    public Motorbike(int numWheels, String licensePlate, String regState){
        this.numWheels = numWheels;
        this.licensePlate = licensePlate;
        this.regState = regState;
    }

    // TODO Create an Override for the vehicle toString method.
    // Example returned string: "Motorbike is Vehicle with VIN 85545 and License Plate ABC123 from Wisconsin"

    @Override
    public String toString() {
        return "Motorbike is Vehicle with VIN "+getVIN()+" and License Plate "+licensePlate+" from "+regState;
    }

    // TODO Create setters for all of the data members in class Motorbike
    // TODO Create getters for all of the data members in class Motorbike
    public double getMSRP() {
        return MSRP;
    }

    public void setMSRP(double MSRP) {
        this.MSRP = MSRP;
    }

    public int getNumWheels() {
        return numWheels;
    }

    public void setNumWheels(int numWheels) {
        this.numWheels = numWheels;
    }

    public String getLicensePlate() {
        return licensePlate;
    }

    public void setLicensePlate(String licensePlate) {
        this.licensePlate = licensePlate;
    }

    public String getRegState() {
        return regState;
    }

    public void setRegState(String regState) {
        this.regState = regState;
    }
}

Demo.java

public class Demo {
    public static void main(String[] args) {
        // Create Bus and Semi objects
        Bus myBus = new Bus("VIN12345", "CID0001");
        Semi mySemi = new Semi("VIN67890", "CID2222");
        // Call toString for both
        System.out.println(myBus);
        System.out.println(mySemi);
        System.out.println("\n\n");
        // Create an array of commercial vehicles in the fleet
        Commercial[] fleet = new Commercial[3];
        // Populate the array
        fleet[0] = new Semi("VIN00000", "CID0000");
        fleet[1] = new Semi("VIN99999", "CID3333");
        fleet[2] = new Bus("VIN77777", "CID1111");
        // Print out the fleet's basic information using toString
        System.out.println("Our fleet consists of: ");
        for (Commercial x : fleet) {
            System.out.println(" " + x);
        }
        // Get the VIN number of the vehicle in position 1 of fleet:
        String extractedVIN = fleet[1].getVIN();
        System.out.println(extractedVIN);
    }
}

Driver.java

import java.util.Arrays;
import java.util.Collections;
import java.util.List;

// TODO Add necessary imports
public class Driver {

    private static Car cheapestCar(Vehicle[] inventory){
        Car car = null;
        for (Vehicle vehicle : inventory){
            if (vehicle instanceof Car){
                Car mCar = (Car) vehicle;
                if(car == null) car = mCar;
                else if(car.getMSRP() > mCar.getMSRP()) car = mCar;
            }
        }
        return car;
    }

    public static void main(String[] args) {
        // TODO Finish all of the TODO stubs in the classes before proceeding! Use the sample code, lectures,
        // completed code in the Bus, Commercial, Vehicle, and Demo files to assist you if you need help. You
        // need to reason about the objectives in the lab in order to create an effective solution. Don't just
        // copy code from one class to another! That won't work...

        // TODO You should test all of the methods (constructors, getters, and setters) for the classes. Make
        // sure they all do what they are expected to do!

        // TODO Create an array (called inventory) of Vehicle objects to store 10 vehicles
        Vehicle[] inventory = new Vehicle[10];

        // TODO Populate the array with 4 motorcycles and 6 cars. You need to set the members appropriately.
        // You may choose the values of each data member, but make sure none of them are null!
        inventory[0] = new Motorbike(435, "ABC134", "STATE_A");
        inventory[1] = new Motorbike(785, "HFS621", "STATE_B");
        inventory[2] = new Motorbike(6575, "EJF787", "STATE_B");
        inventory[3] = new Motorbike(876, "LSH853", "STATE_X");
        inventory[4] = new Car(43657, "LFONFH-144", "STATE_Y");
        inventory[5] = new Car(87732, "QOPSLF-345", "STATE_V");
        inventory[6] = new Car(32784, "FHFKSL-634", "STATE_V");
        inventory[7] = new Car(18393, "WEJRKF-253", "STATE_U");
        inventory[8] = new Car(20983, "ADJGGG-678", "STATE_W");
        inventory[9] = new Car(54672, "RTSKFN-324", "STATE_A");


        // TODO Write a loop to print out the toString information for each vehicle in the array
        for(Vehicle vehicle : inventory) System.out.println(vehicle.toString());

        // TODO Write a loop that will print out all data members of the motorcycles in the array. Note that this
        // loop MUST work regardless of where the motorcycles appear in the array. HINT: Check the reference types
        // for each member of the array and process only the motorcycles.
        for(Vehicle vehicle : inventory){
            if(vehicle instanceof Motorbike){
                Motorbike motorbike = (Motorbike) vehicle;
                System.out.println("Motorbike{" +
                        "MSRP=" + motorbike.getMSRP() +
                        ", numWheels=" + motorbike.getNumWheels() +
                        ", licensePlate='" + motorbike.getLicensePlate() + '\'' +
                        ", regState='" + motorbike.getRegState() + '\'' +
                        '}');
            }
        }

        // TODO Write a loop that will print out the data members of the cars in the array. Note that this loop
        // MUST work regardless of where the cars appear in the array.
        for(Vehicle vehicle : inventory){
            if(vehicle instanceof Car){
                Car car = (Car) vehicle;
                System.out.println("Car{" +
                        "MSRP=" + car.getMSRP() +
                        ", numSeats=" + car.getNumSeats() +
                        ", isICE=" + car.isICE() +
                        ", licensePlate='" + car.getLicensePlate() + '\'' +
                        ", regState='" + car.getRegState() + '\'' +
                        '}');
            }
        }

        // TODO Write a method that accepts as input a reference to an array of type Vehicle and returns
        // the integer index where the CHEAPEST car resides in that array. Place this method in the driver file.
        // Do not create a new file to hold the method!
        cheapestCar(inventory);

        // TODO Use the method you just wrote to return the cheapest car in your vehicle array. Make sure it
        // returns the correct information! You should shuffle the entries in the array around some to make sure
        // the method reliably finds the cheapest entry. If two cheapest entries are found, you can choose any
        // of them. HINT: Use a basic linear search. You don't need to do anything complex.
        List<Vehicle> inventoryList = Arrays.asList(inventory);
        Collections.shuffle(inventoryList);
        inventoryList.toArray(inventory);
        Car cheapestCar = cheapestCar(inventory);
        if(cheapestCar == null) System.out.println("No car found in inventory");
        else System.out.println("Cheapest car : "+cheapestCar.toString());

        // TODO Suppose the dealership just obtained a new Semi. They'd like to add it to their inventory list.
        // QUESTION: Can they do this?
        // If so, modify your array code and add a Semi object to index 10 of the array.
        // If not, explain in detail why the Semi cannot be added to the inventory list.
        // QUESTION: Assume the Semi can somehow be added to the inventory list. Given the code in the lab
        // right now, could the dealership assign an MSRP to the semi? Why or why not? Note that
        // you do NOT need to make this possible in the code if it isn't possible. Just explain.
    }

}

Semi.java

public class Semi extends Commercial {

    private int numAxles;
    private double weight; // LBS

    // Constructors
    public Semi() {
        super();
        numAxles = 0;
        weight = 0.0;
    }

    public Semi(String pVIN, String comID) {
        super(pVIN, comID);
        numAxles = 0;
        weight = 0;
    }

    public Semi(String pVIN, String comID, int axleCount, double weightLBS) {
        super(pVIN, comID);
        numAxles = axleCount;
        weight = weightLBS;
    }

    // toString Method
    @Override
    public String toString() {
        return "Semi is " + super.toString();
    }

    // TODO Add setters and getters for numAxles and weight in the Semi class
    public int getNumAxles() {
        return numAxles;
    }

    public void setNumAxles(int numAxles) {
        this.numAxles = numAxles;
    }

    public double getWeight() {
        return weight;
    }

    public void setWeight(double weight) {
        this.weight = weight;
    }
}

Also please don't forget to upvote the solution.


Related Solutions

A lab assignment. Comment if you have any question. BUS CLASS package classes; //DO NOT ERASE...
A lab assignment. Comment if you have any question. BUS CLASS package classes; //DO NOT ERASE THE TODO STUBS! WRITE YOUR SOLUTIONS BELOW THE STUBS! public class Bus extends Commercial {       private int numPassengers;       public Bus()    {        super();        numPassengers = 0;    }       public Bus(String pVIN, String comID)    {        super(pVIN, comID);        numPassengers = 0;    }    public Bus(String pVIN, String comID, int passengerCount)...
Income Inequality - Video Assignment In this video you will learn some basic facts concerning the...
Income Inequality - Video Assignment In this video you will learn some basic facts concerning the distribution of income in the U.S. and the Lorenz Curve that gives a graphic representation of the distribution. Next, the major causes of income inequality are discussed with real world examples. Third, the debate over income inequality, the gender pay gap, and income mobility implied by this debate is examined.   Instructions: After watching the following video write a one page reflection. Your reflection must...
Income Inequality - Video Assignment In this video you will learn some basic facts concerning the...
Income Inequality - Video Assignment In this video you will learn some basic facts concerning the distribution of income in the U.S. and the Lorenz Curve that gives a graphic representation of the distribution. Next, the major causes of income inequality are discussed with real world examples. Third, the debate over income inequality, the gender pay gap, and income mobility implied by this debate is examined.   Instructions: After watching the following video write a one page reflection. Your reflection must...
For this assignment you will implement a dynamic array. You are to build a class called...
For this assignment you will implement a dynamic array. You are to build a class called MyDynamicArray. Your dynamic array class should manage the storage of an array that can grow and shrink. The public methods of your class should be the following: MyDynamicArray(); Default Constructor. The array should be of size 2. MyDynamicArray(int s); For this constructor the array should be of size s. ~MyDynamicArray(); Destructor for the class. int& operator[](int i); Traditional [] operator. Should print a message...
In this lab, you will practice the use of array by building an simple maze game,...
In this lab, you will practice the use of array by building an simple maze game, where your task is to control the prince to defeat the monster and save Snow White. You have to work based on the given skeleton code. Game Description The Snow White is detained in the maze by the monster, who needs the prince's help to rescure her out from the exit. The pre-set maze is shown below, with width 11 and height 8. The...
In this lab, you will practice the use of array by building an simple maze game,...
In this lab, you will practice the use of array by building an simple maze game, where your task is to control the prince to defeat the monster and save Snow White. You have to work based on the given skeleton code. Game Description The Snow White is detained in the maze by the monster, who needs the prince's help to rescure her out from the exit. The pre-set maze is shown below, with width 11 and height 8. The...
CIT 1614 Basic IP Addressing Lab Assignment Subnet Masks and Prefix Lengths What is the corresponding...
CIT 1614 Basic IP Addressing Lab Assignment Subnet Masks and Prefix Lengths What is the corresponding prefix length for each of the following subnet masks? Example: 255.255.0.0 has prefix length /24 Subnet Mask Prefix Length 255.255.255.0             255.255.128.0 255.224.0.0 255.255.255.252 255.255.255.248 What is the corresponding subnet mask for each of the following prefix lengths? Example: /8 is subnet mask 255.0.0.0 Prefix Length Subnet Mask /16 /20 /30 /10 /25 Finding Network Addresses For the given address and prefix length, find the...
Comments : For each function in your program, you must include a comment block that includes...
Comments : For each function in your program, you must include a comment block that includes a name of the function, the input parameters of the function, and the return type of the function. Use short phrase descriptions to describe each. Guard Conditions and Exception Handling: This time, your program must guard against common errors. An empty vector cannot be used for a variance or standard deviation. A file must be opened correctly. A file must be written to correctly....
For this lab you will continue your dynamic array by completing the class called MyDynamicArray. The...
For this lab you will continue your dynamic array by completing the class called MyDynamicArray. The MyDynamicArray class should manage the storage of an array that can grow and shrink. The public methods of your class should already be the following: MyDynamicArray(); Default Constructor. The array should be of capacity 2. MyDynamicArray(int s); For this constructor the array should be of capacity and size s. int& operator[](int i); Traditional [] operator. Should print a message if i is out of...
Searching an Array for an Exact Match in Java Summary In this lab, you use what...
Searching an Array for an Exact Match in Java Summary In this lab, you use what you have learned about searching an array to find an exact match to complete a partially prewritten Java program. The program uses an array that contains valid names for 10 cities in Michigan. You ask the user of the program to enter a city name; your program then searches the array for that city name. If it is not found, the program should print...
ADVERTISEMENT
ADVERTISEMENT
ADVERTISEMENT