Directory:Derek Elder/Programs/Deviation Calculator

MyWikiBiz, Author Your Legacy — Friday November 29, 2024
< Directory:Derek Elder‎ | Programs
Revision as of 22:52, 1 November 2007 by Derek Elder (talk | contribs) (start of page)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigationJump to search
  1. include <iostream>
  2. include <iomanip>
  3. include <fstream>
  4. include <cmath>
  5. 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); cout<<"Reading values . . .\n"; 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; }