Concept explainers
Modified Bin Manager Class
Modify the BinManager class you wrote for
bool addParts (string itemDescription, int q);
bool removeParts (string itemDescription, int q)
int getQuantity(string itemDescription);
These new functions allow parts to be added, parts to be removed, and the quantity in stock for a particular item to be retrieved by using an item description, rather than a bin number, as an argument. In addition to writing the three overloaded functions, you will need to create a private BinManager class function that uses the item description as a search key to locate the index of the desired bin.
Test the new class functions with the same client program you wrote for Programming Challenge 15 in Chapter 8, modifying it to call the new functions. Be sure to use some descriptions that match bins in the array and some that do not.
As you did in the previous Bin Manager program, if an add or remove operation is successfully carried out, make the function return true. If it cannot be done—for example, because the string passed to it does not match any item description in the array—make the function return false. If the getQuantity function cannot locate any item whose description matches the one passed to it, make it return −1.
Want to see the full answer?
Check out a sample textbook solutionChapter 9 Solutions
Starting Out with C++: Early Objects (9th Edition)
Additional Engineering Textbook Solutions
C++ How to Program (10th Edition)
Digital Fundamentals (11th Edition)
Database Concepts (8th Edition)
Concepts Of Programming Languages
C How to Program (8th Edition)
Computer Science: An Overview (13th Edition) (What's New in Computer Science)
- hm help Part 1: Implement a Place class as specified:data members:name - name of the Place (dynamic variable)functions:Place(): default constructor set name to “TBD”Place(string): one argument constructor set nameaccessor - an accessor for the name variablemutator - an mutator for the name variablePart 2: Implement the big three for Place class.Part 3: An operator overload >> function for Place class.An operator overload << function for Place class.Use following main() to test your class.int main() {// part 1Place a1,a2("Bookstore");cout<<"a1: "<<a1.getName()<<endl; // print "a1: TBD"a1.setName("Supermarket");cout<<"a1: "<<a1.getName()<<endl; // print "a1: Supermarket"cout<<"a2: "<<a2.getName()<<endl; // print "a2: Bookstore"// part 2Place b1("Bookstore");cout<<"b1: "<<b1.getName()<<endl; // print "b1: Bookstore"Place b2(b1),b3;cout<<"b2: "<<b2.getName()<<endl; // print "b2:…arrow_forwardRectangle Class Observe the Rectangle class in rectangle.h, and you'll see it has two member variables: length_ and width_. These member variables can be modified with the "Setter functions" SetLength and SetWidth (aka mutator functions) and can be retrieved with the "getter functions" GetLength and GetWidth (aka accessor functions). You will be implementing two member functions of the Rectangle class: Area, and Perimeter. Notice that if a function belongs to a class, when we define the function outside of the class, we indicate that it is a member function of a class using the :: operator. For example, because Area() belongs to the Rectangle class, when we define the function in rectangle.cc, it is written as: int Rectangle::Area() { ... } After implementing these two member functions, you will implement a function, LargestRectangleByArea that compares two input Rectangle objects and returns which of the two is larger, based on its area. Implement the member function Area that…arrow_forwardIn C++ The base class Pet has private data members petName, and petAge. The derived class Dog extends the Pet class and includes a private data member for dogBreed. Complete main() to: create a generic pet and print information using PrintInfo(). create a Dog pet, use PrintInfo() to print information, and add a statement to print the dog's breed using the GetBreed() function. Ex. If the input is: Dobby2Kreacher3German Schnauzer the output is: Pet Information: Name: Dobby Age: 2Pet Information: Name: Kreacher Age: 3 Breed: German Schnauzerarrow_forward
- (Polynomial Class) Develop class Polynomial. The internal representation of a Polynomialis an array of terms. Each term contains a coefficient and an exponent, e.g., the term2x4has the coefficient 2 and the exponent 4. Develop a complete class containing proper constructorand destructor functions as well as set and get functions. The class should also provide the followingoverloaded operator capabilities:a) Overload the addition operator (+) to add two Polynomials.b) Overload the subtraction operator (-) to subtract two Polynomials.c) Overload the assignment operator to assign one Polynomial to another.d) Overload the multiplication operator (*) to multiply two Polynomials.e) Overload the addition assignment operator (+=), subtraction assignment operator (-=),and multiplication assignment operator (*=).arrow_forwardCreate an Employee class that includes three private data members— firstName (type string), lastName (type string), and monthlySalary (type int ).It also includes several public member functions.1. A constructor initializes the three data members. 2. A setFirstName function accepts a string parameter and does not return any data. It sets the firstName.3. A getFirstName function does not accept any parameter and returns a string. It returns the firstName.4. A setLastName function accepts a string parameter and does not return any data. It sets the lastName.5. A getLastName function does not accept any parameter and returns a string. It returns the lastName.6. A setMonthlySalary function accepts an integer parameter and does not return any data. It sets the monthlySalary. If the monthly salary is less than or equal zero, set it to 1000 and it displays the employee’s first name, last name and the inputted salary with a statement “**==The salary is set to $1000.”7. A getMonthlySalary…arrow_forward(RationalNumber Class) Create a class RationalNumber (fractions) with these capabilities:a) Create a constructor that prevents a 0 denominator in a fraction, reduces or simplifiesfractions that are not in reduced form and avoids negative denominators.b) Overload the addition, subtraction, multiplication and division operators for this class.c) Overload the relational and equality operators for this classarrow_forward
- Object passing checklist1. Go over each member function and add the const keyword after their declaration ifthey do not modify any of the class' member variables.2. When accepting objects as parameters, prefer to pass them by reference. Add areference declarator (&) before the identifier name of an object parameter.3. If the member function does not modify the parameter, make the parameter constantby using the const keyword. apply the Object Passing Checklist. Modify food.h and volunteer.h to useobject references. Add const and & keywords in the appropriate places of the code.arrow_forwardCONSTRUCTOR// IntSet()// Pre: (none)// Post: The invoking IntSet is initialized to an empty// IntSet (i.e., one containing no relevant elements).// CONSTANT MEMBER FUNCTIONS (ACCESSORS)// int size() const// Pre: (none)// Post: Number of elements in the invoking IntSet is returned.// bool isEmpty() const// Pre: (none)// Post: True is returned if the invoking IntSet has no relevant// relevant elements, otherwise false is returned.// bool contains(int anInt) const// Pre: (none)// Post: true is returned if the invoking IntSet has anInt as an// element, otherwise false is returned.// bool isSubsetOf(const IntSet& otherIntSet) const// Pre: (none)// Post: True is returned if all elements of the invoking IntSet// are also elements of otherIntSet, otherwise false is// returned.// By definition, true is returned if the invoking IntSet// is empty (i.e., an empty IntSet…arrow_forwardObject passing checklist1. Go over each member function and add the const keyword after their declaration ifthey do not modify any of the class' member variables.2. When accepting objects as parameters, prefer to pass them by reference. Add reference declarator (& before the identifier name of an object parameter.3. If the member function does not modify the parameter, make the parameter constantby using the const keyword. apply the Object Passing Checklist. Modify food.h and volunteer.h to useobject references. Add const and & keywords in the appropriate places of the code.arrow_forward
- (Enhancing Class Rectangle) Create a more sophisticated Rectangle class than the one youcreated in Exercise 17.11. This class stores only the Cartesian coordinates of the four corners of therectangle. The constructor calls a set function that accepts four sets of coordinates and verifies thateach of these is in the first quadrant with no single x- or y-coordinate larger than 20.0. The set function also verifies that the supplied coordinates do, in fact, specify a rectangle. Provide member functions that calculate the length, width, perimeter and area. The length is the larger of the twodimensions. Include a predicate function square that determines whether the rectangle is a squarearrow_forwardIn c++ The student class defines the strings studName and studSSN as protected data members. Aconstructor has arguments that initialize the data. The class studentAthlete has a private datamember sport, which describes the sport the student plays. Both classes have a memberfunction identify(). The base class student outputs the student information in the form student studName Social Security Number studSSN The function in the base class should support polymorphism, and the function in the derivedstudentAthlete class should add the information “Sport <sport>”. In the file “student.h”,declareand implement the two classes in an inheritance hierarchy. In a program, initialize an array of five student pointers as follows: student ja(“John Anderson”, “345-12-3547”);student bw(“Bill Williams”, “286-72-6194”);studentAthlete bj(“Bob Johnson”, “294-87-6295”, “football”);studentAthlete dr(“Dick Robinson”, “669-28-9296”, “baseball”); // list of student pointersstudent *stud[] = {&ja,…arrow_forwardc++ Build the ShoppingCart class with the following specifications. Note: Some can be function stubs (empty functions) initially, to be completed in later steps. Default constructor Parameterized constructor which takes the customer name and date as parameters Private data members string _customerName - Initialized in default constructor to "none" string _currentDate - Initialized in default constructor to "January 1, 2016" vector < ItemToPurchase > _cartItems Public member functions customerName() accessor date() accessor addItem() Adds an item to cart items vector. Has a parameter of type ItemToPurchase. Does not return anything. removeItem() Removes item from cart items vector. Has a parameter of type string (an item's name). Does not return anything. If item name cannot be found, output this message: Item not found in cart. Nothing removed. modifyItem() Modifies an item's description, price, and/or quantity. Has a parameter of type ItemToPurchase. Does not return…arrow_forward
- Microsoft Visual C#Computer ScienceISBN:9781337102100Author:Joyce, Farrell.Publisher:Cengage Learning,