辅导案例-CSIT121/821
CSIT121/821 Object Oriented Design and Programming - 1/8 -
SCIT
School of Computing and Information Technology

Spring 2020
CSIT121/821 ⎯ Programming Fundamentals

Assignment 1 (10 marks)
Due Time and Date:

Due by Sunday 30th August 2020 10 pm

General Requirements:

• You should create your programs with good programming style and form using proper blank
spaces, indentation and braces to make your code easy to read and understand;
• You should create identifiers with sensible names;
• You should make comments to describe your code segments where they are necessary for
readers to understand what your code intends to achieve.
• Logical structures and statements are properly used for specific purposes.
• Read the assignment specification carefully, and make sure that you follow whatever
directed in this assignment. In every assignment that you will submit in this subject, you
must put the following information in the header of your program:
/*------------------------------------------------------
My name:
My student number:
My course code: CSIT121
My email address:
Assignment number: 1
-------------------------------------------------------*/

Objectives

This assignment requires you to write a program in Java that help a student to enrol into the
Bachelor of Computer Science course, including the core subjects enrolment, the selecting of a
major and the elective subjects.

Background

The Bachelor of Compute Science course contains three parts, i.e., the core subjects, the majors and
the elective subjects. In order to complete the course, students shall complete at least 144 credit
points.

1. All students shall complete 15 core subjects, i.e., 96 cp in total.

CSIT121/821 Object Oriented Design and Programming - 2/8 -

2. All students shall complete a major with four or five subjects, i.e., 24/30 cp in total. The course
contains five majors and each student can only select one major. The five majors are Big Data,
Cyber Security, Digital Systems Security, Game and Mobile Development, and Software
Engineering. The core subjects of each major are displayed in the following snapshots.





CSIT121/821 Object Oriented Design and Programming - 3/8 -



(It is assumed that all five subjects are compulsory for the Game and Mobile Development Major)



3. All students shall enrol 4~5 elective subjects to make up 144 credit points. (Students are allowed
to enrol more than 144 credit points). The elective subjects are the collection of subjects from all
five majors.

You are required to design, implement and test a course enrolment system to enrol one student into
the Bachelor of Computer Science course by using Java. The system shall contain five classes, i.e.,
the Student class, the Subject class, the Major class, the Course class, and the Enrolment class (the
primary class). The basic requirements of each class are as follows:

1. Student class
The purpose of Student class is to maintain the personal information of a student, i.e., the student
name, the student number, the gender, and the date of birth.


CSIT121/821 Object Oriented Design and Programming - 4/8 -
2. Subject class
The purpose of Subject class is to maintain a subject’s information, i.e., the subject name, the
subject code, the credit point of the subject.

3. Major class
The purpose of Major class is to maintain the information of a major, i.e., the major name, and all
major subjects.

4. Course class
The purpose of Course class is to maintain the information of a course (Bachelor of Computer
Science), i.e., the course name, the core subjects of the course, the majors of the course, the elective
subjects of the course, and the minimal credit points requirement of the course.

5. Enrolment class (primary class)
The purpose of Enrolment class is to help a student to enrol into the Bachelor of Computer Science
course with the following steps in the main() method.
i) to display the entire course structure to the student;
ii) to ask the student to input the personal information (by using the Scanner);
iii) to automatically enrol the student to all core subjects;
iv) to ask the student to select a major and automatically enrol the student to all subjects of the
major;
v) to ask the student to select sufficient elective subjects for reaching the minimal credit points
requirement of the course, i.e., 144 credit points;
vi) once the student enrols sufficient subjects to make up at least 144 credit points, the enrolment is
completed.
vii) to display the student’s final enrolment record.

Note: You can use the hardcode to create the course structure for the Bachelor of Computer Science.
You can also assume the user’s inputs are always correct. See an example to create the course
structure with the hardcode in the main() method.




CSIT121/821 Object Oriented Design and Programming - 5/8 -



See the snapshots of an example for the program testing. Your program must have the exact same
outputs for the same inputs. The user’s inputs are highlighted by blue colour, my explanations (not
the inputs or outputs) are highlighted by green colour. The watermark is used to prevent the
snapshots are used in your solution. You must capture the snapshots of your own program’s outputs.

CSIT121/821 Object Oriented Design and Programming - 6/8 -



Welcome to enrol the Bachelor of Computer Science course.
The course structure is as follows:
-----------------
Course: Bachelor of Computer Science

