Directory:Derek Elder/Programs/Deviation Calculator
MyWikiBiz, Author Your Legacy — Tuesday November 26, 2024
< Directory:Derek Elder | Programs
Jump to navigationJump to searchRevision as of 22:52, 1 November 2007 by Derek Elder (talk | contribs)
#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); 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; }