You are to write a program that will process a text file that contains the following information for a group of students (one line of data per student):

Name (Last name - space - First name; at most 20 characters, padded with blanks on the right), followed by a series of numeric values, separated by at least one blank space. Each numeric value will be an integer representing the student's score on an exam, quiz, or other assignment.

The first line of data will contain "Possible Points" in the Name field and the integer values will represent the highest possible score on each assessment.

NOTE: The number of integers on a specific line of data may or may not be the same as the number of values on the "Possible Points" line.

Sample data for one student:

Payne Major 26 11 86 34 6 15 72 25 5 19 33 68

Sample first line of text:

Possible Points 28 18 20 90 40 16 22 85 25 15 22 40 100

You should prompt the user for the name of an input data file, make sure the requested file exists (allow the user to enter a different file name if it does not), prompt the user for the name of an output file, read the first line of data to determine the total number of points possible, and then, for each student:

  • read in the data
  • calculate the total number of points earned by the student as well as their percentage grade
  • determine the student's letter grade (see the scale below)
  • display the student's name (first name, space, last name), point total, percentage grade and letter grade
  • store the information displayed above in the output file (one line per student, in a neat table format, including proper headings.

The scale to be used is:

A: 88% or above
B: 76 to 87.99...%
C: 64 to 75.99...%
D: 52 to 63.00...%
F: below 52%

After all students have been processed, your program should also display the following and store this information in the output file:

  • Student with the highest percentage score, along with this score
  • The average percentage score
  • The number of times each possible letter grade was achieved.

Use at least a few methods (with complete, proper argument lists -- do NOT use global variables) in this program.

Your code should be fully documented.

Academic Honesty!
It is not our intention to break the school's academic policy. Posted solutions are meant to be used as a reference and should not be submitted as is. We are not held liable for any misuse of the solutions. Please see the frequently asked questions page for further questions and inquiries.
Kindly complete the form. Please provide a valid email address and we will get back to you within 24 hours. Payment is through PayPal, Buy me a Coffee or Cryptocurrency. We are a nonprofit organization however we need funds to keep this organization operating and to be able to complete our research and development projects.