Hello, if you have any need, please feel free to consult us, this is my wechat: wx91due
159.739 - PRACTICAL SOFTWARE ENGINEERING
Assignment 1
Deadline: Friday, 15 August, 11:59pm
Evaluation: 30 marks (30% of your final grade)
Late Submission: Deduct 10% per day late
Individual Work
You should complete this assignment by yourself (you must NOT share your code with others or use others’ code, including the code generated by Artificial Intelligence platforms such as ChatGPT)
Purpose:
Reinforce Java language basics, Arrays, classes and objects
1. System description (overview of problem):
You are asked to write a program in Java to simulate a Massey University Club Activity Registration System.
This system facilitates student registration for various club activities offered by the university. Each activity belongs to one or more categories, has a unique activity ID, a name, and a time slot (e.g., "Wednesday PM"). Each activity has two additional attributes: RequiresCheckIn and HasCompetition, indicating whether the activity requires check-in and whether it involves a competition. The values for these attributes are either "yes" or "no".
Each activity is offered in two modes: internal Auckland and internal Palmerston North (PN). And some activities (Coding Circle, Creative Writing Club) are also offered online (the third mode). Students only select one mode per activity during registration. That means students can not register for both on-campus and online in the same activity club.
Each student is located at either the Auckland or Palmerston North campus. Students can only select on-campus activities situated at their own campus, but may register for online activities regardless of location. A student may register for a minimum of 1 but a maximum of 4 activities.
Each student’s profile includes the following details: first name, last name, ID number, and campus.
2. Test data:
1) Activities and their details:
Activity
ID
Name
Category
Time Slot
RequiresCheckIn hasCompetition Mode
A101
Basketball
Club
Sport
Wednesday
PM
Yes
Yes
Auckland,
PN
A102
Coding
Circle
Technology
Saturday
AM
Yes
No
Auckland,
PN, Online
A103
Choir Group Art
Monday
PM
No
No
Auckland,
PN
A104
Robotics
Workshop
Technology Friday PM
No
Yes
Auckland,
PN
A105
Creative
Writing Club
Literature
Thursday
PM
Yes
No
Auckland,
PN, Online
A106
Hiking
Group
Sport,
Lifestyle
Sunday
AM
Yes
No
Auckland,
PN
2) Students and their details
ID
First Name
Last Name
Campus
1105236
Amy
Sheffield
PN
1235894
Victoria
Jensen
PN
7225669
James
Lee
PN
1328991
Colin
Delmont
PN
1562347
Thomas
Becker
Auckland
5664789
Steven
Hobbs
Auckland
3658947
Andrew
Jackson
Auckland
6332698
Jonathon
Wood
Auckland
2455897
Emma
Smith
Auckland2
159.739 - PRACTICAL SOFTWARE ENGINEERING
3. Programming tasks to complete by your java code:
1) Add to your system the above test data regarding activities and students.
2) Add yourself to the system as a student. You MUST record your real name and your real Student ID number. You can choose either Auckland or PN as your campus.
3) Randomly assign students to every activity based on the rules specified in the system description above (using Java library java.util.Random or Math.random()).
4) When your program runs, it should display the following output in the same order as below, from Task
1 to Task 8:
Task 1: Full name of the system.
Task 2: All activities’ details (including activity ID, name, category, time slot, and mode).
Task 3: All activities that belong to the “Sport” category at Massey.
Task 4: All activities that require a check-in.
Task 5: All activities that require a check-in but no competition.
Task 6: Details of all students and their registered activity clubs, including student ID, student name, student campus, activity ID, activity name and activity mode.
Task 7: The activities that you select.
Task 8: Names of students based in Auckland who have selected A106 (Hiking Group).
4. Design and Implementation Guideline
Note: You will receive credit for correctness, completeness, no code duplication, and clear on-screen output display. Also, the following OOP and general software design concepts will be checked while marking your program:
1) Class design and implementation
a. Data fields
b. Methods
c. Constructors
2) Encapsulation and implementation – proper use of modifiers
a. Private
b. Protected
c. Public
3) Information storage and implementation
a. Use Array (or Java collection if you already know how) to store information
b. Must make use of getters and/or setters wherever appropriate
5. Other Specifications
You should follow the following specifications when completing this assignment:
1) Place appropriate comments in your program – e.g.:
/** explain what the program file is doing . . . */
// explain what a part/method of the program is doing…
2) DO NOT add any package name (for example ‘package Assignment1;’) to the beginning of your .java file (for marking purpose)
3) DO NOT use any function to clean the screen at any stage of a program
6. Submission Requirement:
Zip all your .java files (source codes) together and submit as a single file to Stream3
7. Example output: