With the following class, ArrayBag, and BagInterface#ifndef _BAG_.pdf

With the following class, ArrayBag, and BagInterface: #ifndef _BAG_INTERFACE #define _BAG_INTERFACE #include using namespace std; template class BagInterface { public: /** Gets the current number of entries in this bag. @return The integer number of entries currently in the bag. */ virtual int getCurrentSize() const = 0; /** Sees whether this bag is empty. @return True if the bag is empty, or false if not. */ virtual bool isEmpty() const = 0; /** Adds a new entry to this bag. @post If successful, newEntry is stored in the bag and the count of items in the bag has increased by 1. @param newEntry The object to be added as a new entry. @return True if addition was successful, or false if not. */ virtual bool add(const ItemType& newEntry) = 0; /** Removes one occurrence of a given entry from this bag, if possible. @post If successful, anEntry has been removed from the bag and the count of items in the bag has decreased by 1. @param anEntry The entry to be removed. @return True if removal was successful, or false if not. */ virtual bool remove(const ItemType& anEntry) = 0; /** Removes all entries from this bag. @post Bag contains no items, and the count of items is 0. */ virtual void clear() = 0; /** Counts the number of times a given entry appears in bag. @param anEntry The entry to be counted. @return The number of times anEntry appears in the bag. */ virtual int getFrequencyOf(const ItemType& anEntry) = 0; /** Tests whether this bag contains a given entry. @param anEntry The entry to locate. @return True if bag contains anEntry, or false otherwise. */ virtual bool contains(const ItemType& anEntry) = 0; /** Empties and then fills a given vector with all entries that are in this bag. @return A vector containing all the entries in the bag. */ virtual vector toVector() const = 0; virtual void display() const = 0; virtual ItemType getElement(int index) const = 0; }; // end BagInterface #endif //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ////////////// #ifndef _ARRAY_BAG #define _ARRAY_BAG #include "BagInterface.h" template class ArrayBag : public BagInterface { private: static const int DEFAULT_CAPACITY = 6; // Small size to test for a full bag ItemType items[DEFAULT_CAPACITY]; // Array of bag items int itemCount; // Current count of bag items int maxItems; // Max capacity of the bag // Returns either the index of the element in the array items that // contains the given target or -1, if the array does not contain // the target. int getIndexOf(const ItemType& target); public: ArrayBag(); int getCurrentSize() const; bool isEmpty() const; bool add(const ItemType& newEntry); bool remove(const ItemType& anEntry); void clear(); bool contains(const ItemType& anEntry); int getFrequencyOf(const ItemType& anEntry); vector toVector() const; void display() const; ItemType getElement(int index) const; }; // end ArrayBag template ArrayBag::ArrayBag() : itemCount(0), m.

