// File Name: IntegerSet.h // Assignment: IntegerSet // Description: head of IntegerSet Class # ifndef INTEGERSET_H # define INTEGERSET_Hclass IntegerSet {public: IntegerSet (); // default constructor; IntegerSet (int * set, int size); // Constructor from an int arch; integerset (constreset & ing); // Copy Constructor; // Three Ways to Initialize the Instance;
friend std :: istream & operator >> (std :: istream & cin, IntegerSet & ia); // input overload friend std :: ostream & operator << (std :: ostream & cout, IntegerSet & ia); // output overload void printSet (std :: ostream & ostr = std :: cout); // output the instal;
IntegerSet operator (IntegerSet & addedSet); // overload union IntegerSet operator- (IntegerSet & subbedSet); // overload intersection void unionOf (const IntegerSet & set1, const IntegerSet & set2); void intersectionOf (const IntegerSet & set1, const IntegerSet & set2); bool isEqualTo ( Const IntegerseT & Set;
Void insertelement (int Num); void deleteElement (int Num);
Bool isinset (int Num); Private: Bool Integer [101];}; / * std :: ostream & operator << (std :: ostream & cout, integerseet & {cout << {"; for (int index = 0 Index <= 100; INDEX ) {IF (Ia.Integer [index] == true) cout << ia.integer [index] << ",";} cout << "}"; returnit;
} * /
# Endif // IntegerseT.cpp // Assignment: IntegerseEt // Description: Detail of Integerset Class # include
Integerset :: Integerset () {// Initialize the set haVing no integer
For (int index = 0; index <= 100; index ) integer [index] = false;}
IntegerSet :: IntegerseT (Const IntegerseT & Ia) {// Initialize The Set Using Copy Constructor for (INDEX = 0; Index <= 100; Index ) Integer [Index] = false; for (INDEX = 0; index <= 100 ; index ) this-> integer [index] = true;} integer :: Integerset (int * set, int size) {// initialize the set from a integer array
For (int index = 0; index <= 100; index ) integer [index] = false; for (index = 0; index Void IntegerseEt :: UnionOf (Const INTEGERSET & SET1, Const IntegerseT & Set2) {for (int index = 0; index <= 100; index ) {ix (set1.integer [index] == true || set2.integer [index] = = True) this-> integer [index] = true; else this-> integer [index] = false;}} void IntegerSet :: intersectionOf (const IntegerSet & set1, const IntegerSet & set2) {for (int index = 0; index <= 100; index ) {if (set1.integer [index] == true && set2.integer [index] == true) This-> integer [index] = true; else this-> integer [index] = false;}} Bool IntegerseEt :: ISEQUALTO (Const IntegerseT & Set) {Int Index; for (INDEX = 0; Index <= 100; Index ) {IF (Integer [Index]! = set.integer [index]) Return False;} Return True; } void integerSet :: PrintSet (std :: ostream & ostr) { Ostr << "{"; for (int index = 0; index <= 100; index ) {if (this-> isinset (index)) ostr << index << ",";} ostr << '/ b' ; ostr << "}" << std :: endl;} void IntegerSet :: insertElement (int num) {if (num <= 100 && num> = 0) this-> integer [num] = true;} void IntegerSet :: DeleteElement (int Num) {if (Num <= 100 && num> = 0) this-> integer [Num] = false; BOOL Integerse :: isinset (int Num) {Return this-> integer [Num]; IntegerseEther (IntegerseT & Addedset) {Integerseet Temp; for (int index = 0; index <= 100; index ) {if (this-> integer [index] == true || addedset.integer [index] == true) temp.integer [index] = true; else temp.integer [index] = false;} return temp;} IntegerSet IntegerSet :: operator- (IntegerSet & subbedSet) {IntegerSet temp; for (int index = 0; index <= 100; Index ) {if (this-> integer [index] == true && subsdset.integer [index] == true) TEMP.INTEGER [index] = true; else temp.integer [index] = false;} returnit temp; // File name: Test.cpp // Assignment: IntegerseEt // Description: Test of Integerseet CLASS #include using namespace std; istream & operator >> (istream & cin, IntegerSet & ia); ostream & operator << (ostream & cout, IntegerSet & ia); // Integer Class's friend to cin and cout IntegerSet // cin and cout overload Int main () { INTEGERSET INTSET1, INTSET2, CLEAR; // Three Ways to Initialize In Fact // Use Default Construction Char flag = 'y'; // flag to decide What Quit DO {intSet1.intersectionof (int set1, clear); int set2.intersectionof (int set2, clear); cout << "Enter set1:"; cin >> int set1; cout << "enter set2"; cin >> int set2; COUT << "set1 is:" << intSet1; cout << "set2 is:"; intset2.printset (); // two ways to output; Cout << "set1 == set2:" << intSet1.isequalto (int set2) << ENDL; IntegerSet temp; // temp instance to hold the output of intersection and union //temp.intersectionOf(intset1,intset2); cout << "Intersection of both sets is" << intset1-intset2; //temp.unionOf(intset1, INTSET2); COUT << "Union of Both sets IS" << INTSET1 INTSET2; INT INDEX; Char ch; // Temp Variable for Input Cout << "Enter NumBers To Remove from Set 1:"; Do {CIN >> Index; ch = cin.get (); if (index <= 100 && index> = 0) intSet1.deleteElement (index);} while (ch! = '/ n'); // use int AND 'FORMAT TO INPUT / / Take Enter as Finish Sign COUT << "Enter Numbers to INSERT INTO SET 2:"; Do {CIN >> INDEX; CH = cin.get (); if (Index <= 100 && index> = 0) int set2.insertelement (index);} while (chile " ! = '/ n'); // use int AND '' Format to Input // Take Enter as Finish Sign Cout << "set1 is:" << intSet1; cout << "set2 is:" << intert2; Cout << "set1 == set2:" << intSet1.isequalto (int set2) << ENDL; Temp.intersectionof (intSet1, intset2); cout << "intersection of Both sets IS" << Temp; Temp.unionof (int set1, intset2); cout << "union of Both sets is" << Temp; Cout << " Another try? y / n: "; flag = cin.get ();} while (flag! = 'n'); return 0;}}}}}}}}}} }tream & cout, integerset & {cout <<" { "; For (int index = 0; index <= 100; index ) {if (Ia.integer [index] == true) cout << index << ',';} cout << '/ b'; cout < <"}" << Endl; Return Cout;} istream & operator >> (Int index; char ch; cout << "INDEX; DO {CIN >> Index; Get (); if (INDEX <= 100 && index> = 0)};} while (ch! = '/ n'); return cin;}