Question
A new room booking system is required to help guests reserve a room based on the following requirements : Single, Double or Suite. Room Price
A new room booking system is required to help guests reserve a room based on the following requirements :
Single, Double or Suite.
Room Price (The maximum price the user could afford).
With or Without Balcony.
With or Without Lounge.
When a suitable match is found, the guests (identified by their eMail) should be able to reserve the room. Room reservations may also be cancelled. The room data should be stored in a file rooms.txt that will contain the room data and any reservations, though initially every room should be unreserved. Upon application launch, the data should be loaded into appropriate data structures and upon application exit, the data should be saved back to the file.
NOTE : The rooms.txt file (i.e. Appendix A) is provided on Canvas in the Assignments section. You should download the file and add it to your Java project.
The format of each rooms data is as follows :
roomNum roomType roomPrice hasBalcony hasLounge eMail
See Appendix A for further explanation of the file rooms.txt
You are thusly required to produce a design document including a nouns and verbs analysis of the specification, and an UML (Unified Modelling Language) class diagram. You should provide justifications for the design decisions you made.
You are then required to produce a console application (using Java) that is driven by a repeating main menu (i.e. Appendix B) with appropriate instructions and guidance throughout. Menu options should include reserving a room, cancelling a room, and viewing room reservations.
To maximise your credit, you should also try to implement the following functionalities: Performing Validation (i.e. fallacious input should be rejected). Before rejecting a reservation (i.e. no rooms match the guests room requirements) the application offers the next best match (i.e. we can match 3 of your 4 room requirements Guidlines:
A best practice solution should employ robust OO programming code. In the event that you struggle with OO, you should still produce a design, but based around procedural programming in which you decompose the complete task into sub tasks. Your programming code should then be based on this design, which might use static methods in Java. As a last resort, functionality could reside the main method / function only. Note that while a best practice solution is necessary for maximum marks, some marks are still available for partial solutions and you should attempt as much as you can, even if you do not get your programming code functioning fully.
It is not necessary to develop your system outside the specification above, marks are available for answering the question, the whole question and nothing but the question, that said see below regarding best practice.
The code should employ best practice (i.e. indentation, spacing & camelCase).
The code should also be suitably commented (i.e. non self-explanatory)
Appendix A
101 Single 23.50 false false free
102 Single 23.50 false false free
103 Double 27.50 false false free
104 Double 27.50 false false free
105 Double 27.50 false false free
201 Single 23.50 true false free
202 Single 23.50 true false free
203 Double 27.50 true false free
204 Double 27.50 true false free
205 Double 27.50 true false free
301 Single 33.50 true true free
302 Single 33.50 true true free
303 Suite 60.00 true true free
304 Suite 60.00 true true free
305 Suite 60.00 true true free
306 Double 37.50 true true free
307 Double 37.50 true true free
Appendix B
- - Room Booking System - -
- - MAIN MENU - -
1 - Reserve Room
2 - Cancel Room
3 - View Room Reservations
Q - Quit
Pick:
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started