辅导案例-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.