Core Subjects:
CSIT111 (Programming Fundamentals, 6pt)
CSIT113 (Problem Solving, 6pt)
CSIT114 (System Analysis, 6pt)
CSIT115 (Data Management and Security, 6pt)
CSIT121 (Object Oriented Design and Programming, 6pt)
CSIT127 (Networks and Communications, 6pt)
CSIT128 (Introduction to Web Technology, 6pt)
CSCI235 (Database Systems, 6pt)
CSCI251 (Advanced Programming, 6pt)
CSIT214 (IT Project Management, 6pt)
MATH221 (Mathematics for Computer Science, 6pt)
CSCI203 (Algorithms and Data Structures, 6pt)
CSIT226 (Human Computer Interaction, 6pt)
CSIT314 (Software Development Methodologies, 6pt)
CSIT321 (Project, 12pt)

Big Data Major
CSCI317 (Database Performance Tuning, 6pt)
INFO411 (Data Mining and Knowledge Discovery, 6pt)
CSCI316 (Big Data Mining Techniques and Implementation, 6pt)
ISIT312 (Big Data Management, 6pt)

Cyber Security Major
CSCI301 (Contemporary Topics in Security, 6pt)
CSCI262 (System Security, 6pt)
CSCI369 (Ethical Hacking, 6pt)
CSIT302 (Cybersecurity, 6pt)

Digital System Security Major
CSCI361 (Cryptography and Secure Applications, 6pt)
CSCI262 (System Security, 6pt)
CSCI368 (Network Security, 6pt)
CSCI376 (Multicore and GPU Programming, 6pt)

Game and Mobile Development Major
CSCI236 (3D Modelling and Animation, 6pt)
CSCI336 (Interactive Computer Graphics, 6pt)
CSCI366 (Mobile Multimedia, 6pt)
CSCI356 (Game Engine Essentials, 6pt)
CSCI376 (Multicore and GPU Programming, 6pt)

Software Engineering Major
CSCI334 (Software Design, 6pt)
ISIT219 (Knowledge and Information Engineering, 6pt)
CSCI318 (Software Engineering Practices & Principles, 6pt)
ISIT315 (Semantic Web, 6pt)

Elective Subjects:
CSCI317 (Database Performance Tuning, 6pt)
INFO411 (Data Mining and Knowledge Discovery, 6pt)
CSCI316 (Big Data Mining Techniques and Implementation, 6pt)
ISIT312 (Big Data Management, 6pt)
CSCI301 (Contemporary Topics in Security, 6pt)
CSCI262 (System Security, 6pt)
CSCI369 (Ethical Hacking, 6pt)
CSIT302 (Cybersecurity, 6pt)
CSCI361 (Cryptography and Secure Applications, 6pt)
CSCI368 (Network Security, 6pt)
CSCI376 (Multicore and GPU Programming, 6pt)
CSCI236 (3D Modelling and Animation, 6pt)
CSCI336 (Interactive Computer Graphics, 6pt)
CSCI366 (Mobile Multimedia, 6pt)
CSCI356 (Game Engine Essentials, 6pt)
CSCI334 (Software Design, 6pt)
ISIT219 (Knowledge and Information Engineering, 6pt)
CSCI318 (Software Engineering Practices & Principles, 6pt)
ISIT315 (Semantic Web, 6pt)
-----------------

Your following personal information are required to complete the enrolment.
Please input your full name: Fenghui Ren
Please input your student number: 1000000
Please input your gender: male
Please input your date of birth (dd/mm/yyyy): 01/01/1981

CSIT121/821 Object Oriented Design and Programming - 7/8 -



Thanks for your information.
In order to complete the enrolment, please select a major from the list.
1: Big Data
2: Cyber Security
3: Digital System Security
4: Game and Mobile Development
5: Software Engineering

Please input the index number before the major:1

You enrolled into:
Big Data Major
CSCI317 (Database Performance Tuning, 6pt)
INFO411 (Data Mining and Knowledge Discovery, 6pt)
CSCI316 (Big Data Mining Techniques and Implementation, 6pt)
ISIT312 (Big Data Management, 6pt)

In order to complete the enrolment, please select selective subjects from the list.

Elective Subjects:
CSCI317 (Database Performance Tuning, 6pt)
INFO411 (Data Mining and Knowledge Discovery, 6pt)
CSCI316 (Big Data Mining Techniques and Implementation, 6pt)
ISIT312 (Big Data Management, 6pt)
CSCI301 (Contemporary Topics in Security, 6pt)
CSCI262 (System Security, 6pt)
CSCI369 (Ethical Hacking, 6pt)
CSIT302 (Cybersecurity, 6pt)
CSCI361 (Cryptography and Secure Applications, 6pt)
CSCI368 (Network Security, 6pt)
CSCI376 (Multicore and GPU Programming, 6pt)
CSCI236 (3D Modelling and Animation, 6pt)
CSCI336 (Interactive Computer Graphics, 6pt)
CSCI366 (Mobile Multimedia, 6pt)
CSCI356 (Game Engine Essentials, 6pt)
CSCI334 (Software Design, 6pt)
ISIT219 (Knowledge and Information Engineering, 6pt)
CSCI318 (Software Engineering Practices & Principles, 6pt)
ISIT315 (Semantic Web, 6pt)