With the following class, ArrayBag, and BagInterface:
#ifndef _BAG_INTERFACE
#define _BAG_INTERFACE
#include
using namespace std;
template
class BagInterface
{
public:
/** Gets the current number of entries in this bag.
@return The integer number of entries currently in the bag. */
virtual int getCurrentSize() const = 0;
/** Sees whether this bag is empty.
@return True if the bag is empty, or false if not. */
virtual bool isEmpty() const = 0;
/** Adds a new entry to this bag.
@post If successful, newEntry is stored in the bag and
the count of items in the bag has increased by 1.
@param newEntry The object to be added as a new entry.
@return True if addition was successful, or false if not. */
virtual bool add(const ItemType& newEntry) = 0;
/** Removes one occurrence of a given entry from this bag,
if possible.
@post If successful, anEntry has been removed from the bag
and the count of items in the bag has decreased by 1.
@param anEntry The entry to be removed.
@return True if removal was successful, or false if not. */
virtual bool remove(const ItemType& anEntry) = 0;
/** Removes all entries from this bag.
@post Bag contains no items, and the count of items is 0. */
virtual void clear() = 0;
/** Counts the number of times a given entry appears in bag.
@param anEntry The entry to be counted.
@return The number of times anEntry appears in the bag. */
virtual int getFrequencyOf(const ItemType& anEntry) = 0;
/** Tests whether this bag contains a given entry.
@param anEntry The entry to locate.
@return True if bag contains anEntry, or false otherwise. */
virtual bool contains(const ItemType& anEntry) = 0;
/** Empties and then fills a given vector with all entries that
are in this bag.
@return A vector containing all the entries in the bag. */
virtual vector toVector() const = 0;
virtual void display() const = 0;
virtual ItemType getElement(int index) const = 0;
}; // end BagInterface
#endif
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////
#ifndef _ARRAY_BAG
#define _ARRAY_BAG
#include "BagInterface.h"
template
class ArrayBag : public BagInterface
{
private:
static const int DEFAULT_CAPACITY = 6; // Small size to test for a full bag
ItemType items[DEFAULT_CAPACITY]; // Array of bag items
int itemCount; // Current count of bag items
int maxItems; // Max capacity of the bag
// Returns either the index of the element in the array items that
// contains the given target or -1, if the array does not contain
// the target.
int getIndexOf(const ItemType& target);
public:
ArrayBag();
int getCurrentSize() const;
bool isEmpty() const;
bool add(const ItemType& newEntry);
bool remove(const ItemType& anEntry);
void clear();
bool contains(const ItemType& anEntry);
int getFrequencyOf(const ItemType& anEntry);
vector toVector() const;
void display() const;
ItemType getElement(int index) const;
}; // end ArrayBag
template
ArrayBag::ArrayBag() : itemCount(0), maxItems(DEFAULT_CAPACITY)
{
} // end default constructor
template
int ArrayBag::getCurrentSize() const
{
return itemCount;
} // end getCurrentSize
template
bool ArrayBag::isEmpty() const
{
return itemCount == 0;
} // end isEmpty
template
bool ArrayBag::add(const ItemType& newEntry)
{
bool hasRoomToAdd = (itemCount < maxItems);
if (hasRoomToAdd)
{
items[itemCount] = newEntry;
itemCount++;
} // end if
return hasRoomToAdd;
} // end add
/*
// STUB
template
bool ArrayBag::remove(const ItemType& anEntry)
{
return false; // STUB
} // end remove
*/
template
bool ArrayBag::remove(const ItemType& anEntry)
{
int locatedIndex = getIndexOf(anEntry);
bool canRemoveItem = !isEmpty() && (locatedIndex > -1);
if (canRemoveItem)
{
itemCount--;
items[locatedIndex] = items[itemCount];
} // end if
return canRemoveItem;
} // end remove
/*
// STUB
template
void ArrayBag::clear()
{
// STUB
} // end clear
*/
template
void ArrayBag::clear()
{
itemCount = 0;
} // end clear
template
int ArrayBag::getFrequencyOf(const ItemType& anEntry)
{
int frequency = 0;
int curIndex = 0; // Current array index
while (curIndex < itemCount)
{
if (items[curIndex] == anEntry)
{
frequency++;
} // end if
curIndex++; // Increment to next entry
} // end while
return frequency;
} // end getFrequencyOf
template
bool ArrayBag::contains(const ItemType& anEntry)
{
return getIndexOf(anEntry) > -1;
} // end contains
/* ALTERNATE 1: First version
template
bool ArrayBag::contains(const ItemType& target) const
{
return getFrequencyOf(target) > 0;
} // end contains
// ALTERNATE 2: Second version
template
bool ArrayBag::contains(const ItemType& anEntry) const
{
bool found = false;
int curIndex = 0; // Current array index
while (!found && (curIndex < itemCount))
{
if (anEntry == items[curIndex])
{
found = true;
} // end if
curIndex++; // Increment to next entry
} // end while
return found;
} // end contains
*/
template
vector ArrayBag::toVector() const
{
vector bagContents;
for (int i = 0; i < itemCount; i++)
bagContents.push_back(items[i]);
return bagContents;
} // end toVector
// private
template
int ArrayBag::getIndexOf(const ItemType& target)
{
bool found = false;
int result = -1;
int searchIndex = 0;
// If the bag is empty, itemCount is zero, so loop is skipped
while (!found && (searchIndex < itemCount))
{
if (items[searchIndex] == target)
{
found = true;
result = searchIndex;
}
else
{
searchIndex++;
} // end if
} // end while
return result;
} // end getIndexOf
template
void ArrayBag::display() const
{
for (int count = 0; count < getCurrentSize(); count++) {
cout << items[count] << ",";
}//end for
cout << endl;
} //end display
template
ItemType ArrayBag::getElement(int index) const {
return items[index];
}
#endif
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////
1.Define a class named Term that has two attributes:
-coef: Hold the coefficient int data type of the term.
-exp: Hold the exponent int data type of the term.
-Overload the Stream Extraction/ Insertion) operators ( >>,<<).
-Overload the binary operator (+=) that sums two terms.
2.Define a class named Polynomial that has one attribute:
-poly: Hold the polynomial of ArrayBag data type.
-Overload the binary operator ( + ) to Compute the sum of two polynomials.
-Perform the rest of the operations described in the problem.
3. Create a polynomial with five terms.

