Great Deal! Get Instant $10 FREE in Account on First Order + 10% Cashback on Every Order Order Now

BIT106/ DIP215 Assignment Semester 1, 2022 Release date: 17th March 2022 Due Date: Value: 7th April 2022 15% Assessment Mode: Individual Assessment The assignment assesses the following learning...

1 answer below »

BIT106/ DIP215
Assignment                             Semester 1, 2022
    Release date:
    17th March 2022
    Due Date:
Value:
    7th April 2022
15%
    Assessment Mode:
    Individual Assessment
The assignment assesses the following learning outcomes:
    CLO1: use the fundamental control structures and data types to write programs in the Java language
    CLO2: demonstrate the use of objects and classes, both standard li
ary classes and user defined classes
    CLO3: apply the structured, and object-oriented approach to solve computing problems using Java
Important Notes
· You must submit this assignment as a single word document to LMS Turnitin.
· The source code (all java files) should be in a package. Package name should follow the format StudentIDStudentName (B10001Alice). This needs to be separately submitted to LMS (source code section).
· You must work on this assignment on your own. Any two or more programs which are found to be similar will receive zero (0) marks.
· Students may be asked to explain about the work they submitted.
· For any queries/clarifications, revert as soon as possible. Any queries made close to the deadline may not be possible to entertain.
Overview
You need to implement a Student Management System that can store various information related to undergraduate and postgraduate students and allows various operations like registering courses for an undergraduate student, update status of postgraduate student, displaying various information of all registered students etc.
The requirements for this assignment spans across three levels. You should complete and test a solution to Level 1 requirements before attempting the additional Level 2 requirements. Similarly, you should complete the Level 2 before attempting Level 3. Higher levels will not be marked unless the lower level is completed co
ectly.
SECTION A (75)
Level -1: Class Providers [ 40 marks]
Create the following class providers based on the class diagram. The main attributes and methods are provided for each class.
1. Course: Source code provided
2. UnderGrad:
Attributes:
courseList – a collection of courses (maximum 4)
Constructor:
4 parameter Constructor – name ,studentId, programme, creditsCompleted
· Initializes attributes
· Creates courseList a
ay [ size 4]
Methods:
egisterCourse(Course) - registers a course
· Maximum of 4 courses can be registered.
· Should not allow to add course beyond maximum size (return false)
toString() – returns the information that includes all the attributes
3. Academic: Source code provided
4. PostGrad:
Attributes:
status :
· allowed values – “AUDIT”, “RESEARCH” and “THESIS WRITING”
· Upon instantiation, status is “AUDIT”
Constructor:
4 parameter constructor: name, studentId, programme, superviso
· Initializes attributes
· Status is set to “AUDIT”
Methods:
setStatus(String) - sets the status
· Can be set to “RESEARCH” and “THESIS WRITING” only.
· any other values, no change in status (returns false)
toString() – returns the information that includes all the attributes
5. Registration (Driver class)
a. Create various instances of both the classes.
. Register courses for UnderGrad students.
c. Set status to appropriate values for PostGrad students.
d. Display information of each object.
Sample output:
Sample output 1:
Student: Ali ID: 1 pursuing BIT has completed 10 credits
The student has registered for the following 4 courses this semeste
BIT210: Web Pro
BIT106: Java
BIT110: Operating System
BIT208: Data Structures
Sample output 2:
Student: Alice ID: 2 pursuing BCS has completed 70 credits
The student has not registered for any courses this semeste
Sample output 3:
Student: Adil ID: 8 pursuing Ph.D ( RESEARCH ) is under the supervision of Prof. Abdul Waha
Sample output 4:
Student: Sally ID: 7 pursuing MIT ( THESIS WRITING ) is under the supervision of Assoc. Prof. Xi Ping
Sample output 5:
Course cannot be registered : (Maximum reached)
Level -2: Inheritance [ XXXXXXXXXX = 60 marks]
PostGrad and UnderGrad classes have some common attributes and behavior. You are required to implement inheritance where in the common attributes and behavior are defined in abstract class Student. PostGrad and UnderGrad classes will inherit the attributes and behavior from Student class and define any specific attributes and behavior in their own classes.
Student (abstract class): Source code is provided.
Modify the UnderGrad and PostGrad classes as per the class diagram.
Instance variables: Each class should define its specific attributes.
Constructors: The constructors need to be modified. Constructors must invoke the parent constructor before initializing its attributes.
Fee calculation : calculateSemFee()
Each of the classes must ove
ide calculateSemFee() method.
For Undergrad: The semester fee should be calculated based on:
Fee = number of courses * credit hours per course * fee per credit hour
Each course has 4 credit courses and fee per credit hour 500.
Example if a student registers 3 courses
fee = 3 * 4 * 500 = 6000
For PostGrad: Based on programme
For Masters, fee is 6000 per semeste
For PhD, fee is 8000 per semester.
Note: Master’s programmes start with M ( Eg. MIT, MSC, MA etc.)
PhD programmes start with P ( Eg., PhD IT , PhD CS, etc.)
toString()
Each classes need to modify the toString() method – returns information (general and specific) about the class .
Registration (Driver class)
1. Creating Student Objects
Student can be either a PostGrad or an UnderGrad. Create various instances of each class.
2. Set status of a PostGrad students to appropriate values.
3. Register courses for Undergrad students.
4. Display information related to each object.
Sample output 6:
Student: Ali ID: 1 pursuing BIT has completed 10 credits
The student has registered for the following 4 courses this semeste
BIT210: Web Pro
BIT106: Java
BIT110: Operating System
BIT208: Data Structures
and has semester tuition fee: 8000.0RM
Sample output 7:
Student: Alice ID: 2 pursuing BCS has completed 70 credits
The student has not registered for any courses this semeste
and has semester tuition fee: 0.0RM
Sample output 8:
Student: Adil ID: 8 pursuing Ph.D ( RESEARCH ) is under the supervision of Prof. Abdul Waha
and has semester tuition fee: 8000.0RM
Sample output 9:
Student: Sally ID: 7 pursuing MIT (THESIS WRITING) is under the supervision of Assoc. Prof. Xi Ping
and has semester tuition fee: 6000.0RM
Level -3: Container Class [ XXXXXXXXXX = 75 marks]
You are provided partial implementation (source code) for StudentList (container) class. You are required to update StudentList class.
Attributes:
· a Student a
ay instance that will have a collection of PostGrad and UnderGrad objects
Constructor:
· sets the Student a
ay to user defined size
· sets noOfStudents to 0
Methods:
addStudent(Student student)
· should be able to add student to the studentList, if list not full
setStatus(String studentId, String status)
· given studentId, sets the status of PostGrad student to appropriate value
egisterCourse(String studentId, Course course)
· given studentId, registers the course for the given UnderGrad student
Registration (Driver class)
You program should ask for the size of the list from the user and then provide a menu to perform various operations
1. Add PostGrad student to the list
2. Add UnderGrad student to the list
3. Set status of a PostGrad students to appropriate values.
4. Register courses for Undergrad students.
5. Display information of all students
6. Quit
Sample Output 10:Enter size of the list: 5
1 --> Add Undergrad student
2 --> Add Postgrad Student
3 --> Set Status
4 --> Register course
5 --> All Registered Students
Q/q --> Quit
Enter your choice: 1
Enter Name: Lim Yi
Enter Id: 1
Enter Programme: BIT
Enter Credits completed: 40
1 --> Add Undergrad student
2 --> Add Postgrad Student
3 --> Set Status
4 --> Register course
5 --> All Registered Students
Q/q --> Quit
Enter your choice: 2
Enter Name: Yunus
Enter Id: 3
Enter Programme: PhD
Enter Supervisor Name: Ali
Enter Supervisor Designation: Assoc. Prof.
1 --> Add Undergrad student
2 --> Add Postgrad Student
3 --> Set Status
4 --> Register course
5 --> All Registered Students
Q/q --> Quit
Enter your choice: 1
Enter Name: Ben
Enter Id: 8
Enter Programme: BCS
Enter Credits completed: 48
1 --> Add Undergrad student
2 --> Add Postgrad Student
3 --> Set Status
4 --> Register course
5 --> All Registered Students
Q/q --> Quit
Enter your choice: 4
Enter Id: 8
Enter Course Name: Web Programming
Enter Course Code: BIT210
1 --> Add Undergrad student
2 --> Add Postgrad Student
3 --> Set Status
4 --> Register course
5 --> All Registered Students
Q/q --> Quit

