COIT11134 Object Oriented Programming Assignment 1
Due date: Friday of Week 6 (11:45pm AEST)
Length: No limit
This assignment is designed to test your ability in object-oriented techniques specifically the design and implementation of classes, use of data structures, objects and methods, principles of inheritance and GUI event handling.
CQSC, a successfully operating medical specialty center, has decided to lease its spare operation-theatres to private surgeons on daily-lease basis. When a new surgeon requests for a lease, CQSC collects his/her personal details such as name, Medicare provider number, specialty, etc. During the booking of a daily-lease, only one operation theatre is allocated to a listed surgeon. A surgeon may book different operation theatres on different dates. All the lease bookings are current/future dated only and CQSC does not allow any postponing or cancellation of the lease bookings.
Note: Even though the daily lease rate changes over a long period, currently it is assumed that it is constant.
The following features need not be considered:
- Recording the details of support staff and other facilities allotted for each lease
- Invoice and payment details for each lease
CQSC has approached you to develop a software application with a GUI (hereafter called as application) to maintain the leasing records of the operation theatres to surgeons.
The application should enable data entry of the following:
- surgeon details
- operation theatre details
- lease booking details
The application should be able to display the details of the following:
- selected surgeon
- selected operation theatre
- lease bookings for selected operation theatre/surgeon
List the tests that you have conducted on the above application and produce the screen shots accordingly. The test details should include the scenario, input, expected and actual outputs.
3. Design Guidelines
You are encouraged to use your own design (for Java classes, scene layout, procedures/methods, etc.) and develop the application with JavaFX GUI accordingly. However, if you do not know how to start, the following general and GUI design guidelines may help you to design and develop your application.
In future, the application may need to store the details of other personnel and hence Person super class and Surgeon derived/sub class would be a good start. Which attributes are to be placed in the above classes? It is left as your choice but make sure that the derived/sub class inherits the attributes from its super class as per inheritance principles.
In order to enter the data for operation-theatre and lease booking, appropriate classes have to be created. An operation theatre may have a name and location/room number attributes. Which attributes are required for each lease? How are surgeon and operation theatre related to a lease booking? Your answers will help you to design the Lease class correctly. The data type for the attributes has not been mentioned purposely. You need to use appropriate data types accordingly.
Your application should have error checking and display of appropriate error messages.
You need to develop your own data structures. However, please note that pertinent data should be available. For your help, some examples(incomplete) are given below:
Lease or LeaseBooking:
- operation theatre
The application should have JavaFX components/controls that are necessary to enable the entry of the data such as room (operation theatre), surgeon, and lease booking and the application should store them appropriately in arrays or ArrayLists or any other suitable structures. The layout for each scene is left to your choice.
Follow a design which is user friendly and implements good GUI deign principles.
The application should also enable the user to search for entered data as per the chosen item given in Section 2 (Task).
Besides the necessary controls in each scene, the following Buttons should be available and perform appropriate actions.
- Clear – to clear the current inputs and present the default value (if any)
- Exit – to confirm the exit and then close the application
You should submit the following files:
- A zip file containing all Java source code files including all the classes, controllers, .fxml and .css files
- docx (a word file containing screen shots showing different tests, various inputs, error messages and outputs from your application program run)
FAQ and Answers
- How many Java classes should I create? There is no limit for the number of classes in your application.
- I have not used inheritance and/or aggregation in my application. Can I submit my application? You can submit the application, but you will be given only partial marks.
- Can I use platforms other than NetBeans for creating java classes? Not recommended.
- Do I have to check that the rule ‘same operation theatre is not allotted to different leases on the same day’? Even though that is preferred, you need not perform that checking.
- Do I have to use constants? You might have to use the constants depending on your design.
- Do I have to provide comments? You need to provide in-line and header comments appropriately.
- Why am I not storing the data in text or data files? You need to do that in your assignment2.
- What test plans and types of error checks are necessary especially for numerical inputs? Left as an exercise.
- Can I create a lease that contains only its id but without any other details? Not recommended.
- Can I create surgeon data before entering the lease data? Recommended to create and store the details of surgeons and operation theatre prior to entering lease details.
- Do I have to create separate class for lease and lease booking? For this assignment, you can you create only one class i.e., either Lease or LeaseBooking.
- Can I use Scene Builder for developing scenes? You are recommended to use Scene Builder.
You are also encouraged to discuss any other related questions with your lecturer/tutor and design your application accordingly.
To avoid plagiarism and to encourage you to develop your own classes appropriately, complete list of classes, fields, methods and GUI layout have not been provided specifically in this assignment.
本网站支持淘宝 支付宝 微信支付 paypal等等交易。如果不放心可以用淘宝交易！
E-mail: firstname.lastname@example.org 微信:itcsdx