Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Letter grades are sometimes assigned to numeric scores by using the grading sche

ID: 641509 • Letter: L

Question

Letter grades are sometimes assigned to numeric scores by using the grading scheme commonly known as grading on the curve. In this scheme, a letter grade is assigned to a numeric score as follows (where m is the mean grade and sd is the standard deviation):

                    Numeric Score                                Letter Grade

between 0.5 and 1.5 * sd below mean D

between 0.5*sd below and 0.5*sd above mean      C

between 0.5 and 1.5*sd above mean                 B

>1.5*sd above mean A

The mean is the sum of all the scores divided by the number of scores.

A simplified formula for standard deviation is

where x is an individual score, m is the mean, and n is the number of scores.

Write a program to read in a list of real numbers, representing numeric scores - storing them in a static array, or a dynamic array (created using new), call functions to calculate the mean and standard deviation, and then call a function to calculate and display the letter grade and corresponding numeric score.

Explanation / Answer

Program code:

#include <iostream>

#include <math.h>

using namespace std;

//method prototypes

double computeMean(double *score, int n);

double computeStandardMean(double *score, int n, double mean);

void computeDisplay(double *scores,double mean,double sd,int n);

//main function

int main()

{

    int n;

    double *scores;

    cout << "Enter the size of the array of scores: ";

    cin>>n;

    cout<<"Enter the scores: "<<endl;

    //dynamic array allocation

    scores=new double[n];

    //store the array values

    for(int i=0; i<n; i++)

    {

        cout<<"score "<<(i+1)<<": ";

        cin>>scores[i];

    }

    //call of the functions

    double mean=computeMean(scores, n);

    cout<<"Mean: "<<mean<<endl;

    double stdDeviation=computeStandardMean(scores, n, mean);

    cout<<"Standard deviation: "<<stdDeviation<<endl;

    computeDisplay(scores, mean, stdDeviation, n);   

   

   return 0;

}

//computeMean will compute the mean of the scores and returns the value

double computeMean(double *score, int n)

{

    double m=0;

    for(int i=0; i<n; i++)

    {

        m+=score[i];

    }

    double mean=m/(n*1.0);

    return mean;

}

//computeStandardMean will compute the standard deviation of the scores and returns the value

double computeStandardMean(double *score, int n, double mean)

{

    double m=0;

    for(int i=0; i<n; i++)

    {

        m+=pow((score[i]-mean), 2);

    }

    double average=m/n;

    double stddev=pow(average, 0.5);

    return stddev;

}

//computeDisplay will computes and displays the grades of the scores

void computeDisplay(double *scores,double mean,double sd,int n)

{   

    cout<<"Numeric Score Letter Grade"<<endl;   

    for(int i=0; i< n; i++)

    {

        if(scores[i]>= 0.5 && scores[i]<1.5)  

        cout<<" "<<scores[i]<<"    "<<"D"<<endl;

        else if(scores[i]>=1.5 && scores[i]<0.5*sd)

        cout<<" "<<scores[i]<<"    "<<"C"<<endl;

        else if(scores[i]>=0.5*sd && scores[i]<1.5*sd)

        cout<<" "<<scores[i]<<"    "<<"B"<<endl;

        else if(scores[i]>=1.5*sd )

        cout<<" "<<scores[i]<<"    "<<"A"<<endl;

    }

}

Sample output:

Enter the size of the array of scores: 5

Enter the scores:

score 1: 12.5

score 2: 63.4

score 3: 89.4

score 4: 67.4

score 5: 38.5

Mean: 54.24

Standard deviation: 26.3943

Numeric Score                  Letter Grade

12.5                                        C

63.4                                        A

89.4                                       A
67.4                                        A

38.5                                       B

Note: Please the values while displaying, the information given to check the conditions are containing the ambiguity.

So, some assumeption is made and the grades are assigned.

Please check it.