Contenu connexe

Similaire à With the following class, ArrayBag, and BagInterface#ifndef _BAG_.pdf(20)

Chapt03Chapt03
Chapt03
FALLEE31188296 vues
Swift Programming LanguageSwift Programming Language
Swift Programming Language
Anıl Sözeri2.5K vues

Plus de amikoenterprises(20)

Dernier(20)

Streaming Quiz 2023.pdfStreaming Quiz 2023.pdf
Streaming Quiz 2023.pdf
Quiz Club NITW97 vues
discussion post.pdfdiscussion post.pdf
discussion post.pdf
jessemercerail85 vues
ICS3211_lecture 08_2023.pdfICS3211_lecture 08_2023.pdf
ICS3211_lecture 08_2023.pdf
Vanessa Camilleri79 vues
AI Tools for Business and StartupsAI Tools for Business and Startups
AI Tools for Business and Startups
Svetlin Nakov74 vues
ANATOMY AND PHYSIOLOGY UNIT 1 { PART-1}ANATOMY AND PHYSIOLOGY UNIT 1 { PART-1}
ANATOMY AND PHYSIOLOGY UNIT 1 { PART-1}
DR .PALLAVI PATHANIA190 vues
BYSC infopack.pdfBYSC infopack.pdf
BYSC infopack.pdf
Fundacja Rozwoju Społeczeństwa Przedsiębiorczego160 vues
Material del tarjetero LEES Travesías.docxMaterial del tarjetero LEES Travesías.docx
Material del tarjetero LEES Travesías.docx
Norberto Millán Muñoz60 vues
SIMPLE PRESENT TENSE_new.pptxSIMPLE PRESENT TENSE_new.pptx
SIMPLE PRESENT TENSE_new.pptx
nisrinamadani2159 vues
Narration lesson plan.docxNarration lesson plan.docx
Narration lesson plan.docx
TARIQ KHAN92 vues
Psychology KS5Psychology KS5
Psychology KS5
WestHatch56 vues
Chemistry of sex hormones.pptxChemistry of sex hormones.pptx
Chemistry of sex hormones.pptx
RAJ K. MAURYA107 vues
ICANNICANN
ICANN
RajaulKarim2061 vues
Azure DevOps Pipeline setup for Mule APIs #36Azure DevOps Pipeline setup for Mule APIs #36
Azure DevOps Pipeline setup for Mule APIs #36
MysoreMuleSoftMeetup84 vues
Scope of Biochemistry.pptxScope of Biochemistry.pptx
Scope of Biochemistry.pptx
shoba shoba119 vues
GSoC 2024GSoC 2024
GSoC 2024
DeveloperStudentClub1056 vues
Drama KS5 BreakdownDrama KS5 Breakdown
Drama KS5 Breakdown
WestHatch54 vues

