edelossantos
asked on
class IntegerSet
Need help with the missing function definitions. Please advise. Del
#ifndef INT_H
#define INT_H
class IntegerSet {
public:
IntegerSet(int);
IntegerSet(const IntegerSet &);
IntegerSet unionOfIntegerSets(const IntegerSet &);
IntegerSet intersectionOfIntegerSets( const IntegerSet &);
void emptySet();
void inputSet();
void insertElement(int);
void deleteElement(int);
void setPrint() const;
bool isEqualTo(const IntegerSet &) const;
private:
int *set;
int size;
bool validEntry(int x) const
{
return x >= 0 && x < size;
}
};
#endif
// int.cpp
#include <iostream>
#include <iomanip>
using namespace std;
#include "int.h"
IntegerSet::IntegerSet(int s)
{
size = s;
set = new int[size];
/*Need help in writing call to emptySet */ HELP!
}
IntegerSet::IntegerSet(con st IntegerSet &init)
{
size = init.size;
/*Need help in writing statement to allocate sufficient memory*/ HELP!
emptySet();
for(int i = 0; i < size; i++)
/*Need help in writing statement to copy elements of init*/ HELP!
}
void IntegerSet::emptySet()
{
/*Need help in writing function definition for emptySet*/ HELP!
}
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);
cout << "Entry complete\n";
}
void IntegerSet::setPrint() const
{
int x = 1;
bool empty = true;
cout << '{';
for(int u = 0; u < size; ++u)
if(set[u]) {
cout << setw(4) << u << (x % 10 == 0 ? "\n" : "");
empty = false;
++x;
}
if(empty)
cout << setw(4) << "---";
cout << setw(4) << "}" << '\n';
}
IntegerSet IntegerSet::unionOfInteger Sets(const IntegerSet &r)
{
IntegerSet temp(size > r.size ? size : r.size);
temp.emptySet();
int iterations = (size < r.size ? size : r.size);
for(int i = 0; i < iterations; i++)
if(set[i] == 1 || r.set[i] == 1)
temp.set[i] = 1;
return temp;
}
IntegerSet IntegerSet::intersectionOf IntegerSet s(const IntegerSet &s)
{
/*Need help in writing definition for intersectionOfIntegerSets* / HELP!
}
void IntegerSet::insertElement( int k)
{
if(validEntry(k))
set[k] = 1;
else
cout << "Invalid insert attempted!\n";
}
void IntegerSet::deleteElement( )
{
/*NEED DEFINITION WRITTEN FOR deleteElement()*/ HELP!
}
void IntegerSet::isEqualTo()
{
/*NEED DEFINITION WRITTEN FOR isEqualTo()*/ HELP!
}
// int_driver.cpp
#include <iostream>
using namespace std;
int main()
{
IntegerSet a(101);
IntegerSet b(101);
IntegerSet c(101);
IntegerSet c(101);
IntegerSet d(101);
cout << "Enter set A:\n";
a.inputSet();
cout << "\nEnter set B:\n";
b.inputSet();
/*NEED WRITTEN CALL TO unionOfIntegerSets FOR OBJECT a PASSING IT b;
ASSIGN THE RESULT TO d*/ HELP!!
/*NEED WRITTEN CALL TO intersectionOfIntegerSets FOR OBJECT a PASSING
IT b; ASSIGN THE RESULT TO d*/ HELP!!
cout << "\nUnion Of A and B is:\n";
c.setPrint();
cout << "Intersection of A and B is:\n";
d.setPrint();
if(a.isEqualTo(b))
cout << "Set A is equal to set B\n";
else
cout << "Set A is not equal to set B\n";
cout << "\nInserting 77 into set A...\n";
a.insertElement(77);
cout << "Set A is now:\n";
a.setPrint();
cout << "\nDeleting 77 from set A...\n";
a.deleteElement(77);
cout << "Set A is now:\n";
a.setPrint();
cout << endl;
return 0;
}
#ifndef INT_H
#define INT_H
class IntegerSet {
public:
IntegerSet(int);
IntegerSet(const IntegerSet &);
IntegerSet unionOfIntegerSets(const IntegerSet &);
IntegerSet intersectionOfIntegerSets(
void emptySet();
void inputSet();
void insertElement(int);
void deleteElement(int);
void setPrint() const;
bool isEqualTo(const IntegerSet &) const;
private:
int *set;
int size;
bool validEntry(int x) const
{
return x >= 0 && x < size;
}
};
#endif
// int.cpp
#include <iostream>
#include <iomanip>
using namespace std;
#include "int.h"
IntegerSet::IntegerSet(int
{
size = s;
set = new int[size];
/*Need help in writing call to emptySet */ HELP!
}
IntegerSet::IntegerSet(con
{
size = init.size;
/*Need help in writing statement to allocate sufficient memory*/ HELP!
emptySet();
for(int i = 0; i < size; i++)
/*Need help in writing statement to copy elements of init*/ HELP!
}
void IntegerSet::emptySet()
{
/*Need help in writing function definition for emptySet*/ HELP!
}
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);
cout << "Entry complete\n";
}
void IntegerSet::setPrint() const
{
int x = 1;
bool empty = true;
cout << '{';
for(int u = 0; u < size; ++u)
if(set[u]) {
cout << setw(4) << u << (x % 10 == 0 ? "\n" : "");
empty = false;
++x;
}
if(empty)
cout << setw(4) << "---";
cout << setw(4) << "}" << '\n';
}
IntegerSet IntegerSet::unionOfInteger
{
IntegerSet temp(size > r.size ? size : r.size);
temp.emptySet();
int iterations = (size < r.size ? size : r.size);
for(int i = 0; i < iterations; i++)
if(set[i] == 1 || r.set[i] == 1)
temp.set[i] = 1;
return temp;
}
IntegerSet IntegerSet::intersectionOf
{
/*Need help in writing definition for intersectionOfIntegerSets*
}
void IntegerSet::insertElement(
{
if(validEntry(k))
set[k] = 1;
else
cout << "Invalid insert attempted!\n";
}
void IntegerSet::deleteElement(
{
/*NEED DEFINITION WRITTEN FOR deleteElement()*/ HELP!
}
void IntegerSet::isEqualTo()
{
/*NEED DEFINITION WRITTEN FOR isEqualTo()*/ HELP!
}
// int_driver.cpp
#include <iostream>
using namespace std;
int main()
{
IntegerSet a(101);
IntegerSet b(101);
IntegerSet c(101);
IntegerSet c(101);
IntegerSet d(101);
cout << "Enter set A:\n";
a.inputSet();
cout << "\nEnter set B:\n";
b.inputSet();
/*NEED WRITTEN CALL TO unionOfIntegerSets FOR OBJECT a PASSING IT b;
ASSIGN THE RESULT TO d*/ HELP!!
/*NEED WRITTEN CALL TO intersectionOfIntegerSets FOR OBJECT a PASSING
IT b; ASSIGN THE RESULT TO d*/ HELP!!
cout << "\nUnion Of A and B is:\n";
c.setPrint();
cout << "Intersection of A and B is:\n";
d.setPrint();
if(a.isEqualTo(b))
cout << "Set A is equal to set B\n";
else
cout << "Set A is not equal to set B\n";
cout << "\nInserting 77 into set A...\n";
a.insertElement(77);
cout << "Set A is now:\n";
a.setPrint();
cout << "\nDeleting 77 from set A...\n";
a.deleteElement(77);
cout << "Set A is now:\n";
a.setPrint();
cout << endl;
return 0;
}
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER