Implement a class Sequence to store a sequence of non-negative integer values, and the length
of the sequence. The class has the following private data members:
1. int length – the length of the sequence
2. int *pseq – a pointer to a dynamic integer array holding sequence of integers
The class shall provide the following public methods:
1. Sequence() – a default constructor that initializes length to 10 and store the sequence of
all zeros in an array.
2. Sequence(int lengthVal, int n1=0,int n2=0,int n3=0, int n4=0, int n5=0, int n6=0, int n7=0,
int n8=0, int n9=0, int n10=0) – another parameterized constructor should initialize the
length and array to sequence values passed in the arguments.
3. Sequence(Sequence &s) – a copy constructor that creates a copy of a Sequence object.
4. int getLength() – a getter for length
5. int* getSeq() – a getter for the sequence of numbers
6. void Sort(int n) – a function that sorts the first n elements in the sequence array. You
cannot use Bubble Sort Algorithm
#include <iostream>
#include <cstdlib>
using namespace std;
class Sequence {
private:
int length;
int *pseq;
public:
Sequence();
Sequence(int lengthVal, int n1=0,int n2=0,int n3=0, int n4=0, int n5=0, int n6=0, int n7=0,
int n8=0, int n9=0, int n10=0);
Sequence(Sequence &s);
~Sequence();
int getLength() { return length; }
int* getSeq() {return pseq; }
void Sort(int n);
};
Sequence::Sequence()
{
length = 10;
pseq = new int[length];
for (int i=0; i<length; i++) {
pseq[i] = 0;
}
}
Sequence::Sequence(int lengthVal, int n1,int n2,int n3, int n4, int n5, int n6, int n7,
int n8, int n9, int n10)
{
length = lengthVal;
if (length < 0) {
cerr << "Error: length is negative" << endl;
exit(1);
}
pseq = new int[length];
for (int i=0; i<length; i++) {
pseq[i] = 0;
}
if (length > 0)
pseq[0] = n1;
if (length > 1)
pseq[1] = n2;
if (length > 2)
pseq[2] = n3;
if (length > 3)
pseq[3] = n4;
if (length > 4)
pseq[4] = n5;
if (length > 5)
pseq[5] = n6;
if (length > 6)
pseq[6] = n6;
if (length > 6)
pseq[6] = n7;
if (length > 7)
pseq[7] = n8;
if (length > 8)
pseq[8] = n9;
if (length > 9)
pseq[9] = n10;
}
Sequence::Sequence(Sequence &s)
{
length = s.length;
pseq = new int[length];
for (int i=0; i<length; i++) {
pseq[i] = s.pseq[i];
}
}
Sequence::~Sequence() {
delete [] pseq;
}
void Sequence::Sort(int n) {
int i_min;
for (int i=0; i<n-1; i++) {
i_min = i;
for (int j=i+1; j<n; j++) {
if (pseq[j] < pseq[i_min]) {
i_min = j;
}
}
if (i_min != i) {
int tmp = pseq[i];
pseq[i] = pseq[i_min];
pseq[i_min] = tmp;
}
}
}
int main() {
int n1=10, n2=4, n3=8, n4=3, n5=12;
Sequence s(8, n1, n2, n3, n4, n5);
s.Sort(6);
int *p = s.getSeq();
for (int i=0; i<s.getLength(); i++) {
cout << p[i] << " ";
}
cout << endl;
return 0;
}
Comments
Leave a comment