Microsoft Word - Coursework_20192020_Referral_Deferral.docx University of Westminster School of Computer Science & Engineering 5COSC001W XXXXXXXXXXObject Oriented Programming – Referred/Deferred...

1 answer below »
It is Object-Oriented Programming coursework.


Microsoft Word - Coursework_20192020_Referral_Deferral.docx University of Westminster School of Computer Science & Engineering 5COSC001W Object Oriented Programming – Referred/Deferred Coursework 1 (2018/19) Module leader Barbara Villarini Unit REFERRED/DEFERRED COURSEWORK Weighting: 50% Qualifying mark 30% Description This coursework requires students to apply Object Oriented Programming and Design principles to a given set of requirements from case study. Learning Outcomes Covered in this Assignment: This assignment contributes towards the following Learning Outcomes (LOs): - LO1 Identify and justify good practices in the development of object oriented software; 
 - LO2 Apply acquired knowledge of concepts, characteristics, tools and environments to adapt to new computational environments and programming languages which are based on object oriented principles; 
 - LO3 Design, implement efficiently applications based on a OOP language, given a set of functional requirements. 
 - LO4 Implement GUI interfaces using an OOP language; 
 Handed Out: 1st June 2020 Due Date 13th of July 2020 Submissions by 13:00 Expected deliverables Submit on Blackboard a zip file containing: A folder with all the UML documents and test case plan attached A folder with the developed project (NetBeans Solution with your Java code) A recorded video of the demonstration of the implemented system Method of Submission: Electronic submission on BB via a provided link close to the submission time. Type of Feedback and Due Date: Written feedback within 15 working days and generic feedback during the demonstration. BCS CRITERIA MEETING IN THIS ASSIGNMENT 2.1.1 Knowledge and understanding of facts, concepts, principles & theories 2.1.2 Use of such knowledge in modelling and design 2.1.3 Problem solving strategies 2.2.1 Specify, design or construct computer-based systems 2.2.4 Deploy tools effectively 2.3.2 Development of general transferable skills 3.1.1 Deploy systems to meet business goals 4.1.1 Knowledge and understanding of scientific and engineering principles 4.1.3 Knowledge and understanding of computational modelling Assessment regulations Refer to section 4 of the “How you study” guide for undergraduate students for a clarification of how you are assessed, penalties and late submissions, what constitutes plagiarism etc. Penalty for Late Submission If you submit your coursework late but within 24 hours or one working day of the specified deadline, 10 marks will be deducted from the final mark, as a penalty for late submission, except for work which obtains a mark in the range 40 – 49%, in which case the mark will be capped at the pass mark (40%). If you submit your coursework more than 24 hours or more than one working day after the specified deadline you will be given a mark of zero for the work in question unless a claim of Mitigating Circumstances has been submitted and accepted as valid. It is recognised that on occasion, illness or a personal crisis can mean that you fail to submit a piece of work on time. In such cases you must inform the Campus Office in writing on a mitigating circumstances form, giving the reason for your late or non-submission. You must provide relevant documentary evidence with the form. This information will be reported to the relevant Assessment Board that will decide whether the mark of zero shall stand. For more detailed information regarding University Assessment Regulations, please refer to the following website:http://www.westminster.ac.uk/study/current-students/resources/academic-regulations Coursework Description Objective: The aim of this assessment is to assess the skills and learning that you have acquired about object-oriented programming during the module. You are asked to implement a program in which objects interact in order to fulfil a set of functional requirements. Analyse the statement: An important skill that you expect to develop in this module is the ability to analyse a problem statement in order to identify the requirements to develop a solution. In this assignment, the first task you should perform is a careful analysis of the problem statement in order to make sure you have all the information to elaborate a solution. If you have any question please write your queries on the Padlet on BB. Design a solution: The design of your system should be consistent with the Object Oriented principles and easy to understand by an independent programmer. You are required to design your program using UML diagrams. In particular you have to draw: • a class diagram (5 marks) • two or more use cases for the system (5 marks). Problem description and requirement statement You are required to develop a program that implement a basic online gym management system. You should implement a console system from where the manager can add new members, delete if needed, print the members information, etc. (as described in detailed below). You should implement a Graphical User Interface (GUI) from where a manager can see the list of members and search them. In the system you will be able to record details of 100 members maximum. In this assignment, you will be required to implement the following functionalities: 1. According to the Inheritance principle you have to design and implement a super class DefaultMember (5 marks) and the subclasses StudentMember and Over60Member. The classes should include appropriate methods in order to comply with the encapsulation and inheritance principles and hold information about the MembershipNumber, the Name and the StartMembershipDate. Furthermore: • The StudentMember class should include specific information about the SchoolName and the relative get/set methods (4 marks). • The Over60Member class should include specific information about the Age and the relative get/set methods (4 marks). • You should implement a class Date to represent the starting membership date (which is the instance variable in the DefaultMember class). Do not use any predefined library for date and time and you can refer as example to the class that has been provided during the tutorials (3 marks). 2. Design and implement a class called MyGymManager, which implements the interface GymManager (2 marks). MyGymManager maintains the list of the members (2 marks) and provides all the methods for the gym manager. The class should display in the console a menu containing the following management actions from which the manager can select one. • Add a new member in the gym and display how many members could still be registered in the system (remember that the system can store max 100 members). Display a message in case there are no spaces available. The manager can select if adding a default member or a student member or an over60 member and enter the corresponding information. (5 marks). • Delete a member, given the membership number, and display the number of free spaces left in the system. Display the type of the member that has been deleted (if it is a default, student or over60 member) (5 marks). • Print the list of members in the system. For each member, print the membership number, the type of member (if is a default, student or over60 member), the member starting date and the member name. (4 marks). • Sort the item in ascending order according to the name (4 marks). • Write/Save in a file the list of members with all the relative information (5 marks). • Open a Graphical User Interface (GUI) from the menu console. You should implement the GUI according the following specification: • The manager can visualise the list of members through a table with relative information.(8 marks). • The user can search the members according at least one parameter (e.g. membership number, or the name, etc.) (4 marks). Note: You can choose how the GUI should look like and how to meet at the best these specifications. 3. Testing and system validation: • Write a test plan designed to ensure that the coded solution works as expected. The test plan will include specific instructions about the data and conditions the program will be tested with (5marks). • Implement an automated testing (you can use JUnit or any other tool or scripts for unit testing) that runs scenarios of each of the use cases you implemented in the console menu (10 marks). • The following will be evaluated: o The robustness of the code through the use of error handling and input validation (5marks). o The quality of the code and the adherence to coding standards and conventions (5 marks). Video Recording and Demonstration - You will be asked to demonstrate all the functionalities implemented in the system and record it in a video that you should upload in YouTube and paste the link in the submission notes (10 marks). Your ability in articulating and explaining the code will be evaluated. Please note that if you fail to provide a video recording of your system the maximum mark shall range from 1- 30% only. Please note that a demonstration through a collaborative tool could be arranged to assess further understating of the code.
