Question: I need to solve this in C++ Chapter 20 Program - Inheritance and Polymorphism Write a program that will create a CruiseShip class and CargoShip

I need to solve this in C++

Chapter 20 Program - Inheritance and Polymorphism

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.

Part 1 ship.h and ship.cpp (10 Points)

ship.h

Place the following in your Ship class

  • private
    • 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.

Part 2 cruiseship.h and cruiseship.cpp (15 Points)

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 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! 

Part 3 cargoship.h and cargoship.cpp (15 Points)

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 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 (5 Points)

The function main() is complete and should not be modified. You will need to complete the function void loadShips(vector& 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

I need to solve this in C++ Chapter 20 Program - Inheritance

and Polymorphism Write a program that will create a CruiseShip class and

CargoShip class both derived from an abstract Ship class. You will needseven 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 beenprovided for you. Part 1 ship.h and ship.cpp (10 Points) ship.h Placethe following in your Ship class private member variable called name thatis a string member variable called yearBuilt that is a string public

9 #include 10 #include 11 #include 12 #include 13 #include 14 using namespace std; 15 16 #include "ship.h" 17 #include "cruiseship.h" 18 #include "cargoship.h" 19 20 // Global variables 21 const string FILENAME = "ships.txt"; 22 23 // Function declarations 24 void loadships (vector& vship, string fileName); 25 26 int main() 22 27 { 28 vector ships; 29 loadships(ships, FILENAME); 30 31 // Print out the ships 32 for (ship* s: ships ) 33 { 34 s->makeitto(); 35 cout print(); 37 cout & vship, string fileName) 47 { ifstream inFile(fileName); if (!inFile) { cout > shipType) { infile.ignore(); getline(infile, shipName); inFile >> year; inFile >> data: 46 void loadships (vector& vship, string fileName) 47 { 48 ifstream inFile(fileName); 49 if (!inFile) { 50 cout > shipType) { 60 61 infile. ignore(); 62 getline(infile, shipName); 63 inFile >> year; 64 inFile >> data; 65 66 if (shipType == 'L') { // it is a cruise ship 67 /* TODO: Create a Cruiseship and add to vector */ 68 69 } 70 else { // it is a cargo ship 71 /* TODO: Create a Cargoship and add to vector */ 72 73 } 74 75 } 76 infile.close(); 78 79 Run your program as often as you'd like, before submitting for grading. Bel Current file: ship.h 1 #ifndef SHIP_H 2 #define SHIP_H 3 #include 4 using namespace std; 5 6 // Defines class Ship 7 class ship 8 { 9 protected: 10 // Data member to store data 11 string shipName; 12 double fuelAmount; 13 public: 14 // Prototype of member functions 15 ship(string, double); 16 void fuel(); 17 virtual void sail(string); 18 virtual void load(int) = 0; 19 }; // End of class 20 #endif // End of header file Current file: ship.cpp 4 1 #include "ship.h" 2 #include 3 using namespace std; 5 // Parameterized constructor to assign parameter values to the data member 6 Ship:: Ship(string na, double fu) 7 { 8 shipName = na; 9 fuelAmount = fu; 10 }// End of parameterized constructor 11 12 // Defines function to display ship name and fuel capacity 13 void ship:: fuel() 14 { 15 cout 5 using namespace std; 6 7 // Defines class Cruiseship derived from base class Ship 8 class Cruiseship : public ship 9 { 10 private: 11 // Data member to store data 12 double luxuryper, upperDeckPer, lowerDeckPer; 13 int luxury, upperDeck, lowerDeck; 14 public: 15 // Prototype of member functions 16 Cruiseship(string, double, double, double, double); 17 void sail(); 18 void load(int); 19 }; // End of class 20 #endif // End of header file/ Current file: cruiseship.cpp 1 #include "cruiseship.h" 2 #include 3 using namespace std; 4 5 // Parameterized constructor to assign parameter values to the data member 6 // Call the base class parameterized constructor and passes na, and fu 7 Cruiseship::Cruiseship(string na, double fu, double lu, double up, double lo) : Ship(na, fu) 8 { 9 luxuryPer = lu; 10 upper DeckPer = up; 11 lower DeckPer = lo; 12 }// End of parameterized constructor 13 14 // Overrides virtual function to display ship each type capacity 15 void Cruiseship:: sail() 16 { 17 // Calls the base class sail() function with message 18 Ship: :sail(" sailing: "); 19 cout 5 using namespace std; 6 7 // Defines class Cargoship derived from base class ship 8 class Cargoship : public ship 9 { 10 private: 11 // Data member to store data 12 double *forward, *aft; 13 int maximum; 14 public: 15 // Prototype of member functions 16 Cargoship(string, double, int); 17 -Cargoship(); 18 void fuel(int); 19 void load(int); 20 }; // End of class 21 #endif // End of header file 22 Current file: cargohip.cpp 1 #include 2 #include "cargoship.h" 3 4 /* TODO: Code your Cargoship class implementation here * |||

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!