Write a program that will create a CruiseShip class and CargoShip class both derived from an abstract Ship class. You will need seven files for this program: ship.h ship.cpp cruiseship.h cruiseship.cpp cargoship.h cargoship.cpp main.cpp - main() function and other functions as described These files have been provided for you. ship.h and ship.cpp  ship.h Place the following in your Ship class private (Do not make this protected. Values should be passed from the child class to the parent class using constructor initializer list in the child constructor) member variable called name that is a string member variable called yearBuilt that is a string public Constructor. Two parameter constructor. First parameter is a string for name. Second parameter is a string for yearBuilt. DO NOT CODE A DEFAULT CONSTRUCTOR Two getters getName() should return the name getYearBuilt() should return the year built A virtual function of type void called print(). No parameters. Note: This is a virtual function NOT a pure virtual function A pure virtual function of type void called makeItGo(). No parameters. Note: This is a pure virtual function Note: This class will not have any setters ship.cpp Implementation Notes The constructor should take two string parameters. The first parameter should be assigned to name. The second parameter should be assigned to yearBuilt getName() should return name getYearBuilt() should return yearBuilt print() should cout the name of the ship on one line and the year built on another line. The second line should end with an end line. See the example Name: The Name of This Ship Year Built: 2020 Note: Do not implement makeItGo(). It is a pure virtual function and should not be implemented in the abstract class. It will be implemented in the derivied class. cruiseship.h and cruiseship.cpp  cruiseship.h The CruiseShip class should publicly inherit from the Ship class. Place the following in your CruiseShip class private member variable called maxPassengers this is an int public Constructor. Three parameter constructor. First parameter is a string for name. Second parameter is a string for yearBuilt. Third parameter is an int for maxPassengers. DO NOT CODE A DEFAULT CONSTRUCTOR One getter getMaxPassengers() should return the maxPassengers Override function of type void called print(). No parameters. Override pure virtual function of type void called makeItGo(). No parameters. This function should not be a pure virtual function in this class Note: This class will not have any setters cruiseship.cpp Implementation Notes The constructor should take two string parameters and one int parameter. The constructor should call the parent constructor using an initializer list passing it the parameters for name and yearBuilt. The int parameter should be assigned to maxPassengers. getMaxPassengers() should return maxPassengers print() should call the print function from the parent and then should cout the maxPassengers on another line. The third line should end with an end line. See the example Name: The Name of This Ship Year Built: 2020 Maximum passengers: 250 You will need to implement the function makeItGo(). It should cout the text "The cruise ship goes woo woo!". There should be no end line the after the text. See the example The cruise ship goes woo woo! cargoship.h and cargoship.cpp  cargoship.h The CargoShip class should publicly inherit from the Ship class. Place the following in your CargoShip class private member variable called tonnage this is an int public Constructor. Three parameter constructor. First parameter is a string for name. Second parameter is a string for yearBuilt. Third parameter is an int for tonnage. DO NOT CODE A DEFAULT CONSTRUCTOR One getter getTonnage() should return the tonnage Override function of type void called print(). No parameters. Override pure virtual function of type void called makeItGo(). No parameters. This function should not be a pure virtual function in this class Note: This class will not have any setters cargoship.cpp Implementation Notes The constructor should take two string parameters and one int parameter. The constructor should call the parent constructor using an initializer list passing it the parameters for name and yearBuilt. The int parameter should be assigned to tonnage. getTonnage() should return tonnage print() should call the print function from the parent and then should cout the tonnage on another line. The third line should end with an end line. See the example Name: The Name of This Ship Year Built: 2020 Cargo capacity: 27 tons You will need to implement the function makeItGo(). It should cout the text "The cargo ship goes toot toot!". There should be no end line the after the text. See the example The cargo ship goes toot toot!

Database System Concepts
7th Edition
ISBN:9780078022159
Author:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Chapter1: Introduction
Section: Chapter Questions
Problem 1PE
icon
Related questions
Question

Write a program that will create a CruiseShip class and CargoShip class both derived from an abstract Ship class.

You will need seven files for this program:

  • ship.h
  • ship.cpp
  • cruiseship.h
  • cruiseship.cpp
  • cargoship.h
  • cargoship.cpp
  • main.cpp - main() function and other functions as described
  • These files have been provided for you.

ship.h and ship.cpp 

ship.h

Place the following in your Ship class

  • private (Do not make this protected. Values should be passed from the child class to the parent class using constructor initializer list in the child constructor)
    • member variable called name that is a string
    • member variable called yearBuilt that is a string
  • public
    • Constructor. Two parameter constructor. First parameter is a string for name. Second parameter is a string for yearBuilt. DO NOT CODE A DEFAULT CONSTRUCTOR
    • Two getters
      • getName() should return the name
      • getYearBuilt() should return the year built
    • A virtual function of type void called print(). No parameters. Note: This is a virtual function NOT a pure virtual function
    • A pure virtual function of type void called makeItGo(). No parameters. Note: This is a pure virtual function

Note: This class will not have any setters

ship.cpp

