C BREAK UP THE FOLLOWING C PROGRAM INTO 3 VOID FUNCTIONS Fun
C++
BREAK UP THE FOLLOWING C++ PROGRAM INTO 3 VOID FUNCTIONS.
Function and output requirements: One function does input. One function computes the course GPA points in the array. One function computes the GPA. One function outputs to a file the student’s name, a table of the courses, grade received, course credits and GPA points earned, and finally, the student’s semester GPA.
#include <iostream>
#include <fstream>
#include <iomanip>
#include <string>
using namespace std;
int main()
{
// File Identifiers
fstream infile;
ofstream outfile;
// Open Input File
infile.open(\"h:\\\\program4input.txt\");
outfile << fixed << showpoint << setprecision(4);
if (!infile)
{
cout<<\"Cannot Open!\"<<endl;
return 0;
}
// Open Output File
outfile.open(\"h:\\\\program4output.txt\");
// Declare Variables & Arrays
char courseNames [10][50];
int courseData [10][3];
string name;
int i = 0;
int sumGPA = 0, sumCourseCredits = 0;
getline(infile, name);
// While not end of file
// Processing
while(!infile.eof())
{
infile.get(courseNames[i], 50);
infile >> courseData[i][0];
infile >> courseData[i][1];
if (courseData[i][0] >= 90)
courseData[i][2] = 4;
else if (courseData[i][0] >= 80)
courseData[i][2] = 3;
else if (courseData[i][0] >= 70)
courseData[i][2] = 2;
else if (courseData[i][0] >= 60)
courseData[i][2] = 1;
else
courseData[i][2] = 0;
sumCourseCredits += courseData[i][1];
sumGPA += courseData[i][2];
i++;
infile.ignore(50, \'\ \');
}
int counter = i;
outfile << name << endl;
// Outfile formatting
for (i = 0; i < counter; i++)
{
outfile << left << setw(20) << \"Course Name: \" << left << setw(30) << \"Course grade average: \" << left << setw(30) << \"Course GPA points: \" << left << setw(30) <<\"Course credit total: \" << endl;
outfile << left << setw(20) << courseNames[i] << left << setw(30) << courseData[i][0] << left << setw(30) << courseData[i][1] << left << setw(30) << courseData[i][2] << endl;
}
// Calculate and output total GPA
double totalGPA = (double)sumGPA / (double)sumCourseCredits;
outfile << \"The students Semester GPA is as follows: \" << totalGPA << endl;
// Close Files
infile.close();
outfile.close();
system(\"pause\");
return 0;
}
// Outfile
/*
Jon P. Washington, Jr.
Course Name: Course grade average: Course GPA points: Course credit total:
Computer Science I 81 4 3
Course Name: Course grade average: Course GPA points: Course credit total:
PreCalculus 75 3 2
Course Name: Course grade average: Course GPA points: Course credit total:
Biology I 88 5 3
Course Name: Course grade average: Course GPA points: Course credit total:
English II 100 3 4
Course Name: Course grade average: Course GPA points: Course credit total:
Psychology I 68 3 1
The students Semester GPA is as follows: 0.7222
*/
Solution
Hi, I have added all required functions.
Please test this program with data and let me know in case of any issue.
#include <iostream>
#include <fstream>
#include <iomanip>
#include <string>
using namespace std;
// function declarations
void input(char courseNames[][50], int courseData[][3], string &name,int &counter);
void gpa(int courseData[][3], double &total, int counter);
void output(char courseNames[][50], int courseData[][3], string name, double totalGPA, int counter);
int main()
{
// Declare Variables & Arrays
char courseNames [10][50];
int courseData [10][3];
int counter;
string name;
// calling input methods
input(courseNames, courseData, name, counter);
//Calculate and output total GPA
double totalGPA;
gpa(courseData, totalGPA, counter);
//calling output function
output(courseNames, courseData, name, totalGPA, counter);
system(\"pause\");
return 0;
}
// function definations
// function declarations
void input(char courseNames[][50], int courseData[][3], string &name, int &counter){
// File Identifiers
ifstream infile;
int i = 0;
// Open Input File
infile.open(\"h:\\\\program4input.txt\");
if (!infile)
{
cout<<\"Cannot Open!\"<<endl;
exit(0);
}
getline(infile, name);
// While not end of file
// Processing
while(!infile.eof())
{
infile.get(courseNames[i], 50);
infile >> courseData[i][0];
infile >> courseData[i][1];
if (courseData[i][0] >= 90)
courseData[i][2] = 4;
else if (courseData[i][0] >= 80)
courseData[i][2] = 3;
else if (courseData[i][0] >= 70)
courseData[i][2] = 2;
else if (courseData[i][0] >= 60)
courseData[i][2] = 1;
else
courseData[i][2] = 0;
//sumCourseCredits += courseData[i][1];
//sumGPA += courseData[i][2];
i++;
infile.ignore(50, \'\ \');
}
// Close Files
infile.close();
}
void gpa(int courseData[][3], double &totalGPA, int counter){
int i = 0;
int sumGPA = 0, sumCourseCredits = 0;
while(i < counter)
{
if (courseData[i][0] >= 90)
courseData[i][2] = 4;
else if (courseData[i][0] >= 80)
courseData[i][2] = 3;
else if (courseData[i][0] >= 70)
courseData[i][2] = 2;
else if (courseData[i][0] >= 60)
courseData[i][2] = 1;
else
courseData[i][2] = 0;
sumCourseCredits += courseData[i][1];
sumGPA += courseData[i][2];
i++;
}
totalGPA = (double)sumGPA / (double)sumCourseCredits;
}
void output(char courseNames[][50], int courseData[][3], string name, double totalGPA, int counter){
ofstream outfile;
outfile << fixed << showpoint << setprecision(4);
// Open Output File
outfile.open(\"h:\\\\program4output.txt\");
outfile << name << endl;
// Outfile formatting
for (int i = 0; i < counter; i++)
{
outfile << left << setw(20) << \"Course Name: \" << left << setw(30) << \"Course grade average: \"
<< left << setw(30) << \"Course GPA points: \" << left << setw(30) <<\"Course credit total: \" << endl;
outfile << left << setw(20) << courseNames[i] << left << setw(30) << courseData[i][0] << left
<< setw(30) << courseData[i][1] << left << setw(30) << courseData[i][2] << endl;
}
outfile << \"The students Semester GPA is as follows: \" << totalGPA << endl;
// Close Files
outfile.close();
}




