commets pls include ArrayBagh include SetFunctionsh include
commets pls,
#include \"ArrayBag.h\"
#include \"SetFunctions.h\"
#include <string>
using namespace std;
int main()
{
ifstream inFile(\"setInput.txt\");
if (inFile.fail()) //check if file is open or failed
{
cout << \"file could not open\" << endl; //if file not opened print a error message
}
else
{
Set bag1,bag2;
bag1.readfile(inFile);
bag2.readfile(inFile);
inFile.close();
cout << \"bag1:\" << endl; cout << bag1 << endl << endl;
cout << \"bag2:\" << endl; cout << bag2 << endl << endl;
cout << \"bag1 - bag2:\" << endl; cout << bag1 - bag2 << endl<< endl;
cout << \"bag1 + bag2:\" << endl; cout << bag1 + bag2 << endl << endl;
}
}
#include \"ArrayBag.h\"
#include \"SetFunctions.h\"
#include <fstream>
#include <sstream>
#include <string>
using namespace std;
Set::Set()
{
bag = ArrayBag();
}
bool Set::add(int newValue)
{
if(!bag.contains(newValue))
return bag.add(newValue);
if( bag.getCurrentSize() < bag.getMaxSize() )
return true;
else
return false;
}
bool Set::remove(int removeValue)
{
return bag.remove(removeValue);
}
bool Set::readfile(ifstream& inFile)
{
stringstream ss;
int tempInt;
string readString;
getline(inFile, readString);
ss << readString;
while(!ss.eof())
{
ss >> tempInt;
if(ss.fail())
{
cout << \"Input contains non-integer data \ \" << endl;
ss.clear();
return false;
}
add(tempInt);
}
return true;
}
Set operator+(const Set lhs, const Set rhs)
{
Set Union;
for(int i = 0; i < lhs.bag.getCurrentSize(); i++)
{
Union.add(lhs.bag[i]);
}
for(int i = 0; i < rhs.bag.getCurrentSize(); i++)
{
Union.add(rhs.bag[i]);
}
return Union;
}
Set operator-(const Set lhs, const Set rhs)
{
Set difference;
for(int i = 0; i < lhs.bag.getCurrentSize(); i++)
{
difference.add(lhs.bag[i]);
}
for(int i = 0; i < rhs.bag.getCurrentSize(); i++)
{
difference.remove(rhs.bag[i]);
}
return difference;
}
ostream& operator<<(ostream &op, const Set output)
{
for(int i = 0; i < output.bag.getCurrentSize(); i++)
{
op << output.bag[i] <<\'\\t\';
}
return op;
}
#include\"ArrayBag.h\"
#include<iostream>
#include<fstream>
using namespace std;
class Set
{
private:
ArrayBag bag;
public:
Set();
bool add(const int newValue);
bool remove(const int removeValue);
bool readfile( ifstream& inFile);
friend Set operator+(const Set lhs, const Set rhs);
friend Set operator-(const Set lhs, const Set rhs);
friend ostream& operator<<(ostream &os, const Set output);
};
Set operator+(const Set lhs, const Set rhs);
Set operator-(const Set lhs, const Set rhs);
ostream& operator<<(ostream &op, const Set output);
Solution
Here is the code for you:
//commets pls,
 #include \"ArrayBag.h\"
 #include \"SetFunctions.h\"
 #include <string>
 using namespace std;
 int main()
 {
   
   
 ifstream inFile(\"setInput.txt\");   //Creates an input file stream with the specified file.
 if (inFile.fail()) //check if file opening failed
 {
 cout << \"file could not open\" << endl; //if file not opened print a error message
 }
 else       //If not failed.
 {
 Set bag1,bag2;   //Declares 2 objects of type Set.
 bag1.readfile(inFile);   //Reads the object bag1 from the file stream.
 bag2.readfile(inFile);   //Reads the object bag2 from the file stream.
   
 inFile.close();   //Close the file stream.
   
 cout << \"bag1:\" << endl; cout << bag1 << endl << endl;   //Prints the bag1 object.
 cout << \"bag2:\" << endl; cout << bag2 << endl << endl;   //Prints the bag2 object.
 cout << \"bag1 - bag2:\" << endl; cout << bag1 - bag2 << endl<< endl;   //Prints the result of bag1 - bag2.
 cout << \"bag1 + bag2:\" << endl; cout << bag1 + bag2 << endl << endl;   //Prints the result of bag1 + bag2.
 }
   
 }
 #include \"ArrayBag.h\"
 #include \"SetFunctions.h\"
 #include <fstream>
 #include <sstream>
 #include <string>
 using namespace std;
 Set::Set()       //Set class constructor.
 {
 bag = ArrayBag();   //Creates an ArrayBag.
 }
 bool Set::add(int newValue)   //Adds an element to set, and returns true if added, and false otherwise.
 {
 if(!bag.contains(newValue))   //If the bag doesn\'t contains the newValue.
 return bag.add(newValue);   //Add it to the set, and return the value.
 if( bag.getCurrentSize() < bag.getMaxSize() )   //If the bag current size is less than the allowable maximum bag size.
 return true;               //Return true.
   
 else                       //If not.
 return false;               //Return false.
 }
 bool Set::remove(int removeValue)   //Removes an element from the set, and return true, if removed successfully.
 {
 return bag.remove(removeValue);       //Calls the remove() method to remove the removeValue from the bag object.
 }
 bool Set::readfile(ifstream& inFile)   //Reads the set from the file stream inFile.
 {
 stringstream ss;       //Declares a stringstream.
 int tempInt;           //Declares an integer.
 string readString;       //Declares a string.
   
 getline(inFile, readString);   //Reads a line of text from filestream into string.
 ss << readString;               //Creates a string stream with that read string.
   
 while(!ss.eof())               //As long as the string stream is not empty.
 {
 ss >> tempInt;                   //Read an integer from stream.
 if(ss.fail())                   //If the reading fails.
 {
 cout << \"Input contains non-integer data \ \" << endl;   //Print to screen, that read value is not integer.
 ss.clear();                       //And clear the stream.
 return false;                   //Return false.
 }
 add(tempInt);                   //If reading succeeds, add the integer to Set.
 }
 return true;                   //Return true.
   
 }
 Set operator+(const Set lhs, const Set rhs)   //Adds 2 sets, i.e., performs union operation for sets lhs, and rhs.
 {
 Set Union;   //Declares a set union.
 for(int i = 0; i < lhs.bag.getCurrentSize(); i++)   //For each element in the set lhs.
 {
 Union.add(lhs.bag[i]);       //Add it to the newly created set union.
 }
 for(int i = 0; i < rhs.bag.getCurrentSize(); i++)   //For each element in the set rhs.
 {
 Union.add(rhs.bag[i]);       //Add it to the newly created set union.
 }
 return Union;               //Returns the newly created set union.
 }
 Set operator-(const Set lhs, const Set rhs)   //Finds the difference between the set lhs, and rhs.
 {
 Set difference;   //Declares a set difference.
   
 for(int i = 0; i < lhs.bag.getCurrentSize(); i++)   //For each element in set lhs.
 {
 difference.add(lhs.bag[i]);   //Add it to newly created set difference.
 }
   
 for(int i = 0; i < rhs.bag.getCurrentSize(); i++)   //For each element in set rhs.
 {
 difference.remove(rhs.bag[i]);   //Remove it from the set difference.
 }
 return difference;               //Return the newly created set difference.
 }
 ostream& operator<<(ostream &op, const Set output)   //Overloads the outputstream operator.
 {
 for(int i = 0; i < output.bag.getCurrentSize(); i++)   //For each element in the set output.
 {
 op << output.bag[i] <<\'\\t\';   //Add it to the output stream op, succeeding with a space.
 }
   
 return op;   //Returns op.
 }
 #include\"ArrayBag.h\"
 #include<iostream>
 #include<fstream>
 using namespace std;
 class Set   //Defines a Set class.
 {
 private:       //Declares private variables.
 ArrayBag bag;   //An object bag of type ArrayBag
   
 public:           //Declares public methods.
 Set();           //Declares a constructor.
 bool add(const int newValue);   //Declares a method add()
   
 bool remove(const int removeValue);   //Declares a method remove()
   
 bool readfile( ifstream& inFile);   //Declares a method readFile()
   
 friend Set operator+(const Set lhs, const Set rhs);   //Overloads the + operator.
   
 friend Set operator-(const Set lhs, const Set rhs);   //Overloads the - operator.
 friend ostream& operator<<(ostream &os, const Set output);   //Overloads the outputstream operator.
 };
 Set operator+(const Set lhs, const Set rhs);   //Overloads the + operator.
 Set operator-(const Set lhs, const Set rhs);   //Overloads the - operator.
 ostream& operator<<(ostream &op, const Set output);   //Overloads the outputstream operator.







