Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

My assignment: Define a template class for a generic triplet. The private data m

ID: 3864796 • Letter: M

Question

My assignment:

Define a template class for a generic triplet. The private data member for the triplet is a generic array with three elements. The triplet ADT has the following functions:

default constructor

explicit constructor: initialize the data member using parameters

three accessors (three get functions) which will return the value of each individual element of the array data member

one mutator (set function) which will assign values to the data member using paramenters

find_max function which will find the maximum value of the array and return it

find_min function which will find the minimum value of the array and return it

sort_ascending function which will sort the array data member into ascending order

sort_descending function which will sort the array data member into descending order

an overloaded comparison operator == which will compare if two triplets are exactly the same

an overloaded output operator to output items in the triplet.

Write a driver to test your class. It should test each function for

o a triplet of strings

o a triplet of integers

For credit: Show your code and execute the test program.

Here is what I have so far:

Header.h

#include <iostream>
#include <string>
using namespace std;
template <class T>
class triplet
{
public:
   T A, B, C;
   triplet()
       //Purpose: default constructor
       //Precondition: array
       //Postcondition: array is declared as empty
   {
       T a = 0;
       T b = 0;
       T c = 0;
   };
   triplet(T a, T b, T c)
   //Purpose: explicit constructor
   //Precondition: array
   //Postcondition: initalizes the data member with parameters
   {
       A = a;
       B = b;
       C = c;
   };
   void get_A()
   //Purpose: returns A value
   //Precondition: A value
   //Postcondition: returns A to array
   {
       return A;
   };
   void get_B()
   //Purpose: returns B value
   //Precondition: B value
   //Postcondition: returns B to array
   {
       return B;
   };
   void get_C()
   //Purpose: returns C value
   //Precondition: C value
   //Postcondition: returns C to array
   {
       return C;
   };
   void set(T a, T b, T c)
   //Purpose: assigns values to the data member
   //Precondition: data members
   //Postcondition: values are assigned to the data member
   {
       A = a;
       B = b;
       C = c;
   };
   T find_max()
   //Purpose: finds maximum number
   //Precondition: filled array
   //Postcondition: returns max number
   {
       return max(A, max(B, C));
   };
   T find_min()
   //Purpose: finds minimum number
   //Precondition: filled array
   //Postcondition: returns min number
   {
       return min(A, min(B, C));
   };
   void sort_ascending()
   //Purpose: sorts the array in ascending order
   //Precondition: filled array
   //Postcondition: returns array in ascending order
   {
       for (i = 0; i <= n; i++)
       {
           for (j = 0; j <= n - i; j++)
           {
               if (a[j]>a[j + 1])
               {
                   temp = Arr[j];
                   Arr[j] = Arr[j + 1];
                   Arr[j + 1] = temp;
               }
           }
       }
       cout << " Data after sorting: ";
       for (j = 0; j<n; j++)
       {
           cout << Arr[j];
       }
   };
   void sort_descending()
   //Purpose: sorts array in descending order
   //Precondition: filled array
   //Postcondition: returns array in descending order
   {
       for (i = 0; i <= n; i++)
       {
           for (j = 0; j <= n - i; j++)
           {
               if (a[j]<a[j + 1])
               {
                   temp = Arr[j];
                   Arr[j] = Arr[j + 1];
                   Arr[j + 1] = temp;
               }
           }
       }
       cout << " Data after sorting: ";
       for (j = 0; j<n; j++)
       {
           cout << Arr[j];
       }
   };
   bool operator==(const triplet&t)
   //Purpose: compares two triplets to see if they're the same
   //Precondition: filled array
   //Postcondition: returns true or false
   {
       if (t.a == this->a&&t.b == this->b&&t.c == this->c)
           return true;
       return false;
   };
   ostream&operator<<(ostream&out, const triplet<T>& list)
   //Purpose: overloaded output operator
   //Precondition: filled array
   //Postcondition: outputs items in the triplet
   {
       output << "A B C are: " << list.A << " " << list.B << " " << list.C << endl;
       return output;
   }
};

Main.cpp

#include "Header.h"
#include <iostream>
#include <string>
using namespace std;
int main()
{
   triplet<int> one(12, 9, 16);
   cout << one << endl;
   cout << "Maximum is: " << one.find_max() << endl;
   cout << "Minimum is: " << one.find_min() << endl;
   triplet<string> two(hello, hi, bye);
   cout << two << endl;
   return 0;
}

Am I on the right path?

Explanation / Answer

#include <iostream>
#include <string>
using namespace std;
template <class T>
std::array<T, 2> m_array;
class triplet
{
public:
T A, B, C;
int Array[50];
triplet()
{
T a = 0;
T b = 0;
T c = 0;
};
triplet(T a, T b, T c)
{
A = a;
B = b;
C = c;
};
void get_A()
{
return A;
};
void get_B()
return B;
};

void set(T a, T b, T c)
{
A = a;
B = b;
C = c;
};
T find_max()
{
return max(A, max(B, C));
};
T find_min()
{
return min(A, min(B, C));
};
void sort_ascending()
{
for (i = 0; i <= n; i++)
{
for (j = 0; j <= n - i; j++)
{
if (a[j]>a[j + 1])
{
temp = Array[j];
Array[j] = Array[j + 1];
Array[j + 1] = temp;
}
}
}
cout << " Data after sorting: ";
for (j = 0; j<n; j++)
{
cout << Array[j];
}
};
void sort_descending()
{
for (i = 0; i <= n; i++)
{
for (j = 0; j <= n - i; j++)
{
if (a[j]<a[j + 1])
{
temp = Array[j];
Array[j] = Array[j + 1];
Array[j + 1] = temp;
}
}
}
cout << " Data after sorting: ";
for (j = 0; j<n; j++)
{
cout << Array[j];
}
};
bool operator==(const triplet&t)
{
if (t.a == this->a&&t.b == this->b&&t.c == this->c)
return true;
return false;
};
ostream&operator<<(ostream&out, const triplet<T>* list)

{
output << "A B C are: " << list.A << " " << list.B << " " << list.C << endl;
return output;
}
};
Main.cpp
#include "Header.h"
#include <iostream>
#include <string>
using namespace std;
int main()
{
triplet<int> one(12, 9, 16);
cout << one << endl;
cout << "Maximum is: " << one.find_max() << endl;
cout << "Minimum is: " << one.find_min() << endl;
triplet<string> two("hello", "hi", "bye");
cout << two << endl;
return 0;
}

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote