Quantcast
Channel: Programming Forums
Viewing all articles
Browse latest Browse all 51036

My code compiles, but my loops are wrong and probably my inFile

$
0
0
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

#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.

Viewing all articles
Browse latest Browse all 51036

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>