SEHH2042 Computer Programming Group Project – Event Management System
Expected Learning Outcomes
● Familiarise themselves with at least one high level language programming environment.
● Develop a structured and documented computer program.
● Understand the fundamentals of object-oriented programming and apply it in computer program development.
● Apply computer programming techniques to solve practical problems.
Introduction
In this assignment, you are going to develop an “Event Management System” that runs in the command line environment. The system will assist event managers in managing the 3 conference rooms, and the corresponding facilities and staff.
The event manager (user) manages 3 conference rooms (Conference Room A, B and C), each with different maximum capacity. The system shall store the information about the conference rooms and their usage on hourly basis (from 09:00 to 22:00 Monday to Sunday), and shall suggest and reserve a conference room upon customers’ booking.
Each group is required to write a Win32 Console Application program called EMS2022.cpp. The requirements are listed below.
R0
When the program starts, the console shall display a welcome message, followed by the Main Menu of the program. Users can enter the options of the corresponding actions (see R1 to R5 below).
Welcome Message designed by your group
*** Main Menu ***
[1] Reservation
[2] Show Reservation Record
[3] Show Staff Requirements
[4] Credits and Exit
*****************
Option (1 - 4):
R1
[1] Reservation
When the user inputs 1 in the Main Menu, the user can check current reservation records,
reserve a conference room, modify and cancel the booking. following options:
*** Reservation ***
[1] Reserve Conference Room [2] Modify Reservation
[3] Cancel Reservation *****************
Option (1 - 3):
R1.1
Reserve Conference Room
It prompts the user with the
The user shall be prompted for the following information about the reservation to be created: (1) Person, (2) Phone, (3) Email, (4) Reservation Date (dd-mm-yyyy), (5) Start Time (hh:mm), (6) End Time (hh:mm) and (7) Number of Participants
Input Validation
The following validity check regarding the input data shall be carried out:
● “Person” shall be a string which may contain white space. You can assume the input is at most 100 characters.
● “Phone” shall be a string which does not contain white space, and its length shall be 8 characters.
● “Email” shall be a string which does not contain white space, and it shall contain the @ character.
● “Number of Participants’ shall be an integer, with reasonable validation checking on its range.
R1.2
Invalid input
When an input is invalid, meaningful error messages should be shown, and the user is asked to input data for the same information again until data is valid, or THREE rounds of input (for the same information) have been performed. If the input is invalid finally, the system returns to the Main Menu.
R1.3 Confirmation
If all inputs are valid, the system shall print the conference room that is available and capable of accommodating the required number of participants and the total reservation cost (refer to R1.13, R1.14). The system will then prompt the user for confirmation.
*** Reservation *** Room: Room A
Maximum Capacity: 50 Date: 22/10/2002 Time: 9:00 - 13:00 Cost: $4000
Confirm Booking (Y or N):
R1.4
Providing an ID value
New reservation record will be created and added to the system when the user confirms the reservation. When the entry is added, the system automatically generates a unique reservation ID (an integer) for identification purposes. The corresponding conference room shall be booked for the timeslot (and thus cannot be double booked). The system returns to the Main Menu afterwards.
R1.5
Booking Suggestion
If no conference room is available at the requested timeslot, the system should suggest the next available time slots (adjacent time slot on the same day, same time slot on the next day). If none is available, the system should just return “no conference room is available”. of the above and/or
Assume the requested timeslot, 22/10/2022 09:00-13:00, is unavailable:
*** Reservation ***
Sorry, no room is available at the time slot. Suggestions:
[1] 22/10/2022 13:00 - 17:00
[2] 23/10/2022 09:00 - 13:00
[3] Cancel Reservation
Your Choice:
R1.6
Suggestion Confirmation
If the user selects one of the selections, the system should display the reservation details as in R1.3.
R1.7
Modify Reservation
…The system should prompt the user for a reservation number. If a valid reservation number is entered, the system should display the details of the reservation, and options on which details are to be modified.
*** Modify Reservation ***
Enter Reservation Number: 8
[1] Person: Jimmy
[2] Contact: 65432100
[3] Email: jimmy@cpce-polyu.edu.hk [4] Date: 22/10/2002
[5] Start Time: 9:00
[6] End Time: 13:00
[7] Number of Participants: 45
Room: Room A
Cost: $4000
Option (1 - 7), C to complete, or X to cancel:
The system should continue to display the updated details such that the user can modify more than one details.
R1.12
Confirm Cancellation
If the user confirms the cancellation, the entry should be removed from the system, and the system should show the time slot being available for another reservation.
R1.13
Conference Room Capacity
The following is the maximum capacity of the conference rooms:
Conference Room A: 50 Conference Room B: 75 Conference Room C: 100
R1.14
Conference Room Rental Cost
Conference Room A: $1500 per hour Conference Room B: $2000 per hour Conference Room C: $2500 per hour
R2
[2] Show Reservation Record
The system should display the next 7-day conference room reservation records in a calendar format.
*** Reservation Record *** Display Which Room (A - C): A
Room A
22/10 23/10 24/10 25/10 26/10 27/10 28/10
09:00 x
10:00 x x
11:00 x
12:00 x
13:00
14:00 x
15:00 x
16:00
17:00
18:00 x
19:00 xx 20:00
21:00
Option (A - C), X to exit:
R2.1
Return to Main Menu
The system should return to the Main Menu if the user enters X to exit.
R3
[3] Show Staff Requirements
Assume that it requires 1 staff for every 20 people in a single conference room, 1 manager for every 35 people.
Calculate and display the staff requirement for a particular date:
*** Staff Requirement ***
Enter the Date (dd/mm/yyyy) or X to exit: 18/10/2022
CRA CRB CRC 09:00 1M 2S
TOTAL
1M 2S
2M 5S
1M 2S
1M 2S
1M 3S 3M 8S
10:00 1M 2S
11:00 1M 2S
12:00 1M 2S
13:00
14:00 1M 3S
15:00 1M 3S
16:00
17:00
18:00
19:00
20:00
21:00
Enter the Date (dd/mm/yyyy) or X to exit:
M stands for Manager and S stands for Staff
Tips
To handle unexpected input error (e.g. input a character to an integer variable), you may use the following code appropriately in your program:
cin.ignore(); // Discard the content in the input sequence. cin.clear(); // Reset the input error status to no error.
Grading criteria
Your program will be executed with different test cases in Microsoft Visual Studio. Any deviation from the requirement is considered as incorrect and no mark is given for that case. Your program will also be marked based on its user-friendliness and creativity (e.g., information display, appropriate prompt messages and action result messages if needed).