Please select 4 more elective subjects: CSCI317 (note: CSCI317 is in the major, so it isn’t counted)
Please select 4 more elective subjects: CSCI262 (note: CSCI262 is counted)
Please select 3 more elective subjects: CSCI369, CSCI368 (note: CSCI369 and CSCI368 are counted)
Please select 1 more elective subjects: CSCI318, ISIT315 (note: CSCI318 and ISIT315 are counted)

Congratulations. You had completed the enrolment to Bachelor of Computer Science course.
--------------------
Student: Fenghui Ren (1000000, male, 01/01/1981)

Cores:
CSIT111 (Programming Fundamentals, 6pt)
CSIT113 (Problem Solving, 6pt)
CSIT114 (System Analysis, 6pt)
CSIT115 (Data Management and Security, 6pt)
CSIT121 (Object Oriented Design and Programming, 6pt)
CSIT127 (Networks and Communications, 6pt)
CSIT128 (Introduction to Web Technology, 6pt)
CSCI235 (Database Systems, 6pt)
CSCI251 (Advanced Programming, 6pt)
CSIT214 (IT Project Management, 6pt)
MATH221 (Mathematics for Computer Science, 6pt)
CSCI203 (Algorithms and Data Structures, 6pt)
CSIT226 (Human Computer Interaction, 6pt)
CSIT314 (Software Development Methodologies, 6pt)
CSIT321 (Project, 12pt)

Major: Big Data
CSCI317 (Database Performance Tuning, 6pt)
INFO411 (Data Mining and Knowledge Discovery, 6pt)
CSCI316 (Big Data Mining Techniques and Implementation, 6pt)
ISIT312 (Big Data Management, 6pt)

Electives:
CSCI262 (System Security, 6pt)
CSCI369 (Ethical Hacking, 6pt)
CSCI368 (Network Security, 6pt)
CSCI318 (Software Engineering Practices & Principles, 6pt)
ISIT315 (Semantic Web, 6pt)
-----------------
Total Enrolled Credit Points: 150pt
CSIT121/821 Object Oriented Design and Programming - 8/8 -
Tasks

Task 1 (3 marks): Complete the program design by using the UML class diagrams. The class
diagrams shall
• contains at least the five classes mentioned above;
• contains class name, fields and methods definitions for each class;
• use correct and sufficient UML notations;
• clearly specify the associations between classes;
• clearly specify the multiplicities for both sides of the associations.
Task 2 (5 marks): Implement the system according to the UML class diagrams. The program shall
• be consistent with the UML class diagrams;
• follow the conventions for naming all classes, variables, and methods;
• provide sufficient comments;
• use proper blank spaces, indentation and braces to make your code easy to read and
understand;
• follow the specified steps in Enrolment class to enrol the student into the Bachelor of
Computer Science course;
• be able to automatically calculate the remaining elective subject number for the minimal
credit points requirement.
Task 3 (2 marks): Compilation and test. You should compile and test your program by using two
different cases. The first testing case must use the exact same inputs in the example. The second
testing case must choose different majors and elective subjects. Please carefully compile and test
your program and make sure your program can pass the compile by using “javac” command. Please
do not define the package in your program (a special alert for students who use IDE to complete the
assignment).

Submission:
• Please submit your solution to Moodle (Assignment 1). Email submission is not accepted.
• Please submit an individual PDF document (Enrolment.pdf) and a Java program
(Enrolment.java).
• The PDF document shall contain your solutions for Task 1 and Task 3. For Task 1, please
include your UML class diagrams. For Task 3, please include the snapshots to clearly shows the
compilation and the execution of your program with the two testing cases.
• The Java program is your solution for Task 2. The Java program’s name must be
Enrolment.java.

NOTES:
Enquiries about the marks can only be made within a maximum of 1 week after the assignment results are
published. After 1 week the marks cannot be changed.
Mark deductions: compilation errors, incorrect result, program is not up to spec, poor comments,
poor indentation, meaningless identifiers, required numeric constants are not defined, the program
uses approaches which has not been covered in the lectures. The deductions here are merely a
guide. Marks may also be deducted for other mistakes and poor practices.

51作业君 51作业君

Email:51zuoyejun

@gmail.com

添加客服微信: ITCSdaixie