Using good OOP, write a C++ pr
Using good OOP, write a C++ program that will compare two arrays to test for the same elements and multiplicity. To begin, populate the arrays with the input files, comFile1.txt and comFile2.txt. The elements in the arrays do not need to be in the same order for them to be considered similar. For example:
array 1: 121 144 19 161 19 144 19 11
array 2: 11 121 144 19 161 19 144 19
would be considered to have the same elements because 19 appears 3 times in each array, 144 appears twice in each array, and all other elements appear once in each array.
Use pointer notation instead of array notation whenever possible.
Display whether or not the arrays have the same elements and multiplicity.
Use private member functions and variables.
Use public member functions for a constructor (where appropriate) and a driver method only.
These specifications do not give a list of method names to be used. It is assumed the program will use several methods doing one task each.
This soultion below will work and I like it but what i am really trying to do is take the array and count the number time a unique number shows up and then at the end i only have to compare the vectors. this will cut down having to bubble sort large arrays. I hope that makes sense.
Code:
#include <iostream>
#include <fstream>
using namespace std;
int readFile(int* array, ifstream &fin)
{
int count = 0;
while(!fin.eof())
{
fin >> *(array+count);
count++;
}
return count;
}
void bubbleSort(int* array, int size)
{
for(int i = 0; i < size-1; i++)
for(int j = 0; j < size-i-1; j++)
if(*(array + j) > *(array + j + 1))
{
int temp = *(array + j);
*(array + j) = *(array + j + 1);
*(array + j + 1) = temp;
}
}
int main()
{
ifstream fin1, fin2;
fin1.open(“comFile1.txt”);
fin2.open(“comFile2.txt”);
int array1[20], array2[20];
int size1 = readFile(array1, fin1);
int size2 = readFile(array2, fin2);
if(size1 != size2)
cout << “The elements and multiplicity is not the same.” << endl;
bubbleSort(array1, size1);
bubbleSort(array2, size2);
for(int i = 0; i < size1; i++)
if(*(array1 + i) != *(array2 + i))
{
cout << “The elements and multiplicity is not the same.” << endl;
return 0;
}
cout << “The elements and multiplicity is the same.” << endl;
}