共计 8766 个字符,预计需要花费 22 分钟才能阅读完成。
com6516 Assignment 2020-21
Assignment (60 points)
The Task
You have a client who is a manager of a swimming pool, now aiming to extend their business to
a larger scale sport club. As a first step to that end, they would like to improve their membership
management scheme by replacing a traditional spreadsheet with a bit more modern system using
a GUI (graphical user interface).
The client is requesting you to propose a new scheme. Your task is to demonstrate your system
design which should be implemented using the object oriented programming language Java.
Loose description for the membership. A swimming club has recently expanded to accommodate
a gym and some other facilities, also started offering yoga and aerobics lessons for its
customers. Customers consist of individual members, family members, and visitors. An individual
member should be at least 12 years old on the 1st of September of the current year. A family
member should be at least 18 years old and can include themselves, their spouse and children.
Both individual and family members are required to pay a membership fee. Any person under
12 years old can use facilities without a fee, if accompanied by a member. A visitor of at least
12 years old can also use facilities without being a member, but by paying a fee for each visit.
Loose description for the fee system. The membership management scheme should be maintained
in a way that the fee income up to the current date from the beginning of the year (1st
January of this year) can be calculated easily. An individual member pays a fixed monthly fee
of 36 pounds and has unlimited access to its facilities, including yoga and aerobics lessons free
of charge. A family membership requires 60 pounds per month, with the same benefit to all
family members as individual members. A visitor pays a fee each time they visit the club however,
if someone visits the club frequently, a visitor fee will accumulate substantially more than
membership fees.
Apart from the above rough guidline, you may decide the fee system sensibly. In addition to
monthly fees, quarterly and yearly fees can be introduced. It may also be possible to apply
different fee levels for use of swimming pool, gym, and lessons for visitors. Further, it is your
design how to present the fee income using the system.
Core requirement. Each membership information may consist of first and last names, date of
birth, gender, postal address, contact telephone number, and some other information information
that may be useful, such as health condition, allergy information, or anything else. An age on
the 1st September of the current year, dates for starting and ending the membership, as well
as the type of membership and the amount of fee paid, may also be required. The number of
visitors per day can be logged into the system separately without their personal information.
A new membership management system using a GUI may require manual entry for many fields,
however
• a unique membership number is created automatically and randomly (i.e., not sequentially),
• the age on the 1st September of the current year is calculated from the date of birth, and
• the end date for the membership is automatically derived from the start date and the
membership type.
Object Oriented Programming and Software Design 1
2
com6516 Assignment 2020-21
In addition, the membership management system should be able to (1) load/save the customers
data from/to a csv (comma-separated values) format file, (2) add/delete a customer to/from the
system, (3) add/revise entries for existing customers, and (4) search any customer record in the
system.
You may review the csv format in the following link:
https://en.wikipedia.org/wiki…
A sample data file‘customerlist.csv’is provided (you may be able to open this file using a
text editor, or Microsoft Excel), that was salvaged from the previously used spreadsheet based
membership data. However, there are a few issues. For example, many fields in the the sample
data file are incomplete (e.g., blank). Also there exist careless mistakes such as multiple entries
of a same person, that should have been avoided. In the new GUI based system, you may be
required to handle these issues.
System extensions / sensible changes to the requirements. This part is not a core requirement
for this assignment, however read on the following paragraph…
The client is most willing to hear your idea for useful and interesting extension(s) that can
be incorporated to the system, as well as sensible change(s) to the core requirement described
above, such as the membership structure, the fee system, or the approach to GUI operation. If
you are proposing such ideas, you should describe them clearly in the report and demonstrate
them by implementing your design using Java.
Submission
Your submission should consists of a set of Java source code (*.java files) for your demo
system and a report that outlines your proposal to the client.
Java code. All source code should be placed within a‘code’folder, and the name of the main
class should be‘ClubMembership.java’. The‘code’folder should include (1) Java source code
(*.java), (2) a sample input file‘customerlist.csv’, and (3) optionally the entire sheffield
package if your system requires it, but nothing else. The‘code’folder should not include,
e.g., bytecode (*.class), output files, or documentation (e.g., html file), apart from those in the
sheffield package.
The marker will use the following two command lines under Java 1.14:
! javac *.java
! java ClubMembership
to compile and test your demo system within the‘code’folder. If you develop your demo system
using some IDE, you should make sure it works from the command line without requiring the
marker to change any part of your program code.
Report. Your report is a proposal to the client. The client is not an engineer, however we
conveniently assume that the client has a child who studies computer science in some university,
helping their parents’business. Hence, although you should describe your work using plain
language, use of UML diagrams is acceptable, where appropriate.
The report must use fonts of 11pt or larger size, and it should not be more than 5 (five) pages
long using A4 size papers. A cover page is not required, but if you create a cover page, it is
Object Oriented Programming and Software Design 2
3
com6516 Assignment 2020-21
also counted within the 5 page limit. The report can include not only text, but figures, diagrams,
and/or tables where appropriate. The report must be in the pdf format, and named as
‘yourAccount.pdf’(e.g., suppose your account is‘acp20yg’then the report should be named as
‘acp20yg.pdf’).
Handin procedure. Suppose your account is‘acp20yg’, then the‘code’folder and the report
should be arranged as
and zipped into a single file‘acp20yg.zip’, which is then submitted to Blackboard. Do not use
other compression format such as rar, tar, etc. When marking, your handin should be unzipped
by‘unzip yourAccount.zip’in a command line.
Before the deadline, you are able to submit your work more than once through Blackboard. If
you have made multiple submissions, the last version submitted will be marked.
Late handin rule For each day late from the handin deadline, 5% will be deducted from your
total mark. If the assignment is handed in more than one week late, it will not be accepted
(meaning that it results in a mark of 0).
Unfair means Any work that you handin must be your own as this is an individual assignment.
All code submitted may be examined using specialised software to identify evidence of code
written by another student or downloaded from online resources.
You may review the University guidance on unfair means:
https://www.sheffield.ac.uk/s…
Marking Scheme
The total points allocated for the assignment is 60 points. Your work will be assessed based on
the following criteria:
Overall system (20 points)
16-20 Stylishness and originality that stand out from others, in addition to fully satisfying
the marking criteria below;
14-15 Construction of a functional system that fully achieves the task requirements; Sensible
structure for the overall object oriented design and the system, e.g., encapsulation,
class hierarchies, abstraction;
10-13 The marking criteria above is roughly satisfied;
0-9 Overall development of the system is not satisfactory;
GUI design, use of collections framework, etc. (20 points)
16-20 Stylishness and originality that stand out from others, in addition to fully satisfying
the marking criteria below;
Object Oriented Programming and Software Design 3
com6516 Assignment 2020-21
14-15 Easy to use, nice looking, clean and fully functional GUI; Sensible choices and the
classes structure from the collections framework; Consideration for event handling,
where appropriate;
10-13 The marking criteria above is roughly satisfied;
0-9 Unsatisfactory development for GUI, or use of collections framework, etc.
System design, documentation and programming style (20 points)
16-20 The marking criteria below is achieved at an exceptional level;
14-15 Clear description of the design for the demonstration system implemented, including
any extensions and/or some changes that were incorporated; Sensibly structured,
clean, unambiguous report (possibly using UML use cases and/or class diagrams);
Good programming style — things to be mindful include adequate commenting,
clear indentation, layout, sensible naming for fields, methods, classes, etc.;
10-13 The marking criteria above is roughly satisfied;
0-9 Unsatisfactory system design, documentation and programming style;
Point deductions
up to –10 points No deduction if the submitted code is unzipped, compiled and run
on a command line without any modification; Deduction of –1 point if the
submission contains any file, apart from source code (*.java), sample input
(customerlist.csv), the sheffield package, and the report. Further deduction of
up to –10 points, depending on the effort made to modify, compile and run the code
within a limited amount of marking time;
up to –10 points No deduction if the submitted report follows the handin rule, e.g., the
pdf format is used and it does not go beyond the page limit of 5 pages; Deduction
of –1 point if the pdf format is not used; Further deduction of –1 point per page
beyond the page limit, e.g., –2 points if a report is 7 pages long;
Object Oriented Programming and Software Design 4