Swinburne University of Technology Faculty of Science, Engineering and Technology

Swinburne University of Technology Faculty of Science, Engineering and Technology

Swinburne University of Technology Faculty of Science, Engineering and Technology

COS70006: Object Oriented Programming

Project 1 - 2018, Semester 1

10% of your final mark

Due by 23.59pm on March 24th, 2018

Due time: 3:00pm Monday 26 March 2018

Project Description

Student lab booking system

A small system is required that will allow students to register themselves into a lab for a subject that they are studying for. You are required to write the exactly following 4 classes for the system.

  • Application class
  • LabMaster class
  • Student class
  • Lab class

The Application Class is the interface class including the main method and handling all inputs and outputs.

The LabMaster is responsible for maintaining the list of labs for different subjects. You should be able to add a lab to this list and delete one from this list (only if no registered students). It should also be able to provide a list of labs available and a list of lab that are fully booked for a given subject.

As each subject may have a different number of labs, a Lab should be identified by a subject code and a number. Each lab has information about room number, tutor name, time, capacity (maximum number of students it can take). A Lab should keep track of students who booked the lab. You must be able to add a student and remove a students from the lab. A student can only book one lab for one subject.

A Student should have at least a unique student number, and a name.

The system requires a simple Console (Text Based) Interface that will have the following menu items.

  1. Add a lab to the list
  2. Delete a lab from the list (only if no registered students)
  3. List available labs
  4. Register a student for a lab
  5. Remove a student from a lab
  6. Move a student from a lab to another
  7. List all labs he/she has booked for a student
  8. Exit

The output format for options 3 and 7:

Subject code Lab# Room Time Tutor Capacity Registrations

CO70006 1 BA401 9am Tony 21 19

Deliverables

All deliverables due by 23.59pm on March 24th, 2018.

Design Documents:

  • Structure Chart for Console Interface
  • Detailed Class Diagram (attributes, methods, relationships, multiplicity, access modifiers)

Code:

  • The solution must be a BlueJ Project.

You need to hand in a hard copy and a soft copy.

Hard copy (to be dropped in a box marked as OOP in front of EN510e on Monday):

You need to hand in the printed report (hard copy) on or before the due date mentioned.

The documentation has to be word processed and include a cover page (Project 1, Subject code, studentID, Name, your tutorial time), marking scheme, design documents and source code.

(Note: Print the source code with font size 10pt. and do not print the Javadoc html files)

Soft copy:

The soft copy should include the source code (a BlueJ Project) and should be submitted to ESP before the due date.

Some Expectations

  1. All classes and methods include Javadoc
  2. Code is well structured and object oriented.
  3. User interface is separated from business logic classes
  4. User interface is broken down into single purposed methods
  5. The user input is safe and will not crash the program
  6. Pre-condition checking is included in the class methods
  7. Output is correctly formatted
  8. Your design has been discussed prior to implementation
  9. The code matches your design

Plagiarism

THIS IS AN INDIVDUAL PROJECT.

  • The submitted work must be your own work.
  • You may NOT view the code of other students.
  • You may discuss the work with teaching staff.
  • You may discuss the big picture with peers but the final design should be yours.
  • You must name and code attributes and operations on your own.
  • There will be absolutely no tolerance of plagiarism.
  • Any person that presents any work that is not their own or is not properly referenced will be awarded 0 marks for the project.

Marking Scheme

The below marking scheme will be used to mark the project deliverables.

Items / Max Marks / Marks Awarded / Comments
Hard copy submitted as required:
The documentation has to be word processed and include a cover page (Project 1, Subject code, studentID, Name), marking scheme, design documents and source code.
(Note: Print the source code with font size 10pt. and do not print the Javadoc html files) / 2
Code readability:
  • Javadoc for all class headers and methods headers
  • Proper comments for variables and blocks
  • Proper indentations and use of blank lines
  • Use of proper Java naming conventions
/ 8
Detailed class diagram:
  • Identification of correct classes
  • Appropriate attributes and methods
  • Appropriate relationship between classes
  • Multiplicity used
/ 8
Structure chart matches the interface class / 3
The code matches your UML design / 3
Logic of code can be followed / 3
Appropriate implementation of functionality using well-structured OO classes
  • Use of appropriate attributes, methods including getters/ setters, access modifiers, imports
  • Use of appropriate data types, collections, iteration and selection structures etc.
  • Each class is defined as required
/ 9
Appropriate implementation of user interface class
  • UI separated from business logic classes
  • Broken down into single purposed methods
  • Proper use of variables, access modifiers, imports etc.
  • Popper user messages for user inputs and outputs
  • The user input is safe and will not crash the program
  • Output is correctly formatted
/ 18
Each functionally in the menu works as required / 16
Total / 70