Question #55225

A particular talent competition has 5 judges, each of whom awards a score between 0 and
10 to each performer. Fractional scores, such as 8.3, are allowed. A performer’s final score
is determined by dropping the highest and lowest score received, then averaging the 3
remaining scores. Write a program that uses these rules to calculate and display a
contestant’s score. It should include the following functions:
• void getJudgeData() should ask the user for a judge’s score, store it in a reference
parameter variable, and validate it. This function should be called by main once for each
of the 5 judges.
• double calcScore() should calculate and return the average of the 3 scores that
remain after dropping the highest and lowest scores the performer received. This
function should be called just once by main and should be passed the 5 scores.
Two additional functions, described below, should be called by calcScore, which uses the
returned information to determine which of the scores to drop.
1

Expert's answer

2015-10-02T06:48:48-0400

Answer on Question #55225, Programming / C++ | for completion


#include <iostream>
#include <algorithm>
using namespace std;
void getJudgeData(double& score);
double calcScore(double score1, double score2, double score3, double score4, double score5);
double dropMax(double score1, double score2, double score3, double score4, double score5);
double dropMin(double score1, double score2, double score3, double score4, double score5);
int main()
{
    double score1, score2, score3, score4, score5;
    getJudgeData(score1);
    getJudgeData(score2);
    getJudgeData(score3);
    getJudgeData(score4);
    getJudgeData(score5);
    cout << "Average score is: " << calcScore(score1, score2, score3, score4, score5) << endl;
    system("pause");
    return 0;
}
void getJudgeData(double& score)
{
    static int i = 0;
    cout << "Enter judge #" << i + 1 << " score (should be between 0 and 10):";
    cin >> score;
    while (score < 0 || score > 10)
    {
        cout << "Wrong value of score (should be between 0 and 10).\nTry again: ";
        cin >> score;
    }
    ++i;
}
double calcScore(double score1, double score2, double score3, double score4, double score5)
{
    return (score1 + score2 + score3 + score4 + score5
        - dropMax(score1, score2, score3, score4, score5)
        - dropMin(score1, score2, score3, score4, score5)) / 3;
}
double dropMax(double score1, double score2, double score3, double score4, double score5)
{
    return max({ score1, score2, score3, score4, score5 });
}
double dropMin(double score1, double score2, double score3, double score4, double score5)
{
    return min({ score1, score2, score3, score4, score5 });
}

Need a fast expert's response?

Submit order

and get a quick answer at the best price

for any assignment or question with DETAILED EXPLANATIONS!

Comments

No comments. Be the first!
LATEST TUTORIALS
APPROVED BY CLIENTS