Answered Same DayJun 13, 2021

Answer To: Microsoft Word - Coursework_20192020_Referral_Deferral.docx University of Westminster School of...

Aditya answered on Jun 30 2021
151 Votes
project/build.xml

Builds, tests, and runs the project project.


project/build/classes/.netbeans_automatic_build
project/build/classes/.netbeans_update_resources
project/build/classes/project/Date.class
package project;
public synchronized class Date {
private int year;
private int month;
private int day;
public void Date(int, int, int);
public void setYear(int);
public void setMonth(int);
public void setDay(int);
public int getYear();
public int getMonth();
public int getDay();
public String getDate();
public String toString();
}
project/build/classes/project/DefaultMember$1.class
package project;
final synchronized class DefaultMember$1 implements java.util.Comparator {
void DefaultMember$1();
public int compare(DefaultMember, DefaultMember);
}
project/build/classes/project/DefaultMember.class
package project;
public synchronized class DefaultMember {
private int membershipNumber;
private String name;
private Date startMembershipDate;
public static java.util.Comparator NameComparator;
public void DefaultMember();
public void DefaultMember(int, String, Date);
public int getMembershipNumber();
public void setMembershipNumber(int);
public String getName();
public void setName(String);
public Date getStartMembershipDate();
public void setStartMembershipDate(Date);
public String toString();
static void ();
}
project/build/classes/project/GymManager.class
package project;
public abstract interface GymManager {
public abstract void addMember();
public abstract void displayAllMember();
public abstract void deleteMember(int);
public abstract void sortMemberList();
public abstract void writeDataToFile();
public abstract int searchById(int);
public abstract int searchByName(String);
}
project/build/classes/project/Main.class
package project;
public synchronized class Main {
public void Main();
public static void main(String[]);
}
project/build/classes/project/MainGUIScreen$1.class
package project;
synchronized class MainGUIScreen$1 implements java.awt.event.ActionListener {
void MainGUIScreen$1(MainGUIScreen);
public void actionPerforme
d(java.awt.event.ActionEvent);
}
project/build/classes/project/MainGUIScreen$2.class
package project;
synchronized class MainGUIScreen$2 implements java.awt.event.ActionListener {
void MainGUIScreen$2(MainGUIScreen);
public void actionPerformed(java.awt.event.ActionEvent);
}
project/build/classes/project/MainGUIScreen$3.class
package project;
synchronized class MainGUIScreen$3 implements java.awt.event.ActionListener {
void MainGUIScreen$3(MainGUIScreen);
public void actionPerformed(java.awt.event.ActionEvent);
}
project/build/classes/project/MainGUIScreen$4.class
package project;
final synchronized class MainGUIScreen$4 implements Runnable {
void MainGUIScreen$4();
public void run();
}
project/build/classes/project/MainGUIScreen.class
package project;
public synchronized class MainGUIScreen extends javax.swing.JFrame {
private javax.swing.JButton jButton1;
private javax.swing.JButton jButton2;
private javax.swing.JButton jButton3;
private javax.swing.JLabel jLabel1;
public void MainGUIScreen();
private void initComponents();
private void jButton2ActionPerformed(java.awt.event.ActionEvent);
private void jButton3ActionPerformed(java.awt.event.ActionEvent);
private void jButton1ActionPerformed(java.awt.event.ActionEvent);
public static void main(String[]);
}
project/build/classes/project/MainGUIScreen.form




























































































