Write a program to compute numeric grades for a course. The course records are in a file called "inputGrades.txt” that will serve as the input file. The input file is in exactly the following format: The first line in the input file contains the student number. The next line contains 14 lab scores separated by spaces, then the next line contains 7 assignment scores separated by spaces, then the next line contains 2 exam scores separated by spaces,
and finally, the last line contains a single final exam score. The following is an example of a single line from the input file:
1807453
95 85 95 85 85 92 65 76 67 94 34 67 88 100
88 78 93 92 100 76 84
88 75
85
Your program will take its input from this input file and send its output to a second output file called “outputGrades.txt”. The data in the output file will be the same as the data in the input file, except that there will be one additional number (of type double) at the end of each line. This number will be the overall student's grade rounded to two decimal places. For the purposes of the overall grade calculations, labs are worth 15%, assignments are worth 25%, each exam is worth 20%, and the final is worth 20% of the student's grade.
Having trouble with this program. Can anyone guide me in the right direction?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79
|
#include <iostream>
#include <fstream>
using namespace std;
void calculate(ifstream& input_file, ofstream& output_file);
int main() {
ifstream input_file;
ofstream output_file;
input_file.open("inputGrades.txt");
if (input_file.fail()) {
cout << "Unable to open the input file\n";
exit(0);
}
output_file.open("outputGrades.txt");
if (output_file.fail()) {
cout << "Unable to open the output file\n";
exit(0);
}
calculate(input_file, output_file);
input_file.close();
output_file.close();
cout << "Done reading and writing files.\n";
cout << endl;
return 0;
}
void calculate(ifstream& input_file, ofstream& output_file) {
int student_number;
double lab_sum = 0;
double lab_grade;
double asssignment_sum = 0;
double assignment_grade;
double test_sum = 0;
double test_grade;
double exam_sum = 0;
double exam_grade;
double course_grade;
cin >> student_number;
for (int i = 0; i < 14; i++) {
cin >> lab_grade;
lab_sum += lab_grade;
}
for (int j = 0; j < 7; j++) {
cin >> assignment_grade;
asssignment_sum += assignment_grade;
}
for (int k = 0; k < 2; k++) {
cin >> test_grade;
test_sum += test_grade;
}
for (int m = 0; m < 1; m++) {
cin >> exam_grade;
exam_sum += exam_grade;
}
course_grade = ((lab_sum / 14) * 0.15) + ((asssignment_sum / 7) * 0.25) + ((test_sum / 2) * 0.4) + ((exam_sum / 1) * 0.2);
output_file << "The course grade is " << course_grade;
cout << "The course grade is " << course_grade << endl;
}
|