SHARE
SPREAD
HELP

The Tradition of Sharing

Help your friends and juniors by posting answers to the questions that you know. Also post questions that are not available.


To start with, Sr2Jr’s first step is to reduce the expenses related to education. To achieve this goal Sr2Jr organized the textbook’s question and answers. Sr2Jr is community based and need your support to fill the question and answers. The question and answers posted will be available free of cost to all.

 

#
Authors:
Walter Savitch ,julia Lobur
Chapter:
Inheritance
Exercise:
Programming Projects
Question:10 | ISBN:9780321531346 | Edition: 7

Question

Radio Frequency IDentification (RFID) chips are small tags that can be

placed on a product. They behave like wireless barcodes and can wirelessly broadcast an identification number to a receiver. One application of RFID chips is to use them to aid in the logistics of shipping freight. Consider a shipping container full of items. Without RFID chips a human has to manually inventory all of the items in the container to verify the contents. With an RFID chip attached to the shipping container, the RFID chip can electronically broadcast to a human the exact contents of the shipping container without human intervention.

To model this application, write a base class called ShippingContainer that

has a container ID number as an integer. Include member functions to

set and access the ID number. Add a virtual function called getManifest

that returns an empty string. The purpose of this function is to return the

contents of the shipping container.

Create a derived class called ManualShippingContainer that represents the

manual method of inventorying the container. In this method, a human

simply attaches a textual description of all contents of the container. For

example, the description might be “4 crates of apples. 10 crates of pears.”

Add a new class variable of type string to store the manifest. Add a function called setManifest that sets this string. Override the getManifest function so that it returns this string. Create a second derived class called RFIDShippingContainer that represents the RFID method of inventorying the container. To simulate what the RFID chips would compute, create an add function to simulate adding an item to the container. The class should store a list of all added items (as a string) and their quantity using the data structures of your choice. For example, if the add function were invoked three times as follows:

rfidContainer.add("crate of pears"); // Add one crate of pears

rfidContainer.add("crate of apples"); // Add one crate of apples

rfidContainer.add("crate of pears"); // Add one crate of pears

At this point, the data structure should be storing a list of two items:

crate of apples and crate of pears. The quantity of apples is one and the

quantity of pears is two. Override the getManifest function so that

it returns a string of all items that is built by traversing the list of

items. In the above example, the return string would be “2 crate of

pears. 1 crate of apples.

Finally, write a main program that creates an array of pointers

to 6 ShippingContainer objects. Instantiate the array with 3

ManualShippingContainer objects and 3 RFIDShippingContainer objects.

For the ManualShippingContainer objects you will have to invoke

setManifest to set the contents. For the RFIDShippingContainer objects

you will have to invoke add to set the contents (although, if this were real, the contents of the container would “add” themselves via the RFID chips instead of requiring a human to type them in). Finally, write a loop that iterates through all ShippingContainer pointers and outputs each object’s manifest along with the shipping container ID. This is the output that the receiver of the shipping containers would like to see.

You may need to convert an integer into a string. A simple way to do this

is illustrated below:

#include <sstream>

string intToString(int i)

{

stringstream converter;

converter << i;

return converter.str();

}



TextbookTextbookTextbookTextbookTextbookTextbookTextbookTextbookTextbookTextbookTextbookTextbookTextbookTextbookTextbookTextbookTextbook

Sorry the answer is not available at the moment…

If you are able to find the answer, please make sure to post it here. So that your Juniors have smile on their lips and feel happy.

Spread the 'tradition of sharing'.