Gain knowledge and understanding of OOP concepts and principles and be able to evaluate and interpret within the context
Assignment Brief
|
Module title: |
Object Oriented Programming |
|
Learning outcomes assessed within this piece of work as agreed at the programme level meeting |
On successful completion of this module students will be able to
|
Coursework 1
Requirements
You have recently began a position at Mechachrome software ltd as a junior programmer and have joined a small development team to deliver a Student registration system for a small local college. Bright-Future is a college that currently runs three courses, Computing, Accounting and Business Studies to Home and foreign students. The fees for each course is £3000 for home students and £6000 for foreign students. Each course is 1 year in duration. The college would like the new system to register students onto a course. At times some students may wish to change courses within the college so a feature to enable this should be provided in the final solution. When registering the students, students have the option to pay the full fees upfront or at a minimal pay 1/3 of the fees. The opening main menu could look something like this:
The user interface will be menu driven prompting the user to select a choice, quantity and subsequently to pay by inserting the money. The menu could look something like:
Depending on the option selected from the main menu, sub menus should branch out offering the user different options e.g. if option 1 from the main menu is selected, a sub menu should appear offering the user the choice select a quantity.
Data capture
The application should allow staff to enter the following information on a Student upon enrolling:
- First name and Surname.
- Date of birth.
- Address including post code.
- Phone number and email.
Student ID number should be automatically generate
What the system should be able to do:
-
Enroll Students.
-
Switch students from one course to another on request.
-
Remove students from a course.
-
View a student’s profile which should show the following:
-
Course they are studying
-
First name and surname
-
Date of birth
-
Address and postcode
-
Student ID
-
Whether they are home or foreign students.
-
Fees paid to date.
-
List all the students on a course showing their first names, surname and emails.
-
On-screen reporting
Appropriate menus and submenus based on the option selected.
A management reporting feature that allows management to view the most popular and least popular courses.
Total money fees paid to date.
Sample Answer
Student Registration System – Bright-Future College
Introduction
Bright-Future College requires a Student Registration System to manage enrolments, course changes, and fee payments. The college offers three courses, Computing, Accounting, and Business Studies, with different fees for home (£3000) and foreign (£6000) students. The system must capture student details, support course transfers, and provide management reporting on student numbers and fee collection.
This solution employs Object-Oriented Programming (OOP) principles, including encapsulation, inheritance, polymorphism, and abstraction, to create a maintainable, reusable, and scalable system.
System Design
Classes and Responsibilities
The system consists of the following main classes:
Student Class
Represents an individual student, storing personal details and payment information.
Attributes:
-
first_name -
surname -
dob(Date of Birth) -
address -
postcode -
phone -
email -
student_id(auto-generated) -
course -
student_type(‘home’ or ‘foreign’) -
fees_paid
Methods:
-
enroll(course)– assign a student to a course -
switch_course(new_course)– change the student’s course -
make_payment(amount)– record a fee payment -
view_profile()– return the student’s details
Course Class
Represents a college course and tracks enrolled students.
Attributes:
-
course_name -
course_fee_home -
course_fee_foreign -
students(list of Student objects)
Methods:
-
add_student(student)– enroll a student -
remove_student(student_id)– remove a student -
list_students()– list all students with basic info -
total_fees_paid()– calculate total fees collected
College Class
Manages multiple courses and system operations.
Attributes:
-
courses(dictionary of Course objects keyed by course name)
Methods:
-
enroll_student(student_details, course_name)– create and add a new student -
switch_student(student_id, new_course_name) -
remove_student(student_id) -
view_student_profile(student_id) -
popular_courses()– return most and least popular courses -
total_collected_fees()
Continued...