+1 (315) 557-6473 

C++ Program to Implement Sets Assignment Solution.


Instructions

Objective
Writing a program to implement sets in C++ can be a valuable learning experience. Sets are containers that store unique elements in no particular order, making them useful for various applications. By utilizing the standard template library (STL) in C++, you can easily create and manipulate sets. If you need help with your C++ assignment focused on set implementation or any related concepts, feel free to ask for guidance and clarification.

Requirements and Specifications

program to implement sets in C++

Source Code

#include

#include

#include

#include

#include

#include "Set.h"

#include

#ifndef MAX_FILE_LENGTH

#define MAX_FILE_LENGTH 255

#endif // MAX_FILE_LENGTH

using namespace std;

/**

 * Read the input set from the input stream, and output the subsets

 * to the output stream.

 */

void get_subsets(istream& i1, ostream& o)

{

 Set set1;

 set1.scan(i1); // read the set from the input file

 set1.print(o, "A="); // print the set to the output file

    /* Please put your code here. */

    o << "Subsets of A:" << std::endl;

    // Loop from 0 to 2^n-1 where n is the size of the set

    int n = set1.getsize();

    int n_subsets = pow(2, n);

    for(int i = 0; i < n_subsets; i++) {

        o << "{";

        for(int j = 0; j < n; j++) {

            if(i & (1 << j)) { // binary operator

                o << set1.getelements()[j];

                if(j < n-1) {

                    o << ",";

                }

            }

        }

        o << "}";

        if(i < n_subsets-1) {

            o << ",";

        }

        else {

            o << ".";

        }

        o << std::endl;

    }

    // Finally, write the number of subsets

    o << "There are " << pow(2, set1.getsize()) << " subsets of A.";

    // TODO: get all the subsets of the input set and print the result

}

/*

 * This program accepts three command line arguments:

 * argv[1] is for the path to input file

 * argv[2] is for the path to the output file

 */

int main(int argc, char* argv[])

{

    char file1[MAX_FILE_LENGTH], file2[MAX_FILE_LENGTH];

 // file1 is for the input, file2 is for the output

    strcpy(file1, argv[1]);

    strcpy(file2, argv[2]);

    ifstream i1 (file1);

    ofstream o (file2);

    if (i1.is_open() && o.is_open()) {

        get_subsets(i1, o);

        i1.close();

        o.close();

    }

    else {

        cout << "Unable to open the file(s)." << endl;

    }

}