Specify design and implement a class that can be used in a p
Solution
#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
#include<stdio.h>
using namespace std;
class Statistician
{
public:
Statistician()
{
length = 0;
min = 0;
max = 0;
first = 0;
last = 0;
sum = 0;
average = 0;
cout << \"Statistician class is initialized\" << endl;
}
void next_number(double nextnum)
{
if (length == 0)
{
min = nextnum;
max = nextnum;
first = nextnum;
last = nextnum;
sum = nextnum;
length = 1;
return;
}
if (nextnum < min)
min = nextnum;
if (nextnum > max)
max = nextnum;
length++;
sum = sum + nextnum;
last = nextnum;
}
void erase_sequence()
{
length = 0;
min = 0;
max = 0;
first = 0;
last = 0;
sum = 0;
average = 0;
cout << \"Statistician class object is erased\" << endl;
}
int getLength()
{
return length;
}
double getFirst()
{
if (length == 0)
{
cout << \"Sequence is Empty\" << endl;
return 0;
}
else
return first;
}
double getLast()
{
if (length == 0)
{
cout << \"Sequence is Empty\" << endl;
return 0;
}
else
return last;
}
double getMinNumber()
{
if (length == 0)
{
cout << \"Sequence is Empty\" << endl;
return 0;
}
else
return min;
}
double getMaxNumber()
{
if (length == 0)
{
cout << \"Sequence is Empty\" << endl;
return 0;
}
else
return max;
}
double getSum()
{
return sum;
}
double getAverage()
{
if (length == 0)
{
cout << \"Sequence is Empty\" << endl;
return 0;
}
else
return sum/length;
}
private:
int length;
double min;
double max;
double first;
double last;
double smallest;
double largest;
double sum;
double average;
};
void TC(Statistician &s1)
{
cout << \"getLength is: \" << s1.getLength() << endl;
cout << \"getFirst is: \" << s1.getFirst() << endl;
cout << \"getLast is: \" << s1.getLast() << endl;
cout << \"getMinNumber is: \" << s1.getMinNumber() << endl;
cout << \"getMaxNumber is: \" << s1.getMaxNumber() << endl;
cout << \"getSum is: \" << s1.getSum() << endl;
cout << \"getAverage is: \" << s1.getAverage() << endl;
cout << endl;
}
int main()
{
Statistician s1;
s1.next_number(1.2);
s1.next_number(1.1);
s1.next_number(2.1);
s1.next_number(2.2);
s1.next_number(3.1);
s1.next_number(3.23);
TC(s1);
Statistician s2;
s2.next_number(1.1);
s2.next_number(-2.4);
s2.next_number(0.8);
TC(s2);
s2.erase_sequence();
TC(s2);
return 0;
}



