Note that there are some explanatory texts on larger screens.

plurals
  1. POIntegerSet in C++
    primarykey
    data
    text
    <p>I am having problems with an assignment. The assignment is to create an IntegerSet an IntegerSet is an array of 100 elements that represents the numbers from 0 to 99 for example if the number 5 is present in set a then <code>a[5] = 1</code>, an empty set is an array of zeroes.</p> <p>I created a class called IntegerSet and here is the code in integerSet.cpp</p> <pre><code>#include "integerset.h" #include &lt;iostream&gt; using std::cout; using std::endl; IntegerSet::IntegerSet(){ int temp[100] = {0}; set = temp; } IntegerSet::IntegerSet(int * setPtr) { set = setPtr; } void IntegerSet::insertElement(int toInsert) { if(toInsert &lt; 100 &amp;&amp; toInsert &gt;= 0) { set[toInsert] = 1; } } void IntegerSet::deleteElement(int toDelete) { if (toDelete &lt; 100 &amp;&amp; toDelete &gt;= 0 ) { set[toDelete] = 0; } } IntegerSet * IntegerSet::unionOfSets(IntegerSet * otherPtr) { int newSet[100] = {0}; for(int i = 0; i &lt; 100; i++ ) { if (this-&gt;set[i] == 1 || otherPtr-&gt;set[i] == 1) { newSet[i] = 1; } } return new IntegerSet(newSet); } IntegerSet * IntegerSet::intersectionOfSets(IntegerSet* otherPtr) { int newSet[100] = {0}; for(int i = 0; i &lt; 100 ; i++) { if(this-&gt;set[i] == 1 &amp;&amp; otherPtr-&gt;set[i] == 1){ newSet[i] = 1; } } return new IntegerSet(newSet); } bool IntegerSet::isEmpty(){ for(int i = 0 ; i &lt; 100 ; i++) { if(set[i] == 1) { return false; } } return true; } bool IntegerSet::isEqualTo(IntegerSet * otherPtr) { for(int i = 0; i &lt; 100 ; i++) { if(this-&gt;set[i] != otherPtr-&gt;set[i]) { return false; } } return true; } void IntegerSet::printSet() { if(isEmpty()) { cout &lt;&lt; "---" &lt;&lt; endl; } else { for(int i = 0; i &lt; 100 ; i++) { if(set[i] == 1) { cout &lt;&lt; i &lt;&lt; ' '; } } cout &lt;&lt; endl; } } IntegerSet::~IntegerSet() { delete[] set; } </code></pre> <p>The class has private member <code>int * set;</code>.</p> <p>This is the main function used to test my class:</p> <pre><code>#include &lt;iostream&gt; #include&lt;new&gt; #include "integerset.h" using std::cout; using std::endl; int main(int argc, char *argv[]) { IntegerSet * set1Ptr = new IntegerSet(); set1Ptr-&gt;insertElement(1); set1Ptr-&gt;insertElement(2); set1Ptr-&gt;insertElement(3); set1Ptr-&gt;insertElement(50); IntegerSet * set2Ptr = new IntegerSet(); set2Ptr-&gt;insertElement(0); set2Ptr-&gt;insertElement(3); set2Ptr-&gt;insertElement(2); set2Ptr-&gt;insertElement(51); set2Ptr-&gt;insertElement(100); set2Ptr-&gt;insertElement(99); IntegerSet * set3Ptr = set1Ptr-&gt;unionOfSets(set2Ptr); IntegerSet * set4Ptr = set1Ptr-&gt;intersectionOfSets(set2Ptr); cout &lt;&lt; "First Set" &lt;&lt; endl; set1Ptr-&gt;printSet(); cout &lt;&lt; "Second Set" &lt;&lt; endl; set2Ptr-&gt;printSet(); cout &lt;&lt; "Equal ? : " &lt;&lt; set1Ptr-&gt;isEqualTo(set2Ptr) &lt;&lt; endl; cout &lt;&lt; "Intersection : " &lt;&lt; endl; set4Ptr-&gt;printSet(); cout &lt;&lt; "Union : " &lt;&lt; endl; set3Ptr-&gt;printSet(); system("PAUSE"); return EXIT_SUCCESS; } </code></pre> <p>This the output I get when running</p> <pre><code>First Set 16 19 35 45 46 54 66 84 Second Set 0 1 10 12 13 14 19 35 45 46 54 66 84 Equal ? : 1 Intersection : 16 19 35 45 46 54 66 84 98 Union : 0 1 10 12 13 14 19 35 45 46 54 66 84 98 </code></pre> <p>I tried tracing and I have no idea what's wrong, so any help is really appreciated.</p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload