Apps212: Grades - BNU-CO452/bluej-apps21-Miridicent GitHub Wiki
This application is modelled on the real situation of completing a BSc (Hons) Degree at Bucks New University, if you are unfamiliar with that please read The BSc Awards wiki page.
The applications is used to calculate the final mark and grade for a student who has completed four modules as part of their course. To complete a module the students must be awarded a mark of 40% or more.
In this first version of the App you can assume that there will only ever be four modules in a course, and no final grade can calculated unless the student has completed four modules (passed with a mark of 40% or more).
You can use an ArrayList to store 4 modules, or you can simply have four attributes in a Course, one for each of the modules.
The application must have the following features
- It can create a Student object.
- It can create a Course object.
- A student can be enrolled on a course.
- It can create a Module with a title, a module code and credit.
- Module details can be printed.
- A course must consist of four modules.
- Four modules can be added to a course.
- The student's course and four modules can be printed
- A percentage mark (0-100) can be awarded to a student for each module
- The course and its four modules and the marks can be printed.
- A grade can be calculated and printed for each mark
- An average grade can be calculated for a student having completed 4 modules in a course.
- Print a student transcript of the course grade and the marks/grades for the four modules.
Marks are always whole numbers and they can be converted into grades using the following conversion table:-
- Mark 0 = NS (Not submitted)
- Marks 1 - 39 = F
- Marks 40 - 49 = D
- Marks 50 - 59 = C
- Marks 60 - 69 = B
- Marks 70 - 100 = A
- Add a list of students to the course class.
- Print out an enrolment list for a course.
To be replaced by the student
The following tests should be carried out first without any coding:-
- Create and print a student with your name
- Create a course with your course details
- Enrol the student on the course
- Print the student's course
- Create a module (co452 Programming Concepts)
- Add the module to the course.
- Create a ModuleMark
- Set a value for the ModuleMark
- Add a ModuleMark to a student
- Print out the Transcript.
You will see that the Student class cannot print out grades, module details or marks.
Code needs to be added to:-
- Add four modules to a course.
- Print out the course with four modules
- Award test marks for all four modules in the Student class
- Print out the Student Transcript with four module marks
- Convert a mark into a grade (in the course class)
- Print out the Student Transcript with four grades.
- Calculate an average mark and grade for the Student's course.
- Print out the average mark and grade in the Student transcript.
To be added by the student
Link to the Terminal Window Tests Stage 1
Link to the Terminal Window Tests Stage 2
- Test that a mark of less than 40 results in a Fail grade and no overall course grade.
- Test what happens if a mark is set over 100 and less than zero.
- Test what happens if a 5th module is added.
The tests can be completed using the BlueJ object-bench and some test code. The results recorded in the terminal window and saved as a text file. The text file should be stored in the repository, and a link to that file added here.
A list of 5 possible limitations of its functionality or improvements that could be made to this application to make it more useful
To be Added by the student
- the process of implementing students is tedious
- Isn't automated
- can't switch modules or courses once enrolled
- can't switch modules if a mistake was made
- If a module is failed, the overall grade is still shown