CS计算机代考程序代写 scheme Java gui Excel Untitled

Untitled

com6516: Object Oriented Programming and Software Design autumn 2021-22

Assignment (60 points)

1 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 accom-

modate 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 individ-

ual 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 main-

tained 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 how-

ever, 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 sequen-

tially),

• 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.

1

com6516: Object Oriented Programming and Software Design autumn 2021-22

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/Comma-separated_values

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.

Constraints on programming. Program code should compile and run on the console command

line under Java 16. (However you are free to use an IDE to develop your code.) If needed, you

can import the sheffield package as well as any package(s) listed at

https://docs.oracle.com/en/java/javase/16/docs/api/allpackages-index.html

but none of other packages.

2 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 16:

→ 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.

2

com6516: Object Oriented Programming and Software Design autumn 2021-22

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 optional and 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

also counted within the 5 page limit. The report can include not only text, but figures, dia-

grams, and/or tables where appropriate. The report must be in the pdf format, and named as

‘yourAccount.pdf’ (e.g., suppose your account is ‘acp99yg’ then the report should be named as

‘acp99yg.pdf’).

Handin procedure. Suppose your account is ‘acp99yg’, then the ‘code’ folder and the report

should be arranged as

and zipped into a single file ‘acp99yg.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/ssid/unfair-means/index

3 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; Sen-

sible structure for the overall object oriented design and the system, e.g., encapsu-

lation, class hierarchies, abstraction;

10-13 The marking criteria above is roughly satisfied;

3

com6516: Object Oriented Programming and Software Design autumn 2021-22

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;

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, includ-

ing 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 (minus ten) 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 (minus ten) 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;

4