# Directory:Derek Elder/Programs/Deviation Calculator

```#include <iostream>
#include <iomanip>
#include <fstream>
#include <cmath>
#include <string>
using namespace std;

void greeting(void);
void getInFile(ifstream&, string&);
double getMean(int[], int);
double getStandardDeviation(int[], int, double);
int getGreatest(int[], int);
int getLeast(int[], int);

void main()
{
ifstream Input;
string Input_file;
int statisticsData[100] = {};
int arrayIndex = 0;
double mean = 0.0;
double standardDeviation = 0.0;
int greatest = 0;
int least = 0;
int numberOfValues = 0;

greeting();

getInFile(Input, Input_file);
while(Input)
{
Input>>statisticsData[arrayIndex];
if(!Input)
{
Input.clear();
break;
}
arrayIndex++;
}

Input.close();

numberOfValues = arrayIndex;
mean = getMean(statisticsData, numberOfValues);
standardDeviation = getStandardDeviation(statisticsData, numberOfValues, mean);
greatest = getGreatest(statisticsData, numberOfValues);
least = getLeast(statisticsData, numberOfValues);
cout<<"Number of values read : "<<numberOfValues<<endl;
cout<<"Mean of the values    : "<<mean<<endl;
cout<<"Standard deviation    : "<<standardDeviation<<endl;
cout<<"Greatest value        : "<<greatest<<endl;
cout<<"Least value           : "<<least<<endl;
cout<<"End of the program -- Press ENTER"<<endl;
}

void greeting()
{
cout<<"This program will produce statistics for at most 100 real values.\n";
}

void getInFile(ifstream& Input, string& filename)
{
bool done = false;
char peek;

while(!done)
{
Input.clear();
cout<<"Enter the name of the data file: ";
getline(cin,filename);
Input.open(filename.c_str());

if(!Input)
{
cout<< "\nInput file location was invalid.\n";
done = false;
}
else
{
peek = Input.peek();
if(peek == EOF)
{
cout<<"\nInput file was empty.\n";
done = false;
Input.close();
}
else
{
done = true;
}
}
}
}

double getMean(int statisticsData[], int numberOfValues)
{
int iterations = 0;
double statSum = 0.0;
int nextStat = 0;
double mean = 0.0;
for(iterations = 0; iterations < numberOfValues; iterations++)
{
nextStat = statisticsData[iterations];
statSum = statSum + nextStat;
}

mean = statSum/numberOfValues;
return mean;
}

double getStandardDeviation(int statisticsData[], int numberOfValues, double mean)
{
double standardDeviation = 0.0;
int iterations = 0;
double statSquaresSum = 0.0;
int nextStat = 0;

for(iterations = 0; iterations < numberOfValues; iterations++)
{
nextStat = statisticsData[iterations];
nextStat = nextStat * nextStat;
statSquaresSum = statSquaresSum + nextStat;
}

standardDeviation = sqrt(((statSquaresSum)/(numberOfValues))-(mean*mean));
return standardDeviation;
}

int getGreatest(int statisticsData[], int numberOfValues)
{
int iterations = 0;
int firstStat = 0;
int secondStat = 0;
int greatest = 0;

for(iterations = 0; iterations < numberOfValues; iterations++)
{
firstStat = statisticsData[iterations];
secondStat = statisticsData[iterations+1];
if(firstStat > secondStat)
{
greatest = firstStat;
}
}

return greatest;
}

int getLeast(int statisticsData[], int numberOfValues)
{
int temp = 0;
int least = statisticsData[0];

for(int iterations = 0;iterations < numberOfValues; iterations++)
{
temp = statisticsData[iterations];
if(temp < least)
{
least = temp;
}
}

return least;
}
```