Apps212: Grades - BNU-CO452/bluej-apps21-Miridicent GitHub Wiki

App21-02: Grades

Description

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.

Basic Requirements

The application must have the following features

  1. It can create a Student object.
  2. It can create a Course object.
  3. A student can be enrolled on a course.
  4. It can create a Module with a title, a module code and credit.
  5. Module details can be printed.
  6. A course must consist of four modules.
  7. Four modules can be added to a course.
  8. The student's course and four modules can be printed

Main Requirements

  1. A percentage mark (0-100) can be awarded to a student for each module
  2. The course and its four modules and the marks can be printed.
  3. A grade can be calculated and printed for each mark
  4. An average grade can be calculated for a student having completed 4 modules in a course.
  5. 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

Advanced Requirements

  1. Add a list of students to the course class.
  2. Print out an enrolment list for a course.

Design

To be replaced by the student

Class Diagram

Testing Stage 1

The following tests should be carried out first without any coding:-

  1. Create and print a student with your name
  2. Create a course with your course details
  3. Enrol the student on the course
  4. Print the student's course
  5. Create a module (co452 Programming Concepts)
  6. Add the module to the course.
  7. Create a ModuleMark
  8. Set a value for the ModuleMark
  9. Add a ModuleMark to a student
  10. Print out the Transcript.

Grades test stage 1

Test stage 1

Testing Stage 2

You will see that the Student class cannot print out grades, module details or marks.

Code needs to be added to:-

  1. Add four modules to a course.
  2. Print out the course with four modules
  3. Award test marks for all four modules in the Student class
  4. Print out the Student Transcript with four module marks
  5. Convert a mark into a grade (in the course class)
  6. Print out the Student Transcript with four grades.
  7. Calculate an average mark and grade for the Student's course.
  8. Print out the average mark and grade in the Student transcript.

To be added by the student Test stage 2-1 Test stage 2-2 Link to the Terminal Window Tests Stage 1
Link to the Terminal Window Tests Stage 2

Data Validation Testing

  1. Test that a mark of less than 40 results in a Fail grade and no overall course grade.
  2. Test what happens if a mark is set over 100 and less than zero.
  3. Test what happens if a 5th module is added.

Test stage Ex Test stage Ex

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.

Real Marking System

BNU-CMS

Evaluation

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

  1. the process of implementing students is tedious
  2. Isn't automated
  3. can't switch modules or courses once enrolled
  4. can't switch modules if a mistake was made
  5. If a module is failed, the overall grade is still shown
⚠️ **GitHub.com Fallback** ⚠️