project/build/classes/project/MyGymManager.class
package project;
public synchronized class MyGymManager implements GymManager {
private static MyGymManager instance;
public java.util.ArrayList memberList;
java.util.Scanner sc;
public static MyGymManager getInstance();
private void MyGymManager();
public void addMember();
public void displayAllMember();
public void deleteMember(int);
public void sortMemberList();
public void writeDataToFile();
public int searchById(int);
public int searchByName(String);
static void ();
}
project/build/classes/project/Over60Member.class
package project;
public synchronized class Over60Member extends DefaultMember {
int age;
public void Over60Member();
public void Over60Member(int, int, String, Date);
public int getAge();
public void setAge(int);
public String toString();
}
project/build/classes/project/SearchMember$1.class
package project;
synchronized class SearchMember$1 implements java.awt.event.ActionListener {
void SearchMember$1(SearchMember);
public void actionPerformed(java.awt.event.ActionEvent);
}
project/build/classes/project/SearchMember$2.class
package project;
synchronized class SearchMember$2 implements java.awt.event.ActionListener {
void SearchMember$2(SearchMember);
public void actionPerformed(java.awt.event.ActionEvent);
}
project/build/classes/project/SearchMember$3.class
package project;
final synchronized class SearchMember$3 implements Runnable {
void SearchMember$3();
public void run();
}
project/build/classes/project/SearchMember.class
package project;
public synchronized class SearchMember extends javax.swing.JFrame {
String name;
String memberShipType;
String startdate;
int memberShipId;
MyGymManager mgm;
private javax.swing.ButtonGroup buttonGroup1;
private javax.swing.JButton jButton1;
private javax.swing.JButton jButton2;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
private javax.swing.JLabel jLabel5;
private javax.swing.JLabel jLabel6;
private javax.swing.JLabel jLabel7;
private javax.swing.JLabel jLabel8;
private javax.swing.JLabel jLabel9;
private javax.swing.JRadioButton jRadioButton1;
private javax.swing.JRadioButton jRadioButton2;
private javax.swing.JTextField jTextField1;
public void SearchMember();
private void initComponents();
private void jButton2ActionPerformed(java.awt.event.ActionEvent);
private void jButton1ActionPerformed(java.awt.event.ActionEvent);
public static void main(String[]);
}
project/build/classes/project/SearchMember.form








































































































































































































project/build/classes/project/StudentMember.class
package project;
public synchronized class StudentMember extends DefaultMember {
private String schoolName;
public void StudentMember();
public void StudentMember(String, int, String, Date);
public String getSchoolName();
public void setSchoolName(String);
public String toString();
}
project/build/classes/project/ViewAllMember$1.class
package project;
synchronized class ViewAllMember$1 implements java.awt.event.ActionListener {
void ViewAllMember$1(ViewAllMember, javax.swing.JFrame);
public void actionPerformed(java.awt.event.ActionEvent);
}
project/build/classes/project/ViewAllMember.class
package project;
public synchronized class ViewAllMember extends javax.swing.JFrame {
public void ViewAllMember();
}
project/data.txt
MembershipNumber = 23, Name = aditya, Start Membership Date = 05/06/2020
MembershipNumber = 2, Name = ad, Start Membership Date = 05/06/2020
project/manifest.mf
Manifest-Version: 1.0
X-COMMENT: Main-Class will be added automatically by build
project/nbproject/build-impl.xml















































































































































































































Must set src.dir
Must set test.src.dir
Must set build.dir
Must set dist.dir
Must set build.classes.dir
Must set dist.javadoc.dir
Must set build.test.classes.dir
Must set build.test.results.dir
Must set build.classes.excludes
Must set dist.jar




































































































Must set javac.includes
































































































































No tests executed.























































































































































































































































Must set JVM to use for profiling in profiler.info.jvm
Must set profiler agent JVM arguments in profiler.info.jvmargs.agent
















...
SOLUTION.PDF

Answer To This Question Is Available To Download

Related Questions & Answers

More Questions »

Submit New Assignment

Copy and Paste Your Assignment Here