It compiles and everything fine, but it will only output one name with one double, like 15 times or so. I'm not sure what to work on, I don't want the answer, just someone to point me in the right direction.
Sample Input from File:
John 10 9 8 9.5 10
Jack 10 9 7.6 9.2 9.8
Joe 9 8 10 8 10
Jim 8.2 7.5 6.9 8.1 7.3
Jerry 10 9.8 8.9 9.2 9.7
Sorry in advance that this code is pretty bad. You can probably tell it's my first programming class.
Sample Input from File:
John 10 9 8 9.5 10
Jack 10 9 7.6 9.2 9.8
Joe 9 8 10 8 10
Jim 8.2 7.5 6.9 8.1 7.3
Jerry 10 9.8 8.9 9.2 9.7
#include <iostream> #include <iomanip> #include <string> #include <fstream> using namespace std; void getJudgeData(ifstream&, double&, double&, double&, double&, double&); void calcScore(ofstream&, string&, double&, double&, double&, double&, double&); double findLowest(double&, double&, double&, double&, double&, double); double findHighest(double&, double&, double&, double&, double&, double); string contestantName(ifstream&, string&); int main(){ ifstream inFile; ofstream outFile; string name; double s1, s2, s3, s4, s5; inFile.open("starsearch.dat"); outFile.open ("results.dat"); for (int i=0; i<5; i++){ contestantName(inFile, name); for (int i=0; i<5; i++){ getJudgeData(inFile, s1, s2, s3, s4, s5); calcScore(outFile, name, s1, s2, s3, s4, s5); } } inFile.close(); outFile.close(); system("pause"); return 0; } string contestantName(ifstream& inFile, string& name){ inFile >> name; return name; } void getJudgeData(ifstream& inFile, double& s1, double& s2, double& s3, double& s4, double& s5){ inFile >> s1; inFile >> s2; inFile >> s3; inFile >> s4; inFile >> s5; } void calcScore(ofstream& outFile, string& name, double& s1, double& s2, double& s3, double& s4, double& s5){ double totalS=0.0, lowS=0.0, highS=0.0; findLowest(s1, s2, s3, s4, s5, lowS); findHighest(s1, s2, s3, s4, s5, highS); totalS=(s1+s2+s3+s4+s5-lowS-highS)/3; outFile << name << " " << totalS; } double findLowest(double& s1, double& s2, double& s3, double& s4, double& s5, double lowS){ if ((s1 <= s2) && (s1 <= s3) && (s1 <= s4) && (s1 <= s5)) { lowS = s1; } else if ((s2 <= s1) && (s2 <= s3) && (s2 <= s4) && (s2 <= s5)) { lowS = s2; } else if ((s3 <= s1) && (s3 <= s2) && (s3 <= s4) && (s3 <= s5)) { lowS = s3; } else if ((s4 <= s1) && (s4 <= s2) && (s4 <= s3) && (s4 <= s5)) { lowS = s4; } else if ((s5 <= s1) && (s5 <= s2) && (s5 <= s3) && (s5 <= s4)) { lowS = s5; } return lowS; } double findHighest(double& s1, double& s2, double& s3, double& s4, double& s5, double highS){ if ((s1 >= s2) && (s1 >= s3) && (s1 >= s4) && (s1 >= s5)) { highS = s1; } else if ((s2 >= s1) && (s2 >= s3) && (s2 >= s4) && (s2 >= s5)) { highS = s2; } else if ((s3 >= s1) && (s3 >= s2) && (s3 >= s4) && (s3 >= s5)) { highS = s3; } else if ((s4 >= s1) && (s4 >= s2) && (s4 >= s3) && (s4 >= s5)) { highS = s4; } else if ((s5 >= s1) && (s5 >= s2) && (s5 >= s3) && (s5 >= s4)) { highS = s5; } return highS; }
Sorry in advance that this code is pretty bad. You can probably tell it's my first programming class.