Write a program to generate a report based on input received from a text file. S
ID: 3684871 • Letter: W
Question
Write a program to generate a report based on input received from a text file. Suppose the input text file student_status.txt contains the student's name (lastName, firstName middleName) and average as follows: Using the test file that is provided on Blackboard, generate the output in the following format, exactly: The program must be written to use the enum letter_grade, defined as follows: and define two namespace globalTypes (tenPoint and sevenPoint) for the function : The function deriveGrade should derive the letter_grade of the student based on the student's average. The first namespace globalType tenPoint should derive the class level based on a ten point grading scale and the second namespace globalType sevenPoint should derive the class level based on a seven point grading scale. The scales are provided below The program output must follow the format and layout used in the sample output given below: Sample output when running with namespace tenPoint: Sample output when running with namespace sevenPoint:Explanation / Answer
//grades1.cpp
//include header file
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
//create enumeration type
enum letter_grade { A,B,C,D,F };
//create a variable grade of enum type letter_grade
letter_grade grade;
//tenPoint namespace declaration that has deriveGrade method
namespace tenPoint
{
letter_grade deriveGrade(double average)
{
if (average >=90)
{
grade = A;
}
else if(average >=80)
{
grade = B;
}
else if(average >=70)
{
grade = C;
}
else if(average >=60)
{
grade = D;
}
else
{
grade = F;
}
return grade;
}
}
//sevenPoint namespace declaration that has deriveGrade method
namespace sevenPoint
{
letter_grade deriveGrade(double average)
{
if (average >=93)
{
grade = A;
}
else if(average >=85)
{
grade = B;
}
else if(average >=77)
{
grade = C;
}
else if(average >=70)
{
grade = D;
}
else
{
grade = F;
}
return grade;
}
}
//case -1
//using tenPoint as namespace
int main()
{
string name;
double average;
int i;
char grade=' ';
//open an input file stream
ifstream transferSchoolFile;
transferSchoolFile.open("student_status.txt", ios::in);
//check if file exists or not
if (transferSchoolFile.fail()){
cerr << "Error opening file" << endl;
exit(1);
}
for (i = 0; i < 4; i++)
{
getline(transferSchoolFile, name);
transferSchoolFile >> average;
transferSchoolFile.ignore();
//call the method deriveGrade with average score
switch(deriveGrade(average))
{
case 0:
grade='A';
break;
case 1:
grade='B';
break;
case 2:
grade='C';
break;
case 3:
grade='D';
break;
case 4:
grade='F';
break;
}
//print name, average and grade letter
cout << name << " " << average <<" "<<grade<<endl;
}
//pause the program output on console
system("pause");
return 0;
}
sample output:
Doe, John K. 93.2 A
Andrews, Susan S. 84.7 B
Monroe, Marylin 75.1 C
Gaston, Arthur C. 62.8 D
------------------------------------------------------------------------------------------------------------------------------------------
Replace the namespace tenPoint with sevenPoint
//grades2.cpp
//include header file
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
//create enumeration type
enum letter_grade { A,B,C,D,F };
//create a variable grade of enum type letter_grade
letter_grade grade;
//tenPoint namespace declaration that has deriveGrade method
namespace tenPoint
{
letter_grade deriveGrade(double average)
{
if (average >=90)
{
grade = A;
}
else if(average >=80)
{
grade = B;
}
else if(average >=70)
{
grade = C;
}
else if(average >=60)
{
grade = D;
}
else
{
grade = F;
}
return grade;
}
}
//sevenPoint namespace declaration that has deriveGrade method
namespace sevenPoint
{
letter_grade deriveGrade(double average)
{
if (average >=93)
{
grade = A;
}
else if(average >=85)
{
grade = B;
}
else if(average >=77)
{
grade = C;
}
else if(average >=70)
{
grade = D;
}
else
{
grade = F;
}
return grade;
}
}
//case -2
//using sevenPoint as namespace
using namespace sevenPoint;
int main()
{
string name;
double average;
int i;
char grade=' ';
//open an input file stream
ifstream transferSchoolFile;
transferSchoolFile.open("student_status.txt", ios::in);
//check if file exists or not
if (transferSchoolFile.fail()){
cerr << "Error opening file" << endl;
exit(1);
}
for (i = 0; i < 4; i++)
{
getline(transferSchoolFile, name);
transferSchoolFile >> average;
transferSchoolFile.ignore();
//call the method deriveGrade with average score
switch(deriveGrade(average))
{
case 0:
grade='A';
break;
case 1:
grade='B';
break;
case 2:
grade='C';
break;
case 3:
grade='D';
break;
case 4:
grade='F';
break;
}
//print name, average and grade letter
cout << name << " " << average <<" "<<grade<<endl;
}
//pause the program output on console
system("pause");
return 0;
}
Sample output:
Doe, John K. 93.2 A
Andrews, Susan S. 84.7 C
Monroe, Marylin 75.1 D
Gaston, Arthur C. 62.8 F
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.