C++ Language ** Dynamic Memory ** There are 7 files in this project, and they are down below. And I guess the professor wants us to modify the set.cpp make sure the numbers are entered by the user to be set dynamically. If you pay attention to the set.cpp I marked in bold a section that may be needed to be changed. I have put all the codes down so that you can copy them to your computer to have an idea of how they work together. Only that Set.cpp must be modified so the number of elements can be set dynamically during the program's execution. And please can you be more specific about what line of code needs to be replaced? Here are the professor's instructions. ** Note: The goal of this assignment is to MODIFY the existing code. ** Implement a dynamically allocated version of the mathematical concept of a 'set'. First, examine the provided library and driver (in main) for a statically allocated Set class. You may also want to refresh your mathematical memory of the set concept before proceeding. Now that you are familiar with how the Set class works, let's make it work better. Currently, the user is limited to a certain maximum number of elements in their Set. Change it so the number of elements can be set dynamically during the program's execution. Extend the driver to test all the ADT's operations. ** Things to Consider ** 1. If your set is implemented in dynamic memory: 1a. How do you access the members? 1b. How and when do you re-size the memory? HERE are the CODE files:. main.cpp include <iostream> #include <cctype> #include "input.h" #include "set.h" using namespace std; int main(void) { Set x, y, z; bool quit; long newone; do { cout << "Enter a long integer: "; cin >> newone; if (x.ismember(newone)) { cout << "You've already entered that!" << endl; } else { x.add_elem(newone); cout << "Value added to list!" << endl; } quit = toupper(get_in_set("YyNn", "Would you like to enter more? ")) == 'N'; } while (!quit && !x.full()); cout << "Overall, you entered: " << endl; x.output(cout); cout << endl; cout << "Please enter a set of long integers: "; x.input(cin); cout << endl << "You entered:\n"; x.output(cout); cout << endl; cout << "Please enter another set of long integers: "; y.input(cin); cout << endl << "You entered:\n"; y.output(cout); cout << endl; cout << "The union of the two sets is:\n"; z = x; z.union_with(y); z.output(cout); cout << endl; cout << "The intersection of the two sets is:\n"; z = x; z.intersection(y); z.output(cout); cout << endl; return 0; } input.cpp #include "input.h" #include <iostream> #include <cstring> #include <cctype> using namespace std; // Boundaries are assumed to be solid -- low <= value <= high. // Enum to say which end is to be bounded... // // enum BoundType { Low, High, Both }; // Bounded entry function for long integers... // long get_bounded(long low, long high, const char prompt[] /* = "Enter bounded value: " */, BoundType which_end /* = Both */) { long value; cout << prompt; cin >> value; while (((.