$24
Goal: To practice with your choice of languages.
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, respectively. The final result should be printed to the screen (standard output).
Requirements:
You must use the language you picked from project1.
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.
Define a class Roster, which has an associative array (other similar data structures like map, hash map are also fine) to store all Student objects. Define appropriate methods in the class to calculate, update, and query individual student information as well as required statistic information of all students.
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 as well as the average and highest scores of CLA, OLA, quizzes, exams, and final exam on the screen.
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.
The website (https://www.tutorialspoint.com/codingground.htm) contains online compilers/interpreters and advanced IDEs for lots of common programming languages.
What to submit?
Rubric file for this project
Your source code
A screen shot (must be image files) of your query results and information of all student as well as all statistic data printed by your program.
How to submit?
Copy required documents to the project2 folder in your individual repository. Edit the file to put your name.
Commit the whole project2 folder to the server. Any commit of the project after the deadline is considered as cheating. If this happens, the latest version before the deadline will be graded, and you may receive up to 50 points deduction.
No hard copy needed