I need to create a main.cpp that will make 3 instances of the class listed below
ID: 3551037 • Letter: I
Question
I need to create a main.cpp that will make 3 instances of the class listed below and then analyze them. I want to see a list of the name, size, min, max, and avg of each set and I want this for set sizes of 10, 100, 1,000, and 10,000. The output should be simple but aligned.
For example:
Set1
10 1 9 4.5
100 0 98 49.2
etc., then Set2, then Set3.
Then, I would like a cross-listed avg, so the same as above but only one list with the averages of all 3 sets data in it.
Explanation / Answer
#include<iostream>
#include<iomanip>
#include<cstdlib>
#include<ctime>
#include<vector>
#include<climits>
using namespace std;
class NumberSet
{
vector<int> vec;
public:
string name;
NumberSet()
{
name = "Set";
vec.reserve(0);
}
NumberSet(int sz)
{
name = "Set";
vec.reserve(sz);
for(int i=0; i<sz; i++)
{
int t = rand();
vec.push_back(t);
}
}
int get_max()
{
int max = INT_MIN;
for(int i=0; i<vec.size(); i++)
{
if(vec[i] > max) max = vec[i];
}
return max;
}
int get_min()
{
int min = INT_MAX;
for(int i=0; i<vec.size(); i++)
{
if(vec[i] < min) min = vec[i];
}
return min;
}
int get_size()
{
return vec.size();
}
double get_average()
{
double sum =0;
for(int i=0; i<vec.size(); i++)
{
sum = sum + vec[i];
}
return sum/(double)vec.size();
}
void print()
{
cout <<"Contents :";
for(int i=0; i<vec.size(); i++)
{
cout << vec[i] << " ";
}
cout << endl;
}
};
//I need to create a main.cpp that will make 3 instances of the class listed below and then analyze them.
int main()
{
NumberSet N10(10);
NumberSet N100(100);
NumberSet N1000(1000);
NumberSet N10000(10000);
NumberSet N20(10);
NumberSet N200(100);
NumberSet N2000(1000);
NumberSet N20000(10000);
NumberSet N30(10);
NumberSet N300(100);
NumberSet N3000(1000);
NumberSet N30000(10000);
//I want to see a list of the name, size, min, max, and avg of each set and I want this for set ..sizes of 10, 100, 1,000, and 10,000.
cout<< fixed <<setprecision(2);
cout <<"Set1 " << endl;
cout << N10.get_size() << " " << N10.get_min() << " " << N10.get_max() << " "<< N10.get_average() << endl;
cout << N100.get_size() << " " << N100.get_min() << " " << N100.get_max() << " "<< N100.get_average() << endl;
cout << N1000.get_size() << " " << N1000.get_min() << " " << N1000.get_max() << " "<< N1000.get_average() << endl;
cout << N10000.get_size() << " " << N10000.get_min() << " " << N10000.get_max() << " "<< N10000.get_average() << endl;
cout <<"Set2 " << endl;
cout << N20.get_size() << " " << N20.get_min() << " " << N20.get_max() << " "<< N20.get_average() << endl;
cout << N200.get_size() << " " << N200.get_min() << " " << N200.get_max() << " "<< N200.get_average() << endl;
cout << N2000.get_size() << " " << N2000.get_min() << " " << N2000.get_max() << " "<< N2000.get_average() << endl;
cout << N20000.get_size() << " " << N20000.get_min() << " " << N20000.get_max() << " "<< N20000.get_average() << endl;
cout <<"Set3 " << endl;
cout << N30.get_size() << " " << N30.get_min() << " " << N30.get_max() << " "<< N30.get_average() << endl;
cout << N300.get_size() << " " << N300.get_min() << " " << N300.get_max() << " "<< N300.get_average() << endl;
cout << N3000.get_size() << " " << N3000.get_min() << " " << N3000.get_max() << " "<< N3000.get_average() << endl;
cout << N30000.get_size() << " " << N30000.get_min() << " " << N30000.get_max() << " "<< N30000.get_average() << endl;
cout <<"Average is " << endl;
cout << (double)(N10.get_size()+N20.get_size()+N30.get_size())/3.0
<< " " << (double)(N10.get_min()+N20.get_min()+N30.get_min())/3.0
<< " " << (double)(N10.get_max()+N20.get_max()+N30.get_max())/3.0
<< " "<< (double)(N10.get_average()+N20.get_average()+N30.get_average())/3.0 << endl;
cout << (double)(N100.get_size()+N200.get_size()+N300.get_size())/3.0
<< " " << (double)(N100.get_min()+N200.get_min()+N300.get_min())/3.0
<< " " << (double)(N100.get_max()+N200.get_max()+N300.get_max())/3.0
<< " "<< (double)(N100.get_average()+N200.get_average()+N300.get_average())/3.0 << endl;
cout << (double)(N1000.get_size()+N2000.get_size()+N3000.get_size())/3.0
<< " " << (double)(N1000.get_min()+N2000.get_min()+N3000.get_min())/3.0
<< " " << (double)(N1000.get_max()+N2000.get_max()+N3000.get_max())/3.0
<< " "<< (double)(N1000.get_average()+N2000.get_average()+N3000.get_average())/3.0 << endl;
cout << (double)(N10000.get_size()+N20000.get_size()+N30000.get_size())/3.0
<< " " << (double)(N10000.get_min()+N20000.get_min()+N30000.get_min())/3.0
<< " " << (double)(N10000.get_max()+N20000.get_max()+N30000.get_max())/3.0
<< " "<< (double)(N10000.get_average()+N20000.get_average()+N30000.get_average())/3.0 << endl;
//Then, I would like a cross-listed avg, so the same as above but only one list with the averages of all 3 sets data in it.
return 0;
}
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.