Implementation Notes

  • The constructor should take two string parameters. The first parameter should be assigned to name. The second parameter should be assigned to yearBuilt
  • getName() should return name
  • getYearBuilt() should return yearBuilt
  • print() should cout the name of the ship on one line and the year built on another line. The second line should end with an end line. See the example

Name: The Name of This Ship Year Built: 2020

Note: Do not implement makeItGo(). It is a pure virtual function and should not be implemented in the abstract class. It will be implemented in the derivied class.

cruiseship.h and cruiseship.cpp 

cruiseship.h

The CruiseShip class should publicly inherit from the Ship class. Place the following in your CruiseShip class

  • private
    • member variable called maxPassengers this is an int
  • public
    • Constructor. Three parameter constructor. First parameter is a string for name. Second parameter is a string for yearBuilt. Third parameter is an int for maxPassengers. DO NOT CODE A DEFAULT CONSTRUCTOR
    • One getter
      • getMaxPassengers() should return the maxPassengers
    • Override function of type void called print(). No parameters.
    • Override pure virtual function of type void called makeItGo(). No parameters. This function should not be a pure virtual function in this class

Note: This class will not have any setters

cruiseship.cpp

Implementation Notes

  • The constructor should take two string parameters and one int parameter. The constructor should call the parent constructor using an initializer list passing it the parameters for name and yearBuilt. The int parameter should be assigned to maxPassengers.
  • getMaxPassengers() should return maxPassengers
  • print() should call the print function from the parent and then should cout the maxPassengers on another line. The third line should end with an end line. See the example

Name: The Name of This Ship Year Built: 2020 Maximum passengers: 250

  • You will need to implement the function makeItGo(). It should cout the text "The cruise ship goes woo woo!". There should be no end line the after the text. See the example

The cruise ship goes woo woo!

cargoship.h and cargoship.cpp 

cargoship.h

The CargoShip class should publicly inherit from the Ship class. Place the following in your CargoShip class

  • private
    • member variable called tonnage this is an int
  • public
    • Constructor. Three parameter constructor. First parameter is a string for name. Second parameter is a string for yearBuilt. Third parameter is an int for tonnage. DO NOT CODE A DEFAULT CONSTRUCTOR
    • One getter
      • getTonnage() should return the tonnage
    • Override function of type void called print(). No parameters.
    • Override pure virtual function of type void called makeItGo(). No parameters. This function should not be a pure virtual function in this class

Note: This class will not have any setters

cargoship.cpp

Implementation Notes

  • The constructor should take two string parameters and one int parameter. The constructor should call the parent constructor using an initializer list passing it the parameters for name and yearBuilt. The int parameter should be assigned to tonnage.
  • getTonnage() should return tonnage
  • print() should call the print function from the parent and then should cout the tonnage on another line. The third line should end with an end line. See the example

Name: The Name of This Ship Year Built: 2020 Cargo capacity: 27 tons

  • You will need to implement the function makeItGo(). It should cout the text "The cargo ship goes toot toot!". There should be no end line the after the text. See the example

The cargo ship goes toot toot!

Part 4 main.cpp 

Part 4 is in the image

The function main() is complete and should not be modified.
You will need to complete the function void loadships(vector<ship*>& vship, string fileName)
On line 68, you will need to create a CruiseShip and add to vector vShip.
On line 72, you will need to create a CargoShip and add to vector vShip.
Note: Keep in mind that vShip is a vector of pointers to Ship. Both CruiseShip and CargoShip will need to be pointers in order to add them to
vShip
321682 1981840 ax3zay7
Transcribed Image Text:The function main() is complete and should not be modified. You will need to complete the function void loadships(vector<ship*>& vship, string fileName) On line 68, you will need to create a CruiseShip and add to vector vShip. On line 72, you will need to create a CargoShip and add to vector vShip. Note: Keep in mind that vShip is a vector of pointers to Ship. Both CruiseShip and CargoShip will need to be pointers in order to add them to vShip 321682 1981840 ax3zay7
Expert Solution
trending now

Trending now

This is a popular solution!

steps

Step by step

Solved in 3 steps

Blurred answer
Knowledge Booster
Class
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.
Similar questions
Recommended textbooks for you
Database System Concepts
Database System Concepts
Computer Science
ISBN:
9780078022159
Author:
Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:
McGraw-Hill Education
Starting Out with Python (4th Edition)
Starting Out with Python (4th Edition)
Computer Science
ISBN:
9780134444321
Author:
Tony Gaddis
Publisher:
PEARSON
Digital Fundamentals (11th Edition)
Digital Fundamentals (11th Edition)
Computer Science
ISBN:
9780132737968
Author:
Thomas L. Floyd
Publisher:
PEARSON
C How to Program (8th Edition)
C How to Program (8th Edition)
Computer Science
ISBN:
9780133976892
Author:
Paul J. Deitel, Harvey Deitel
Publisher:
PEARSON
Database Systems: Design, Implementation, & Manag…
Database Systems: Design, Implementation, & Manag…
Computer Science
ISBN:
9781337627900
Author:
Carlos Coronel, Steven Morris
Publisher:
Cengage Learning
Programmable Logic Controllers
Programmable Logic Controllers
Computer Science
ISBN:
9780073373843
Author:
Frank D. Petruzella
Publisher:
McGraw-Hill Education