C++ ONLY Please
TRAINS
DESCRIPTION
You are completing a program that allows for several different types of passenger trains. One train can hold only cats. Another train can hold only wizards. You are going to create a Wizard class, a Cat class, and a Train class. You are provided the driver, lab2.cpp. The Train class should be a template class where the type of passenger is the template data type.
Specifications
cat class
Attributes:
Functions:
Wizard Class
Attributes:
Functions:
Train Template Class
Attributes:
Functions:
Provided Driver:
#include "Train.h"
#include "Cat.h"
#include "Wizard.h"
#include <iostream>
using namespace std;
int main()
{
//Create a Wizard Train object
Train<Wizard*> wizardTrain("Hogwarts Express", "Kings Cross
Station, London", 10);
//Create wizards & then add them to the Wizard
Train
Wizard* wizard1 = new Wizard("Bill", 32, 65);
wizardTrain.addPassenger(wizard1);
Wizard* wizard2 = new Wizard("Jill", 24, 45);
wizardTrain.addPassenger(wizard2);
Wizard* wizard3 = new Wizard("Will", 10, 42);
wizardTrain.addPassenger(wizard3);
Wizard* wizard4 = new Wizard("Neal", 88, 73);
wizardTrain.addPassenger(wizard4);
//Print all the Wizard Train passengers
cout << "\n\nHere are the wizards who have boarded the "
<< wizardTrain.getTrainName() << "!\n\n";
wizardTrain.printPassengers();
cout << endl << endl;
//Create a Cat Train object
Train<Cat*> kittyTrain("Hello Kitty Express", "Japan",
10);
//Create Cats & then add them to the Cat
Train
Cat* cat1 = new Cat("Yella Cat", "mixed", "orange & yellow",
8);
kittyTrain.addPassenger(cat1);
Cat* cat2 = new Cat("Mouth", "mixed", "black & white",
8);
kittyTrain.addPassenger(cat2);
Cat* cat3 = new Cat("Chloe", "siamese", "black & white",
3);
kittyTrain.addPassenger(cat3);
Cat* cat4 = new Cat("Brutus", "hairless", "skin color", 4);
kittyTrain.addPassenger(cat4);
Cat* cat5 = new Cat("Wally", "catdog", "lime", 1);
kittyTrain.addPassenger(cat5);
Cat* cat6 = new Cat("Gladass", "siamese", "black & white",
6);
kittyTrain.addPassenger(cat6);
//Print all the Cat Train passengers
cout << "Here are the cats who have boarded the " <<
kittyTrain.getTrainName() << "!\n\n";
kittyTrain.printPassengers();
cout << endl << endl;
return 0;
}
Sample Output
After you create the three classes required for lab2.cpp, you need to test all the code to make sure you get the same output as below! There is no user input in this program.
Here are the wizards who have boarded the Hogwarts Express!
Bill, 32 years old, 65 inches tall
Jill, 24 years old, 45 inches tall
Will, 10 years old, 42 inches tall
Neal, 88 years old, 73 inches tall
Here are the cats who have boarded the Hello Kitty Express!
Yella Cat, mixed, orange & yellow, 8
Mouth, mixed, black & white, 8
Chloe, siamese, black & white, 3
Brutus, hairless, skin color, 4
Wally, catdog, lime, 1
Gladass, siamese, black & white, 6
Train.h
=============================
#pragma once
#include <iostream>
using namespace std;
template<typename T>
class Train {
private:
string name; // name of the train
string home; // home location of the train
int capacity; // train passenger capacity(the maximum
number of passengers allowed on the train)
int num_of_passengers; // the number of passengers
currently on board
T* passengers; // a pointer to a template data type
create an array of the passengers.
public:
// constructor
Train(string name, string home, int capacity) {
// initialize the train name, home
location, and capacity to these values.
this->name = name;
this->home = home;
this->capacity = capacity;
// dynamically allocate an array
the size of the train capacity.
passengers = new T[capacity];
// The number of passengers
currently on board should be initialized to zero.
num_of_passengers = 0;
}
// destructor
~Train() {
// release the dynamically
allocated array
delete passengers;
}
// returns name of the train
string getTrainName() {
return name;
}
// add a passenger to train
void addPassenger(T& passanger) {
// check the number of passengers
on board is euql to the train passenger capacity
if (num_of_passengers == capacity)
{
cout <<
"No more passengers can board the train!" << endl;
}
else {
// place this
new passenger in the correct spot in the array
passengers[num_of_passengers] = passanger;
// increment the
number of passengers on board.
num_of_passengers++;
}
}
// prints all passangers on the train
void printPassengers() {
// go through the passengers array
and print each passenger that is currently on board
for (int i = 0; i <
num_of_passengers; i++) {
cout <<
*passengers[i] << endl;
}
}
};
====================================
Cat.h
====================================
#pragma once
#include <iostream>
using namespace std;
class Cat {
private:
string name; // name of cat
string breed; // breed of cat
string color; // color of cat
int age; // age of cat
public:
// constructor
Cat(string name, string breed, string color, int age)
{
// initialize variables
this->name = name;
this->breed = breed;
this->color = color;
this->age = age;
}
// overloaded operator to print out the Cat
object
friend ostream& operator << (ostream&
os, Cat& cat) {
// print out each of the 4 pieces
of data on a single line, separated by commas.
os << cat.name << ", "
<< cat.breed << ", " << cat.color << ", "
<< cat.age;
return os;
}
};
==================================
Wizard.h
=================================
#pragma once
#include <iostream>
using namespace std;
class Wizard {
private:
string name; // name of wizard
int age; // age of wizard
int height; // height of wizard
public:
// constructor
Wizard(string name, int age, int height) {
// initialize variables
this->name = name;
this->age = age;
this->height = height;
}
// overloaded operator to print out the Wizard
object
friend ostream& operator << (ostream&
os, Wizard& wizard) {
// print out each of the 3 pieces
of data on a single line, separated by commas.
os << wizard.name << ",
" << wizard.age << " years old, " <<
wizard.height << " inches tall";
return os;
}
};
========================
Driver.cpp
========================
#include "Train.h"
#include "Cat.h"
#include "Wizard.h"
#include <iostream>
using namespace std;
int main() {
//Create a Wizard Train object
Train<Wizard*> wizardTrain("Hogwarts Express",
"Kings Cross Station, London", 10);
//Create wizards & then add them to the Wizard
Train
Wizard* wizard1 = new Wizard("Bill", 32, 65);
wizardTrain.addPassenger(wizard1);
Wizard* wizard2 = new Wizard("Jill", 24, 45);
wizardTrain.addPassenger(wizard2);
Wizard* wizard3 = new Wizard("Will", 10, 42);
wizardTrain.addPassenger(wizard3);
Wizard* wizard4 = new Wizard("Neal", 88, 73);
wizardTrain.addPassenger(wizard4);
//Print all the Wizard Train passengers
cout << "\n\nHere are the wizards who have
boarded the " << wizardTrain.getTrainName() <<
"!\n\n";
wizardTrain.printPassengers();
cout << endl << endl;
//Create a Cat Train object
Train<Cat*> kittyTrain("Hello Kitty Express",
"Japan", 10);
//Create Cats & then add them to the Cat
Train
Cat* cat1 = new Cat("Yella Cat", "mixed", "orange
& yellow", 8);
kittyTrain.addPassenger(cat1);
Cat* cat2 = new Cat("Mouth", "mixed", "black &
white", 8);
kittyTrain.addPassenger(cat2);
Cat* cat3 = new Cat("Chloe", "siamese", "black &
white", 3);
kittyTrain.addPassenger(cat3);
Cat* cat4 = new Cat("Brutus", "hairless", "skin
color", 4);
kittyTrain.addPassenger(cat4);
Cat* cat5 = new Cat("Wally", "catdog", "lime",
1);
kittyTrain.addPassenger(cat5);
Cat* cat6 = new Cat("Gladass", "siamese", "black &
white", 6);
kittyTrain.addPassenger(cat6);
//Print all the Cat Train passengers
cout << "Here are the cats who have boarded the
" << kittyTrain.getTrainName() << "!\n\n";
kittyTrain.printPassengers();
cout << endl << endl;
return 0;
}

let me know if you have any doubts or problem running the program. thank you.
C++ ONLY Please TRAINS DESCRIPTION You are completing a program that allows for several different types...
C++ programming question, please help! Thank you so much in advance!!! In this exercise, you will work with 2 classes to be used in a RPG videogame. The first class is the class Character. The Character class has two string type properties: name and race. The Character class also has the following methods: a constructor Character(string Name, string Race), that will set the values for the name and the race variables set/get functions for the two attributes a function print(),...
Language = C++ How to complete this code? C++ Objects, Structs and Linked Lists. Program Design: You will create a class and then use the provided test program to make sure it works. This means that your class and methods must match the names used in the test program. Also, you need to break your class implementation into multiple files. You should have a car.h that defines the car class, a list.h, and a list.cpp. The link is a struct...
Project Description Complete the Film Database program described below. This program allows users to store a list of their favorite films. To build this program, you will need to create two classes which are used in the program’s main function. The “Film” class will store information about a single movie or TV series. The “FilmCollection” class will store a set of films, and includes functions which allow the user to add films to the list and view its contents. IMPORTANT:...
Need some help on this C++ program. Circle - color:String - radius:double +Circle() +Circle(newColor:String, newRadius:double) +setColor(color:String):void +setRadius(radius:double):void +getColor():String +getRadius():double +printCircleInfo():void Create the class using three files - a .h, a .cpp and a main.cpp Create a class called Circle as describe below Constructor with no arguments Sets radius to 1 and color to “black” Constructor with arguments Sets the color and radius to the values passed in Get methods (accessors) return the field that the get refers to Set methods...
previous assignment code /*C++ test program to test the classes, Animal, Mammal and Cat and print the results on console window.*/ //Main.cpp //include header files #include<iostream> //include Animal, Mammal and Cat header files #include "Animal.h" #include "Mammal.h" #include "Cat.h" using namespace std; int main() { //create Animal object Animal animal("Dog","Mammal",4); cout<<"Animal object details"<<endl; cout<<"Name: "<<animal.getName()<<endl; cout<<"Type: "<<animal.getType()<<endl; cout<<"# of Legs: "<<animal.getLegs()<<endl; cout<<endl<<endl; //create Cat object Cat cat("byssinian cat","carnivorous mammal",4,"short...
Use C++! This program uses the class myStack to determine the highest GPA from a list of students with their GPA.The program also outputs the names of the students who received the highest GPA. Redo this program so that it uses the STL list and STL queue! Thank you! HighestGPAData.txt* 3.4 Randy 3.2 Kathy 2.5 Colt 3.4 Tom 3.8 Ron 3.8 Mickey 3.6 Peter 3.5 Donald 3.8 Cindy 3.7 Dome 3.9 Andy 3.8 Fox 3.9 Minnie 2.7 Gilda 3.9 Vinay...
This is a c++ program. Use the description from Parking Ticket Simulator (listed below) as a basis, where you need to create a Car class and Police Officer class, to create a new simulation. Write a simulation program (refer to the Bank Teller example listed below) that simulates cars entering a parking lot, paying for parking, and leaving the parking lot. The officer will randomly appear to survey the cars in the lot to ensure that no cars are parked...
java
Object Oriented Programming The assignment can be done individually or in teams of two. Submit one assignment per team of two via Omnivox and NOT MIO.Assignments sent via MIO will be deducted marks. Assignments must be done alone or in groups and collaboration between individuals or groups is strictly forbidden. There will be a in class demo on June 1 make sure you are prepared, a doodle will be created to pick your timeslot. If you submit late, there...
using C++ language!! please help me out with
this homework
In this exercise, you will have to create from scratch and utilize a class called Student1430. Student 1430 has 4 private member attributes: lastName (string) firstName (string) exams (an integer array of fixed size of 4) average (double) Student1430 also has the following member functions: 1. A default constructor, which sets firstName and lastName to empty strings, and all exams and average to 0. 2. A constructor with 3 parameters:...
C++ Object Oriented assignment Can you please check the program written below if it has appropriately fulfilled the instructions provided below. Please do the necessary change that this program may need. I am expecting to get a full credit for this assignment so put your effort to correct and help the program have the most efficient algorithm within the scope of the instruction given. INSTRUCTIONS Create a fraction class and add your Name to the name fraction and use this...