Project Description
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.
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.
- Add a lab to the list
- Delete a lab from the list (only if no registered students)
- List available labs
- Register a student for a lab
- Remove a student from a lab
- Move a student from a lab to another
- List all labs he/she has booked for a student
- Exit
Deliverables
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:
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), 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
- All classes and methods include Javadoc
- Code is well structured and object oriented.
- User interface is separated from business logic classes
- User interface is broken down into single purposed methods
- The user input is safe and will not crash the program
- Pre-condition checking is included in the class methods
- Output is correctly formatted
- Your design has been discussed prior to implementation
- 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.
No | Components | Max Marks | Marks Awarded | |
Design | 1 | Structure chart for console interface | 5 | |
2 | Detailed class diagram: · Identification of correct classes · Appropriate attributes and methods · Appropriate relationship between classes · Multiplicity used | 20 | ||
Implementation | 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. | 25 | |
4 | Appropriate implementation of user interface class · UI separated from business logic classes · Proper user interaction · Broken down into single purposed methods · Proper use of variables, access modifiers, imports etc. | 20 | ||
5 | Output is properly formatted | 10 | ||
8 | Overall working quality product in line with design: · Javadoc is included · Pre-conditions are checked in methods · Input does not crash the program · Use of proper Java naming conventions · Appropriate referencing | 20 | ||
Total | 100 |
No comments:
Post a Comment