subject

This program is to compute and write to a file the GPA for student scores read from an input file. The point values of the grades are 4 for A, 3 for B, 2 for C, 1 for D, and 0 for F. Except for the grade A, where '+' has no effect, a '+' after the letter increases the point value by 0.3, and except for F, where a '-' has no effect, a '-' after a letter decreases the point value by 0.3, so, for example, B- is worth 3 - 0.3 = 2.7 points. The weighted points for a course is the point value of the grade, multiplied by the number of units for the course. The weighted average for the GPA is then the sum of these weighted points, divided by sum of the units.
Prompt the user by "Enter name of input file: " for the name of an input file and open that file for reading. The two input files for the tests are already at the zyBooks site. They each have a list of student names with the course they have taken, of the form

Jacobs, Anthony
ECS10 4 B- ECS20 4 C+
ANS17 3 A
ANS49H 2 D
Wilson, Elaine
ECS10 4 B+
ECS20 4 C+
ANS17 3 A
ANS49H 2 D
ANS100 5 B-

with the student name on one line, and a list of that student's course names, units, and grades on a sequence of following lines, terminated by a blank line before the next student name line. The input will be terminated either by a second blank line where the next name would be, which will appear as just "\n", or by the file ending with either no new line character at the end of the last course line for the last student, or just one, which will result in just the empty string "" when reading in any more lines. (The input for the hidden second test ends with just one blank line after the last course.) To repeat this in a different way:
You need to correctly handle 3 cases:

a) The file ends at the end of the last course line, just after the last grade, with no \n character at all.
b) The input file ends with a single \n character at the end of the last grade line (as is normal on all other lines).
c) The file ends with two \n characters, one to end the last grade line, and one blank line, as would normally occur before another student name.

The program should open and write an output file named "GPA_output. txt" of the form:

Jacobs, Anthony 2.62
Wilson, Elaine 2.77

with each line containing a student name and the GPA, which must be computed by the program. The format of each line must have the name left adjusted, in a field with a total of 26 spaces, followed immediately by the GPA, with two decimal places. You can do this with a "%" style formatted output of the form:

f. write("%-26s%.2f\n" % (student_name, GPA))

or a "…".format() style formatted output of the form

f. write("{:<26s}{:.2f}\n".format(s tudent_name, GPA))

Note that the "\n" is needed at the end of the quoted format specification, because unlike print(), f. write() does not automatically put a new line character at the end of the line.
The input given above is for the first test, and the file "GPA_input. txt" from which it was taken is in the canvas File Folder for "Week 9" of "Programs shown in class", so that you can use it for testing your program before submitting it. You will probably need to do such testing because unlike the other assignments if your program has problems that prevent it from getting to the stage of writing the output file, the error reported will just be "Could not find file: GPA_output. txt" which is not very useful. The output file for this input, "GPA_output. txt" is also in the Week 9 folder for you to compare, since white space is important here.

ansver
Answers: 1

Another question on Computers and Technology

question
Computers and Technology, 22.06.2019 12:40
The most complicated four letter word
Answers: 1
question
Computers and Technology, 22.06.2019 21:30
Write a function named printfloatrepresentation(float number) that will print the floating point representation of a number using the format given below. (sign bit) exponent in binary (assumed bit).significandfor example if the number passed an argument is 71 yourprogram should print (0) 10000101 (1).00011100000000000000000similarly if the number passed to the function as argument is -71 the program should print (1) 10000101 (1).00011100000000000000000
Answers: 3
question
Computers and Technology, 22.06.2019 22:00
Perform the following tasks: a. create a class named testclass that holds a single private integer field and a public constructor. the only statement in the constructor is one that displays the message “constructing”. write a main()function that instantiates one object of the testclass. save the file as testclass.cpp in the chapter 08 folder. run the program and observe the results. b. write another main()function that instantiates an array of 10 testclass objects. save the file as test class array.c . run this program and observe the results.
Answers: 1
question
Computers and Technology, 22.06.2019 22:30
Who needs to approve a change before it is initiated? (select two.) -change board -client or end user -ceo -personnel manager -project manager
Answers: 1
You know the right answer?
This program is to compute and write to a file the GPA for student scores read from an input file. T...
Questions
question
Mathematics, 24.02.2021 14:00
question
Mathematics, 24.02.2021 14:00