C++ Write a program that reads student\'s names followed by their test scores fr
ID: 3827499 • Letter: C
Question
C++
Write a program that reads student's names followed by their test scores from the input file i provided in Canvas. The program should output to a file, output.txt, each student’s name followed by the test scores and the relevant grade. It should also output the same data to the screen.
Student data should be stored in a struct variable of type StudentType, which has four components: studentFName and studentLName of type string, testScore of type int and grade of type char. suppose that the class has 20 students. Use an array of 20 components of type StudentType.
Your program must contain at least the following functions:
1. A function to read the student's data into an array.
2. A function to assign the relevant grade to each student.
Your program should output each student’s name in this form: last name followed by a comma, followed by a space, followed by the first name; the name must be left justified. Moreover, other than declaring the variables and opening the input and output files, the function main should only be a collection of function calls.
Your program should open C:\Project4\Ch9_Ex2Data.txt and write the output to that same folder (C:\Project4\output.txt). The slash syntax will depend on what compiler you are using.
C:\project4\Ch9_ex2Data.txt
Duckey Donald 85
Goof Goofy 89
Brave Balto 93
Snow Smitn 93
Alice Wonderful 89
Samina Akthar 85
Simba Green 95
Donald Egger 90
Brown Deer 86
Johny Jackson 95
Greg Gupta 75
Samuel Happy 80
Danny Arora 80
Sleepy June 70
Amy Cheng 83
Shelly Malik 95
Chelsea Tomek 95
Angela Clodfelter 95
Allison Nields 95
Lance Norman 88
Explanation / Answer
Ch9_Ex2Data.txt (Save this file under D Drive.Then the path of the file pointing to it is D:\Ch9_Ex2Data.txt)
Duckey Donald 85
Goof Goofy 89
Brave Balto 93
Snow Smitn 93
Alice Wonderful 89
Samina Akthar 85
Simba Green 95
Donald Egger 90
Brown Deer 86
Johny Jackson 95
Greg Gupta 75
Samuel Happy 80
Danny Arora 80
Sleepy June 70
Amy Cheng 83
Shelly Malik 95
Chelsea Tomek 95
Angela Clodfelter 95
Allison Nields 95
Lance Norman 88
____________________
Program:
#include <fstream>
#include <iostream>
#include <iomanip>
using namespace std;
//Creating Struct
struct StudentType
{
//variables
string studentFName;
string studentLName;
int testScore;
char grade;
};
//function declaration
void readdata(ifstream& dataIn,StudentType st[],int size);
void assignReleventGrade(StudentType st[],int size);
int main() {
//Declaring variables
int size=20;
//Creating array of type StudentType[] array
struct StudentType st[size];
//defines an input stream for the data file
ifstream dataIn;
//Defines an output stream for the data file
ofstream dataOut;
//Opening the input file
dataIn.open("D:\Ch9_Ex2Data.txt");
//creating and Opening the output file
dataOut.open("D:\output.txt");
//Calling the function to read the data from the file
readdata(dataIn,st,size);
//calling the function to assign the grade letter to grade
assignReleventGrade(st,size);
//Writing data to the output file
for(int i=0;i<size;i++)
{
dataOut<<st[i].studentLName<<", "<<st[i].studentFName<<" "<<st[i].testScore<<" "<<st[i].grade<<endl;
}
//Closing the intput file
dataIn.close();
//Closing the output file.
dataOut.close();
return 0;
}
/* Function implementation which read the data from
* the file and populate into struct array
*/
void readdata(ifstream& dataIn,StudentType st[],int size)
{
string fname,lname;
int score;
int i=0;
//Reading data from file
while(i<size)
{
dataIn>>fname>>lname>>score;
st[i].studentFName=fname;
st[i].studentLName=lname;
st[i].testScore=score;
i++;
}
}
/* Function implementation which assign
* grade letter based on test score
*/
void assignReleventGrade(StudentType st[],int size)
{
for(int i=0;i<size;i++)
{
if (st[i].testScore >= 90)
st[i].grade = 'A';
else if (st[i].testScore >= 80 && st[i].testScore < 90)
st[i].grade = 'B';
else if (st[i].testScore >= 70 && st[i].testScore < 80)
st[i].grade = 'C';
else if (st[i].testScore >= 60 && st[i].testScore < 70)
st[i].grade = 'D';
else if (st[i].testScore < 60)
st[i].grade = 'F';
}
}
______________________
output.txt (We can See this file under D Drive.As we specified the path of the output file as D:\output.txt)
Donald, Duckey 85 B
Goofy, Goof 89 B
Balto, Brave 93 A
Smitn, Snow 93 A
Wonderful, Alice 89 B
Akthar, Samina 85 B
Green, Simba 95 A
Egger, Donald 90 A
Deer, Brown 86 B
Jackson, Johny 95 A
Gupta, Greg 75 C
Happy, Samuel 80 B
Arora, Danny 80 B
June, Sleepy 70 C
Cheng, Amy 83 B
Malik, Shelly 95 A
Tomek, Chelsea 95 A
Clodfelter, Angela 95 A
Nields, Allison 95 A
Norman, Lance 88 B
______________Thank You
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.