Problem : Suppose at the end of the semester, there is a file "scores.dat" recording scores each student has earned so far from closed lab assignments (CLA), open lab assignments (OLA), quizzes, exams, and final exam score. You can assume there are no more than 30 students. The final letter grade is decided according to the following table based on the total points they have earned:
Total Points
|
Final Letter Grade
|
Total Points
|
Final Letter Grade
|
>=90
|
A
|
>=70, but <73
|
C-
|
>=87, but <90
|
B+
|
>=67, but <70
|
D+
|
>=83, but <87
|
B
|
>=63, but <67
|
D
|
>=80, but <83
|
B-
|
>=60, but <63
|
D-
|
>=77, but <80
|
C+
|
<60
|
F
|
>=73, but <77
|
C
|
|
|
In this assignment, you are asked to write a program to calculate student final letter grades as well as the average and highest scores of CLA, OLA, quizzes, exams, and final exam scores. The final result should be printed to the screen (standard output).
Requirements:
At the beginning of the program, your program should give the user a prompt for the name of the data file which contains the records of student grades.
Define a class Student, which includes student id, scores for CLA, OLA, quizzes, exams, final scores, total points, and letter grade. All member data must be private. The class must provide a function to calculate the final letter grade.
Store all Student objects in an associative array (other similar data structures like map, hash map are also fine) so that we can lookup student final letter grade by C#.
Your program should allow users to perform two queries. For each query, the user inputs C#, and your program should print all information (including his/her final letter grade) of the student with the given C#. After two queries, your program print information of all students on the screen.
If the language doesn't support object-oriented programming or associative array, then use appropriate data structures.
If the language doesn't support file input, you can store them in your program.
Make sure that your program has the proper documentation (program heading, variable explanation, description/input/output for each user defined function, explanation for logically related statements, etc), and style for good program readability and modifiability. Refer to the back page for more details on program requirements your program should follow.
# CLA OLA Quiz Exam FinalExam
c1234501 10 20 10 30 30
c1234502 9 10 5 20 20
c1234503 10 17 8 27 27
c1234504 8 14 10 29 15
c1234505 7 18 3 24 27
c1234506 8 16 9 13 14
c1234507 6 11 5 27 26
c1234508 8 15 9 17 28
c1234509 5 19 8 28 29
c1234510 9 14 6 19 19
c1234511 2 6 4 17 19
c1234512 7 18 7 22 25
c1234513 4 10 9 11 19
c1234514 8 18 8 24 19
c1234515 7 13 7 20 20
c1234516 10 19 9 19 19
c1234517 8 10 9 19 24
c1234518 6 11 7 23 25
c1234519 4 8 4 19 20
c1234520 9 15 9 22 24
c1234521 10 13 10 20 30
c1234522 10 12 10 25 25