Enter your choice: 4
Enter Id: 8
Enter Course Name: Operating Systems
Enter Course Code: BIT110
1 --> Add Undergrad student
2 --> Add Postgrad Student
3 --> Set Status
4 --> Register course
5 --> All Registered Students
Q/q --> Quit
Enter your choice: 2
Enter Name: Samee
Enter Id: 32
Enter Programme: MIT
Enter Supervisor Name: Adam
Enter Supervisor Designation: Assoc. Prof.
1 --> Add Undergrad student
2 --> Add Postgrad Student
3 --> Set Status
4 --> Register course
5 --> All Registered Students
Q/q --> Quit
Enter your choice: 3
Enter Id: 32
R -> RESEARCH
T -> THESIS WRITING
Enter Choice: T
1 --> Add Undergrad student
2 --> Add Postgrad Student
3 --> Set Status
4 --> Register course
5 --> All Registered Students
Q/q --> Quit
Enter your choice: 5
Student: Lim Yi ID: 1 pursuing BIT has completed 40 credits
The student has not registered for any courses this semeste
and has semester tuition fee: 0.0RM
-------------------------------
Student: Yunus ID: 3 pursuing PhD ( AUDIT ) is under the supervision of Assoc. Prof. Ali
and has semester tuition fee: 8000.0RM
-------------------------------
Student: Ben ID: 8 pursuing BCS has completed 48 credits
The student has registered for the following 2 courses this semeste
BIT210: Web Programming
BIT110: Operating Systems
and has semester tuition fee: 4000.0RM
-------------------------------
Student: Sameer ID: 32 pursuing MIT ( THESIS WRITING ) is under the supervision of Assoc. Prof. Adam
and has semester tuition fee: 6000.0RM
-------------------------------
1 --> Add Undergrad student
2 --> Add Postgrad Student
3 --> Set Status
4 --> Register course
5 --> All Registered Students
Q/q --> Quit
Enter your choice: q
************ END OF PROGRAM*************
SECTION B (15)
Question: You are required to identify and discuss about application of Object Oriented Principles in your solution (Section A). Your discussion should include:
· Abstraction
· Encapsulation
· Inheritance
· Polymorphism
· Ove
iding
Code efficiency and Documentation (10 marks)
· Document all classes and its methods.
· Use meaningful variable names and add comments wherever necessary.
· The code should be properly indented.
· Your sample output should cover all the requirements.
· Avoid any redundant code.
· Refer to the marking scheme for further details.
SUBMIT ON LMS
Assignment section
A single Word file that includes the following (in order).
· Assignment Cover Sheet
· Program source code, formatted with Courier New size 10
· Sample Output
· Assignment Marking Scheme
· Late submissions will be penalized 5 marks per working day.
Source Code section
Export your project
Answered 3 days After Apr 02, 2022

Solution

Kshitij answered on Apr 05 2022
108 Votes
SOLUTION.PDF

Answer To This Question Is Available To Download

Related Questions & Answers

More Questions »

Submit New Assignment

Copy and Paste Your Assignment Here