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
- Gain knowledge and understanding of OOP concepts and principles and be able to evaluate and interpret within the context.
- Demonstrate comprehensive analytical knowledge of design and implementation of object oriented programmes, taking quality and reusability into account using API’s or object repositories.
- Employ a structural approach to test OOP based systems, using a test plan, monitoring expected and actual results.
- Evaluate and collect information from a variety of authoritative sources to inform a choice of solutions to standard problems; advance the knowledge of OOP; and become familiar with a variety of research methods such as qualitative and quantitative.
|
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:
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:
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:
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...
100% Plagiarism Free & Custom Written,
tailored to your instructions