Thank you in advance. Wrire a C++ program that compares student grades for an as
ID: 3670886 • Letter: T
Question
Thank you in advance.
Wrire a C++ program that compares student grades for an assignment as a percentage given each student's score and the toral points. The final score should be rounded up to the nearest whole value using the ceil function in the header file. You should also display the floating-point result up to 5 decimal places. You should have a function to print the last name of the student and another function to compute and print the percentage as well as "Excellent" if the grade is greater than 90, "Well Done" if the grade is greater than 80, "Good" if the grade is greater than 70, "Need Improvement" if the grade is greater than or equal to 60, and "Fail" if the grade is less than 50. The main function is responsible for reading the input file and passing the appropriate arguments to your functions. Here is an example of what the input file might look like: Weems 50 60 Dale 51 60 Richards 57 60 Smith 36 60 Toml in 44 60 Bird 45 60 The output of your program should look like this: Weens 83%.83333 Well Done Dale 85%.85000 Well Done Richards 95%.95000 Excellent Smith 60%.60000 Need Improvement Toml in 73%.73333 Good Bird 75%.75000 GoodExplanation / Answer
#include <iostream>
#include <fstream>
#include <math.h>
#include <iomanip>
using namespace std;
void print_name(string sname){
cout<<sname;
}
void compute(int score, int max_score){
double perc;
perc=score*100/max_score;
std::cout << std::setprecision(0)<<std::fixed;
cout<<" "<<ceil(perc)<<"%"<<" ";
std::cout << std::setprecision(5)<<std::fixed;
cout<<perc/100<<" ";
if (ceil(perc) > 90)
cout << "Excellent";
else if (ceil(perc) >= 80)
cout << "Well Done";
else if (ceil(perc) >= 70)
cout << "Good";
else if (ceil(perc) >= 60)
cout << "Needs Improvement";
else if (ceil(perc) < 50)
cout << "Fail";
}
int main()
{
string sname;
int score,max_score;
ifstream fin;
fin.open("stud_input.dat", ios::in);
while(!fin.eof()){
fin >> sname;
fin >> score;
fin >> max_score;
if (!fin) break;
print_name(sname);//function for printing student name
compute(score, max_score);//function to compute percentage and comments
cout<<" ";
cout<<endl;
}
fin.close();
return 0;
}
Output:
[oracle@rac1 ~]$ g++ stud.cpp
[oracle@rac1 ~]$ ./a.out
Weems 83% 0.83000 Well Done
Dale 85% 0.85000 Well Done
Richards 95% 0.95000 Excellent
Smith 60% 0.60000 Needs Improvement
Tomlin 73% 0.73000 Good
Bird 75% 0.75000 Good
[oracle@rac1 ~]$
Input file: stud_input.dat
Weems 50 60
Dale 51 60
Richards 57 60
Smith 36 60
Tomlin 44 60
Bird 45 60
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.