70.3k views
2 votes
Your program must output each student’s name in the 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.

1 Answer

3 votes

Answer:

#include <iostream>

#include <string>

#include <fstream>

using namespace std;

char getStudentGrade(int testScore);

//Declare constant max students in file 10

const int maxStudents = 10;

struct StudentType

{

string studentFName;

string studentLName;

int testScore;

char grade;

};

void readStudentData(StudentType students[]){

int i = 0;

ifstream infile;

infile.open("inputStudentData.txt");

while (!infile.eof())

{

infile >> students[i].studentFName;

infile >> students[i].studentLName;

infile >> students[i].testScore;

students[i].grade = getStudentGrade(students[i].testScore);

i++;

}

}

char getStudentGrade(int testScore){

char grade;

if(testScore >= 80) {

grade = 'A';

}

else if(testScore >= 60) {

grade = 'B';

}

else if(testScore >= 50) {

grade = 'C';

}

else if(testScore >= 40) {

grade = 'D';

}

else {

grade = 'F';

}

return grade;

}

int main()

{

StudentType students[10];

readStudentData(students);

for(int i=0;i<maxStudents;i++) {

students[i].grade = getStudentGrade(students[i].testScore);

}

for(int i=0; i<maxStudents; i++){

cout << students[i].studentLName <<", " << students[i].studentFName << " " << students[i].grade << endl;

}

ofstream outputFile;

outputFile.open ("outputStudentData.txt");

for(int i=0; i<maxStudents; i++){

outputFile << students[i].studentLName <<", " << students[i].studentFName << " " << students[i].grade << endl;

}

outputFile.close();

return 0;

}

User Siffiejoe
by
8.9k points