Question

In: Computer Science

C++ Code Vehicle Class The vehicle class is the parent class of the derived class: dieselLocomotive....

C++ Code

Vehicle Class

The vehicle class is the parent class of the derived class: dieselLocomotive. Their

inheritance will be public inheritance so reect that appropriately in their .h les. The

description of the vehicle class is given in the simple UML diagram below:

vehicle

-map: char**

-name: string

-size:int

--------------------------

+vehicle()

+getSize():int

+setName(s:string):void

+getName():string

+getMap():char**

+setMap(s: string):void

+getMapAt(x:int, y:int):char

+~vehicle()

+operator--():void

+determineRouteStatistics()=0:void

The class variables are as follows:

map: A 2D array of chars, it will represent the map that each vehicle will have to

travel on.

name: The name of the vehicle. For example, "Frontier Express".

size: The size of the map as a square matrix.

The class methods are as follows:

vehicle: This is the constructor of the class. It is simply the default constructor

with no additional features.

getSize: This returns the size of the map as a square matrix.

setName: This will set the name of the vehicle as received.

getName: This will return the name of the vehicle.

getMap(): This will return the entire map variable.

setMap(): This method receives the name of a text le that contains an ASCII map.

The map will be a square, equal number of rows and columns. The rst line of the

map will have the number of rows. Every line after will contain a number of ASCII

characters that you must read into the map. This must allocate memory before

assigning the map.

getMapAt: This receives two coordinates, an x and y, and returns what character

is located at those coordinates. If the coordinates are out of bounds, return ':'.

~vehicle: The destructor for the class. It has been made virtual.

determineRouteStatistics: This function will be used to determine information from

the map based on requirements specic to the vehicle in question. As it stands, it

is made pure virtual.

operator--: The overload of this operator will deallocate the memory allocated for

the map.

2.2.2 dieselLocomotive Class

The description of the dieselLocomotive class is given by the simple UML diagram below:

dieselLocomotive

-passengerLimit: int

---------------------------------

+dieselLocomotive()

+~dieselLocomotive()

+getPassengerLimit():int

+setPassengerLimit(s:int):void

+determineRouteStatistics():void

The class variables are as follows:

passengerLimit: This is the limit, in terms of passengers, that a train can carry on

a single trip.

The class methods have the following behaviour:

dieselLocomotive: The constructor of the class. It has no features beyond the

default.

dieselLocomotive: This is the class destructor that will deallocate the memory

assigned by the class. It will also print out, "diesel locomotive removed", without

the quotation marks and ended by a new line.

getPassengerLimit: Getter for the class variables.

setPassengerLimit: Setters for the class variables.

determineRouteStatistics: This function needs to calculate the specic statistics for

the locomotive based on the map it is provided. The following key shows all the

specic elements that are pertinent to the locomotive:

1. M,N,P: Passenger Stations. The locomotive must pick up passengers from these

stations. Each station will produce a certain quantity of passengers. These are

(a) M: 50 passengers

(b) N: 25 passengers

(c) P: 10 passengers

2. O: Origin Points. This is where the trains will be expected to leave from.

3. E: Exit Points. This is where the train is expected to go towards.

4. #: Railroad. This is traversable tracks for the train. Locomotives can only

travel on the map where there is track laid.

The function will then determine a number of statistics and print them to the screen

in a neatly formatted way:

1. Distance: Distance from the origin to exit in units, where one "#" is one unit

so a track of "### " is a 3 unit long track. This does not include the origin

and exit points. It will include the passenger stations.

2. Journey Status: This will display: "Viable" or "Not Viable" depending on

whether the locomotive is capable of making the journey. To determine if the

journey will be viable, you need to determine if the train assigned to the map

can carry enough passengers for what the route will typically entail at most.

These stations are grouped into what they typically produce in volume so it is

a reasonably safe bet to use their volume numbers when calculating. Basically,

you must calculate how many passengers the locomotive will take on during its

journey and if that number is greater than its carrying capacity, the journey

is not viable. Otherwise it will be viable. You will need to display how many

passengers the train is expected to pick up on its journey as well.

Display the information as follows:

Name: Frontier Express

Origin Coordinates: 1,2

Exit Coordinates: 8,7

Distance: 16

Passengers Carried: 75

Status: Viable

Finally an example small map is provided below:

O#--

-M--

-P--

-##E

You will be allowed to use the following libraries: fstream, cstring, string, iostream.

Your submission must contain vehicle.h, vehicle.cpp, dieselLocomotive.h, dieselLocomotive.cpp, map1.txt,

main.cpp

Solutions

Expert Solution

vehicle.h:



#ifndef VEHICLE_H

#define VEHICLE_H



#include <iostream>



using namespace std;



class Vehicle {

        char **map;

        string name;

        int size;



        public:

        Vehicle();

        void setName(string s);

        string getName();

        char **getMap();

        int getSize();

        void setMap(string s);

        char getMapAt(int x, int y);

        ~Vehicle();

        virtual void determineRouteStatisitcs() = 0;

        void operator--();

};




#endif





vehicle.cpp:



#include "vehicle.h"

#include<fstream>

#include<cstring>



Vehicle::Vehicle() {

        size = 0;

        map = NULL;

        name = "";

}



