CAN YOU PLEASE WRITE A PSEUDOCODE FOR THIS CODE AND ADD COMMENT IN THIS PROGRAM
ID: 3699747 • Letter: C
Question
CAN YOU PLEASE WRITE A PSEUDOCODE FOR THIS CODE AND ADD COMMENT IN THIS PROGRAM PLEASE>>>>
//header function
#include <iostream>
#include <cctype>
using namespace std;
//prototype function
string toUpperCase(string name);
int countBelow60(double grade[], int n);
string calulateLetterGrade(double grade);
void inputGrades(string type, double grades[], int &n);
double calculateGradePerc(double grades[], int n, int multiplier);
int main()
{
double grades[10];
int n;
double overallScore=0;
string letterGrade;
string name;
cout<<"Enter name:";
getline(cin, name);
inputGrades("homework",grades,n);
overallScore += calculateGradePerc(grades,n,10);
int progMultiplier=50;
if (n>0)
{progMultiplier=40;
inputGrades("program",grades,n);
overallScore +=calculateGradePerc(grades,n,progMultiplier);
inputGrades("quiz",grades,n);
overallScore += calculateGradePerc(grades, n, 10);
inputGrades("exam",grades, n);
overallScore += calculateGradePerc(grades, n, 40);
}
if (countBelow60(grades,n)>2)
letterGrade = "F";
else
letterGrade =calulateLetterGrade(overallScore);
name= toUpperCase(name);
cout<<"Result: "<<name<<" "<<overallScore<<" "<<letterGrade<<endl;
}
void inputGrades(string type, double grades[], int &n)
{
double score;
n=0;
while(true)
{
cout<<"enter"<<type<<"grade(enter -1 when done):";
cin>>score;
if (score == -1)
break;
grades[n++]=score;
}}
double calculateGradePerc(double grades[], int n, int multiplier)
{double sum =0;
double avg=0;
for(int i=0; i<n; i++)
sum +=grades[i];
if (n !=0)
{avg =(sum/n)/100.0;
avg *= multiplier;
}
return avg;}
string calulateLetterGrade(double grade)
{
if (grade >=93 && grade<=100)
return "A";
else if (grade>=90 && grade<=92.9)
return "A-";
else if (grade>=85 && grade<=89.9)
return "B+";
else if (grade>=82 && grade<=84.9)
return "B";
else if (grade>=80 && grade<=81.9)
return "B-";
else if (grade>=76 && grade<=79.9)
return "C+";
else if (grade>=72 && grade<=75.9)
return "C";
else if (grade>=69.5 && grade<=71.9)
return "C-";
else if (grade>=68 && grade<=69.5)
return "D+";
else if (grade>=65 && grade<=67.9)
return "D";
else if (grade>=60 && grade<=64.9)
return "D-";
else
return "F";
}
int countBelow60(double grade[], int n)
{
int count =0;
for(int i=0; i<n; i++)
{if(grade[i]<60)
count++;
}
return count;
}
string toUpperCase(string name)
{string s="";
for(double i=0; i<name.length(); i++)
s +=toupper(name[i]);
return s;
}
Explanation / Answer
//header function
#include <iostream>
#include <cctype>
using namespace std;
//prototype function
string toUpperCase(string name);
int countBelow60(double grade[], int n);
string calulateLetterGrade(double grade);
void inputGrades(string type, double grades[], int &n);
double calculateGradePerc(double grades[], int n, int multiplier);
int main()
{
double grades[10];
int n;
double overallScore=0;
string letterGrade;
string name;
cout<<"Enter name:";
getline(cin, name); //prompt string
inputGrades("homework",grades,n); //calls function
overallScore += calculateGradePerc(grades,n,10); //calls function and adds the return value to overallScore
int progMultiplier=50;
if (n>0)
{progMultiplier=40;
inputGrades("program",grades,n); //calls function
overallScore +=calculateGradePerc(grades,n,progMultiplier); //calls function and adds the return value to overallScore
inputGrades("quiz",grades,n); //calls function
overallScore += calculateGradePerc(grades, n, 10); //calls function and adds the return value to overallScore
inputGrades("exam",grades, n); //calls function
overallScore += calculateGradePerc(grades, n, 40); //calls function and adds the return value to overallScore
}
if (countBelow60(grades,n)>2)
letterGrade = "F";
else
letterGrade =calulateLetterGrade(overallScore); //calls function and adds the return value to letterGrade
name= toUpperCase(name); //calls function and adds the return value to name
cout<<"Result: "<<name<<" "<<overallScore<<" "<<letterGrade<<endl;
}
void inputGrades(string type, double grades[], int &n)
{
double score;
n=0;
while(true) //infinite loop
{
cout<<"enter"<<type<<"grade(enter -1 when done):";
cin>>score; //prompt input
if (score == -1) //if score is -1 then break infinite loop
break;
grades[n++]=score; //store all scores into array
}}
double calculateGradePerc(double grades[], int n, int multiplier)
{double sum =0;
double avg=0;
for(int i=0; i<n; i++) //for loop to iterate till the end of grades array
sum +=grades[i]; //summation of all grades
if (n !=0)
{avg =(sum/n)/100.0; //find the average percentage
avg *= multiplier; //resultant average multiples with multiplier
}
return avg;} //return average
string calulateLetterGrade(double grade) //returns grade according to score
{
if (grade >=93 && grade<=100)
return "A";
else if (grade>=90 && grade<=92.9)
return "A-";
else if (grade>=85 && grade<=89.9)
return "B+";
else if (grade>=82 && grade<=84.9)
return "B";
else if (grade>=80 && grade<=81.9)
return "B-";
else if (grade>=76 && grade<=79.9)
return "C+";
else if (grade>=72 && grade<=75.9)
return "C";
else if (grade>=69.5 && grade<=71.9)
return "C-";
else if (grade>=68 && grade<=69.5)
return "D+";
else if (grade>=65 && grade<=67.9)
return "D";
else if (grade>=60 && grade<=64.9)
return "D-";
else
return "F";
}
int countBelow60(double grade[], int n) //counts all the grades which is less than 60
{
int count =0;
for(int i=0; i<n; i++)
{if(grade[i]<60)
count++;
}
return count;
}
string toUpperCase(string name) //convert name into uppercase
{string s="";
for(double i=0; i<name.length(); i++)
s +=toupper(name[i]);
return s;
}
PSEUDOCODE:
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.