# develop a program to determine the final scores Solution

In this project, you will develop a program to determine the final scores, letter grades, and rankings of all students in a course. All records of the course will be stored in an input file, and a record of each student will include the first name, id, five quiz scores, two midterm scores, and one final exam score. For each student record, your program should determine the numeric average and letter grade using the following policies:

a. Each quiz is graded on the basis of 10 points. Among the five quizzes, discard the lowest score and use the remaining four scores for the grade calculation.

b. Each midterm is graded on the basis of 100 points.

c. The final exam is graded on the basis of 100 points.

d. For the numeric average, the final exam counts for 40 percent, midterms count for 40 percent, and quizzes count for 20 percent, respectively. Any average of 90 or more is an ‘A’, any average of 80 or more (but less than 90) is a ‘B’, any average of 70 or more (but less than 80) is a ‘C’, any average of 60 or more (but less than 70) is a ‘D’, and any average below 60 is a ‘F’,

In this project, your program should ask a user for an input file name. Then, it should read the data into your program and calculate the numeric average, letter grade, and ranking of each student. After that, your program should display the course result in order of numeric averages and first names, respectively. (If there are several students with the same average or the same first name, your program should display the student with a smallest id number first.) Furthermore, your program should present the statistics of the class, such as the number of students in the course, the average of all numeric grades, and the distribution of each letter grade. When you display the distribution of letter grades, you should use a histogram as shown in the sample result below. Finally, your program should implement a “record finding” function. In other words, if a user enters a first name, your program should provide information about the student if a student with that name exists. If there are several students with the same name, your program should display all their records. In this project, you can assume that the total number of students in a course will not be over 30.

it needs at least five functions.

also need you to develop five test cases. You will turn in a

document summary that should look similar to:

Test Case 1:

Input:

Alice 2000 10.0 6.7 10.0 10.0 10.0 100.0 100.0 100.0

Expected Output:

(Show expected Output)

Actual Output:

(Copy and Paste the Output)

a. Each quiz is graded on the basis of 10 points. Among the five quizzes, discard the lowest score and use the remaining four scores for the grade calculation.

b. Each midterm is graded on the basis of 100 points.

c. The final exam is graded on the basis of 100 points.

d. For the numeric average, the final exam counts for 40 percent, midterms count for 40 percent, and quizzes count for 20 percent, respectively. Any average of 90 or more is an ‘A’, any average of 80 or more (but less than 90) is a ‘B’, any average of 70 or more (but less than 80) is a ‘C’, any average of 60 or more (but less than 70) is a ‘D’, and any average below 60 is a ‘F’,

In this project, your program should ask a user for an input file name. Then, it should read the data into your program and calculate the numeric average, letter grade, and ranking of each student. After that, your program should display the course result in order of numeric averages and first names, respectively. (If there are several students with the same average or the same first name, your program should display the student with a smallest id number first.) Furthermore, your program should present the statistics of the class, such as the number of students in the course, the average of all numeric grades, and the distribution of each letter grade. When you display the distribution of letter grades, you should use a histogram as shown in the sample result below. Finally, your program should implement a “record finding” function. In other words, if a user enters a first name, your program should provide information about the student if a student with that name exists. If there are several students with the same name, your program should display all their records. In this project, you can assume that the total number of students in a course will not be over 30.

it needs at least five functions.

also need you to develop five test cases. You will turn in a

document summary that should look similar to:

Test Case 1:

Input:

Alice 2000 10.0 6.7 10.0 10.0 10.0 100.0 100.0 100.0

Expected Output:

(Show expected Output)

Actual Output:

(Copy and Paste the Output)

You'll get 1 file (2.7KB)