void Vehicle::setName(string s) {

        name = s;

}

string Vehicle::getName() {

        return name;

}

char** Vehicle::getMap() {

        return map;

}

int Vehicle::getSize() {

        return size;

}

void Vehicle::setMap(string s) {

        ifstream f(s.c_str());

        

        if(!f.fail()) {

                f >> size;

                map = new char*[size];



                for(int i=0; i<size; i++) {

                        string x;

                        f >> x;

                        map[i] = new char[size];

                        strcpy(map[i], x.c_str());

                }

        }

}

char Vehicle::getMapAt(int x, int y) {

        return map[x][y];

}

Vehicle::~Vehicle() {

        for(int i=0; i<size; i++) {

                delete [] map[i];

        }

        delete [] map;

}



void Vehicle::operator--() {

        for(int i=0; i<size; i++) {

                delete [] map[i];

        }

        delete [] map;

}

Answering your vehicle related code here.. please ask only one class at a time and so, please ask the locomotive class specifically in separate question , since it is not possible to answer everything in one question. Thanks!

**************************************************

Related Solutions

C++ Code Vehicle Class The vehicle class is the parent class of a derived class: locomotive....
C++ Code Vehicle Class The vehicle class is the parent class of a derived class: locomotive. Their inheritance will be public inheritance so reflect that appropriately in their .h files. The description of the vehicle class is given in the simple UML diagram below: vehicle -map: char** -name: string -size:int -------------------------- +vehicle() +setName(s:string):void +getName():string +getMap():char** +getSize():int +setMap(s: string):void +getMapAt(x:int, y:int):char +~vehicle() +operator−−():void +determineRouteStatistics()=0:void The class variables are as follows: • map: A 2D array of chars, it will represent the...
Write a c++ code: 2.2.1 Vehicle Class The vehicle class is the parent class of a...
Write a c++ code: 2.2.1 Vehicle Class The vehicle class is the parent class of a derived class: locomotive. Their inheritance will be public inheritance so react that appropriately in their .h les. The description of the vehicle class is given in the simple UML diagram below: vehicle -map: char** -name: string -size:int -------------------------- +vehicle() +setName(s:string):void +getName():string +getMap():char** +getSize():int +setMap(s: string):void +getMapAt(x:int, y:int):char +vehicle() +operator--():void +determineRouteStatistics()=0:void The class variables are as follows: map: A 2D array of chars, it will...
C++ Code (I just need the dieselLocomotive Class) Vehicle Class The vehicle class is the parent...
C++ Code (I just need the dieselLocomotive Class) Vehicle Class The vehicle class is the parent class of the derived class: dieselLocomotive. Their inheritance will be public inheritance so reflect that appropriately in their .h files. The description of the vehicle class is given in the simple UML diagram below: vehicle -map: char** -name: string -size:int -------------------------- +vehicle() +getSize():int +setName(s:string):void +getName():string +getMap():char** +setMap(s: string):void +getMapAt(x:int, y:int):char +~vehicle() +operator--():void +determineRouteStatistics()=0:void The class variables are as follows: map: A 2D array of...
C++ Code Required to Show The constructor of parent class executes before child class
C++ Code Required to Show The constructor of parent class executes before child class
Here I'm using "person" as an abstract superclass or parent class, and "Student" as a derived/child...
Here I'm using "person" as an abstract superclass or parent class, and "Student" as a derived/child class. // File name: Person.h // Person is the base, or parent for chapter11 #pragma once #include <iostream> #include <string> using namespace std; class Person { private:    string fName;    string lName;    int areaCode;    int phone; public:    Person();    Person(string, string);    void setFirst(string);    void setLast(string);    void setPhoneNumber(int, int);    string getFirstlast();    string getLastFirst();    string getPhoneNumber();...
If a class A implements interface I1 and class C and D are derived from class...
If a class A implements interface I1 and class C and D are derived from class A, a variable of type I1 can be used to hold references of what type of objects? which one is correct 1. A, C, and D 2. A and D
In c++, when dealing with inheritance in a class hierarchy, a derived class often has the...
In c++, when dealing with inheritance in a class hierarchy, a derived class often has the opportunity to overload or override an inherited member function. What is the difference? and which one is the better?
Class object in C++ programming language description about lesson base class and derived class example.
Class object in C++ programming language description about lesson base class and derived class example.
Note- can you rewrite the code in C++. Circle Class c++ code Write a circle class...
Note- can you rewrite the code in C++. Circle Class c++ code Write a circle class that has the following member variables: • radius: a double • pi: a double initialized with the value 3.14159 The class should have the following member functions: • Default Constructor. A default constructor that sets radius to 0.0. • Constructor. Accepts the radius of the circle as an argument . • setRadius. A mutator function for the radius variable. • getRadius. An acccssor function...
Python Clean up the code Recall that once a subclass inherits from a parent class, it...
Python Clean up the code Recall that once a subclass inherits from a parent class, it automatically has access to all of the parents' methods. Sometimes, the subclass needs to do extra things within a method which the parent does not do. For example, both UserPlayer and BasicMonster have their specialized __init__ methods which override the one from Player. Discuss the following question with your partner: What are the other methods that are being overridden by a subclass in the...
ADVERTISEMENT
ADVERTISEMENT
ADVERTISEMENT