Starting from:
$35

$29

In-Class Assignment Solution

Create class IntegerSet for which each object can hold integers in the range 0 through 100. A set is represented internally as an array of ones and zeros. Array element a[ i ] is 1 if integer i is in the set. Array element a[ j ] is 0 if integer j is not in the set. The default constructor initializes a set to the so-called “empty-set,” i.e., a set whose array representation contains all zeros. 

Class IntegerSet has the following member functions:

    1. inputSet: read values from user
    2. unionOfSets: create a third set that is the set union of two existing sets (i.e., an element of the third array’s is set to 1 if that element is 1 in either or both of the existing sets, and an element of the third set’s array is set to 0 if that element is 0 in each of the existing sets). 
    3. intersectionOfSets: create a third set that is the set intersection of two existing sets (i.e., an element of the third array’s is set to 1 if that element is 1 in both of the existing sets, and an element of the third set’s array is set to 0 if that element is 0 in either of the existing sets).
    4. printSet: print a set as a list of numbers separated by spaces in between a pair of curly braces. Print only those elements which are present in the set (i.e., their position in the array has a value of 1).

The following is a template that you need to use for your program - you need to fill in the necessary components in the template to make it work:

// IntegerSet.h
// Header file for class IntegerSet

#ifndef INTEGER_SET_H
#define INTEGER_SET_H

class IntegerSet
{
public:
IntegerSet( ); // constructor

/* Write a member funcion prototype for UnionOfSets */

void inputSet(); // read values from user

void printSet() const;

private:
int set[ 101 ]; // range of 0 - 100

// determines a valid entry to the set
int validEntry( int x) const
{
return ( x >= 0 && x <= 100 );
} // end function validEntry
};

----------------------------------------------------------------------------------------------------

// IntegerSet.cpp
// Member-function definitions for class IntegerSet.

#include <iostream>
#include <iomanip>
using namespace std;

/* Write include directive for IntegerSet.h here */

// constructor
IntegerSet::IntegerSet()
{
for ( int i = 0; i < 101; i++ ) set[ i ] = 0;
} // end IntegerSet constructor

// input a set from the user
void IntegerSet::inputSet()
{
int number;

do
{
cout << "Enter an element (-1 to end): ";
cin >> number;

if ( validEntry( number ) )
set[ number ] = 1;
else if ( number != -1 )
cout << "Invalid Element\n";
} while ( number != -1 ); // end do...while

cout << "Entry complete\n";
} // end function inputSet

// prints the set to the output stream
void IntegerSet::printSet() const
{
cout << “{ “;

for (int u = 0; u < 101; u++ )
if ( set[ u ] ) cout << u << “ “;

cout << "}" << endl;
} // end function printSet

/* Write definition for unionOfSets */

/* Write definition for intersectionOfSets */


----------------------------------------------------------------------------------------------------


// SetTest.cpp
// Driver program for class IntegerSet.

#include <iostream>
using namespace std;

#include "IntegerSet.h" // IntegerSet class definition

int main()
{
IntegerSet a;
IntegerSet b;
IntegerSet c;
IntegerSet d;

cout << "Enter set A:\n";
a.inputSet();
cout << “\nSet A is:\n”;
a.printSet();

cout << "\nEnter set B:\n";
b.inputSet();
cout << “\nSet B is:\n”;
b.printSet();

/* Write call to unionOfSets for object a, passing b as argument and assigning the result to c */

cout << "\nUnion of A and B is:\n";
c.printSet();

/* Write call to intersectionOfSets for object a, passing b as argument and assigning the result to d */

cout << "\nIntersection of A and B is:\n";
d.printSet();


return 0;
}


----------------------------------------------------------------------------------------------------


The following is a sample output of your program:

Enter set A:
Enter an element (-1 to end): 45
Enter an element (-1 to end): 76
Enter an element (-1 to end): 34
Enter an element (-1 to end): 6
Enter an element (-1 to end): -1
Entry complete

Set A is:
{ 6 34 45 76 }

Enter set B:
Enter an element (-1 to end): 34
Enter an element (-1 to end): 8
Enter an element (-1 to end): 93
Enter an element (-1 to end): 45
Enter an element (-1 to end): -1
Entry complete

Set B is:
{ 8 34 45 93 }

Union of A and B is:
{ 6 8 34 45 76 93 }

Intersection of A and B is:
{ 34, 45 }

More products