With the following class, ArrayBag, and BagInterface#ifndef _BAG_.pdf

  • 1. With the following class, ArrayBag, and BagInterface: #ifndef _BAG_INTERFACE #define _BAG_INTERFACE #include using namespace std; template class BagInterface { public: /** Gets the current number of entries in this bag. @return The integer number of entries currently in the bag. */ virtual int getCurrentSize() const = 0; /** Sees whether this bag is empty. @return True if the bag is empty, or false if not. */ virtual bool isEmpty() const = 0; /** Adds a new entry to this bag. @post If successful, newEntry is stored in the bag and the count of items in the bag has increased by 1. @param newEntry The object to be added as a new entry. @return True if addition was successful, or false if not. */ virtual bool add(const ItemType& newEntry) = 0; /** Removes one occurrence of a given entry from this bag, if possible. @post If successful, anEntry has been removed from the bag and the count of items in the bag has decreased by 1. @param anEntry The entry to be removed. @return True if removal was successful, or false if not. */ virtual bool remove(const ItemType& anEntry) = 0; /** Removes all entries from this bag. @post Bag contains no items, and the count of items is 0. */ virtual void clear() = 0; /** Counts the number of times a given entry appears in bag. @param anEntry The entry to be counted. @return The number of times anEntry appears in the bag. */ virtual int getFrequencyOf(const ItemType& anEntry) = 0;
  • 2. /** Tests whether this bag contains a given entry. @param anEntry The entry to locate. @return True if bag contains anEntry, or false otherwise. */ virtual bool contains(const ItemType& anEntry) = 0; /** Empties and then fills a given vector with all entries that are in this bag. @return A vector containing all the entries in the bag. */ virtual vector toVector() const = 0; virtual void display() const = 0; virtual ItemType getElement(int index) const = 0; }; // end BagInterface #endif //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ////////////// #ifndef _ARRAY_BAG #define _ARRAY_BAG #include "BagInterface.h" template class ArrayBag : public BagInterface { private: static const int DEFAULT_CAPACITY = 6; // Small size to test for a full bag ItemType items[DEFAULT_CAPACITY]; // Array of bag items int itemCount; // Current count of bag items int maxItems; // Max capacity of the bag // Returns either the index of the element in the array items that // contains the given target or -1, if the array does not contain // the target. int getIndexOf(const ItemType& target); public: ArrayBag(); int getCurrentSize() const; bool isEmpty() const; bool add(const ItemType& newEntry); bool remove(const ItemType& anEntry); void clear();
  • 3. bool contains(const ItemType& anEntry); int getFrequencyOf(const ItemType& anEntry); vector toVector() const; void display() const; ItemType getElement(int index) const; }; // end ArrayBag template ArrayBag::ArrayBag() : itemCount(0), maxItems(DEFAULT_CAPACITY) { } // end default constructor template int ArrayBag::getCurrentSize() const { return itemCount; } // end getCurrentSize template bool ArrayBag::isEmpty() const { return itemCount == 0; } // end isEmpty template bool ArrayBag::add(const ItemType& newEntry) { bool hasRoomToAdd = (itemCount < maxItems); if (hasRoomToAdd) { items[itemCount] = newEntry; itemCount++; } // end if return hasRoomToAdd; } // end add /* // STUB template bool ArrayBag::remove(const ItemType& anEntry) {
  • 4. return false; // STUB } // end remove */ template bool ArrayBag::remove(const ItemType& anEntry) { int locatedIndex = getIndexOf(anEntry); bool canRemoveItem = !isEmpty() && (locatedIndex > -1); if (canRemoveItem) { itemCount--; items[locatedIndex] = items[itemCount]; } // end if return canRemoveItem; } // end remove /* // STUB template void ArrayBag::clear() { // STUB } // end clear */ template void ArrayBag::clear() { itemCount = 0; } // end clear template int ArrayBag::getFrequencyOf(const ItemType& anEntry) { int frequency = 0; int curIndex = 0; // Current array index while (curIndex < itemCount) { if (items[curIndex] == anEntry)
  • 5. { frequency++; } // end if curIndex++; // Increment to next entry } // end while return frequency; } // end getFrequencyOf template bool ArrayBag::contains(const ItemType& anEntry) { return getIndexOf(anEntry) > -1; } // end contains /* ALTERNATE 1: First version template bool ArrayBag::contains(const ItemType& target) const { return getFrequencyOf(target) > 0; } // end contains // ALTERNATE 2: Second version template bool ArrayBag::contains(const ItemType& anEntry) const { bool found = false; int curIndex = 0; // Current array index while (!found && (curIndex < itemCount)) { if (anEntry == items[curIndex]) { found = true; } // end if curIndex++; // Increment to next entry } // end while return found; } // end contains */ template
  • 6. vector ArrayBag::toVector() const { vector bagContents; for (int i = 0; i < itemCount; i++) bagContents.push_back(items[i]); return bagContents; } // end toVector // private template int ArrayBag::getIndexOf(const ItemType& target) { bool found = false; int result = -1; int searchIndex = 0; // If the bag is empty, itemCount is zero, so loop is skipped while (!found && (searchIndex < itemCount)) { if (items[searchIndex] == target) { found = true; result = searchIndex; } else { searchIndex++; } // end if } // end while return result; } // end getIndexOf template void ArrayBag::display() const { for (int count = 0; count < getCurrentSize(); count++) { cout << items[count] << ","; }//end for cout << endl;
  • 7. } //end display template ItemType ArrayBag::getElement(int index) const { return items[index]; } #endif //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /////////// 1.Define a class named Term that has two attributes: -coef: Hold the coefficient int data type of the term. -exp: Hold the exponent int data type of the term. -Overload the Stream Extraction/ Insertion) operators ( >>,<<). -Overload the binary operator (+=) that sums two terms. 2.Define a class named Polynomial that has one attribute: -poly: Hold the polynomial of ArrayBag data type. -Overload the binary operator ( + ) to Compute the sum of two polynomials. -Perform the rest of the operations described in the problem. 3. Create a polynomial with five terms.