java sport club

此篇博客介绍了一个使用Java实现的现代体育俱乐部会员管理系统,包括对象导向设计,年龄验证,费用结构(按月、季度和年计费),以及CSV文件导入导出功能。系统自动处理会员信息录入、维护、增删和搜索,同时支持灵活的费用计算与展示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

java sport club

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.

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.

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

程序界面

程序界面.png

源码下载

链接:程序源码下载地址
提取码:1111

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值