Task
This assignment assesses your knowledge on inheritance and virtual
functions, operator overloading, and streams.
The Problem
You are going to implement a degree classification calculator for our
BSc and MSc degrees. (Sorry to students on MComp or other
degrees. You are welcome to add more subclasses to the program
yourself of course...)
Student cohorts and the class hierarchy
As you know, BSc and MSc degrees are awarded to different
classes, such as first class, upper second class, etc for BSc, and
Distinction, Merit, etc for MSc. The classification is made according
to a set of rules, based on the marks profile of a student. Each of
BSc and MSc have their own set of degree classification rules.
Additionally, a few years ago, the university revised and phased in a
new set of degree classification rules for BSc degrees. As a result,
two cohorts of BSc students that are governed by different rules will
be graduating at the same time this year. (And this will be the first
and only year when a substantial number of new and old students
graduate together.)
Roughly speaking, BSc students entering as first years in 2018/19
are "new" students, governed by new rules in place for the first time
this year. Students entering in 2017/18 or earlier, but only reaching
the third year now for various reasons such as spending a year in
industry, are "old" students governed by the old rules.
This naturally gives us a hierarchy of students, as represented in
this diagram. The following classes and the class hierarchy are
declared for you in the given Student.h file
Answers
Task
This assignment assesses your knowledge on inheritance and virtual
functions, operator overloading, and streams.
The Problem
You are going to implement a degree classification calculator for our
BSc and MSc degrees. (Sorry to students on MComp or other
degrees. You are welcome to add more subclasses to the program
yourself of course...)
Student cohorts and the class hierarchy
As you know, BSc and MSc degrees are awarded to different
classes, such as first class, upper second class, etc for BSc, and
Distinction, Merit, etc for MSc. The classification is made according
to a set of rules, based on the marks profile of a student. Each of
BSc and MSc have their own set of degree classification rules.
Additionally, a few years ago, the university revised and phased in a
new set of degree classification rules for BSc degrees. As a result,
two cohorts of BSc students that are governed by different rules will
be graduating at the same time this year. (And this will be the first
and only year when a substantial number of new and old students
graduate together.)
Roughly speaking, BSc students entering as first years in 2018/19
are "new" students, governed by new rules in place for the first time
this year. Students entering in 2017/18 or earlier, but only reaching
the third year now for various reasons such as spending a year in
industry, are "old" students governed by the old rules.
This naturally gives us a hierarchy of students, as represented in
this diagram. The following classes and the class hierarchy are
declared for you in the given Student.h file