The working executable should present a GUI as follows: See image.

Functionality is as follows:

  • Initialise Button Used to set-up the seating for a new flight. The application will not work correctly unless the Booking Centre creates a new flight. The OnClick event creates the graphics layout of the Boeing Airbus 318-100, initialises the environment and stores the graphics data for the seating in a 3D array.
  • Repaint Button Used to redraw the seating for an existing flight. It does not display passenger data. The OnClick event redraws the graphics layout of the Boeing Airbus 318-100 and fetches the graphics data for the seating from the 3D integer array and draws the seating according to the stored co-ordinates.
  • Refresh Button Used to redraw the seating for an existing flight and display passenger data graphically for the flight. Occupied seats appear in red. The OnClick event redraws the graphics layout of the Boeing Airbus 318-100 and fetches the graphics data for the seating from the 3D array and draws the seating according to the stored co-ordinates. The passenger data is retrieved from a second passenger 3D string array and any booked seating draw (filled red rectangle ) on the existing blank seating layout seating.
  • Data Button Used to display passenger data for the flight. The OnClick event creates a list of passengers for the flight by scanning the passenger data array and compiling a list of passenger details and the associated seats they occupy.
  • Book Seat Button Used by the Booking Centre to reserve a seat for a valid passenger. The centre can only allocate a seat if all passenger details are completed along with a ticket id and the customer requests an appropriate free seat. The OnClick event adds the customer details to the appropriate passenger array index using the selected row, isle and passenger details on the input panel to reference the 3 dimensions respectively. This action allow changes the state of the graphical 3D array from free to occupied (0 to 1). The seat booking is shown on the output panel and added to the graphical display.
  • Show Seat Button. Used to find a passenger seat based on their ticket ID. If the passenger forgets there ID then the booking centre must create a list of passengers first to return there ID and then use Show Seat to highlight their seat alone. The OnClick event executes a linear search across the 3D array using the ticket ID to find the seating match. A successful search will return the array index for the row and isle dimensions. The pseudo-code exercise in Part 1 provides the necessary algorithm to solve this problem. The seat booking is shown both on the output panel and the graphical display.
  • Cancel Seat Button. Used to allow a fussy customer to cancel a seat which can then be book again if seats are still available. It is for the booking centre to make sure that the ticket ID and the occupied seat correspond – this is a weakness of the Information System. The OnClick event directly accesses the passenger array by extracting the row and isle of their seat from the input panel. The passenger details are removed from the 3D passenger array and the state of the graphical 3D array changed from 1 to 0.
  • Mouse actions. If the booking centre wishes to see which passenger occupies a single set without generating a passenger list they can click on an occupied seat. The OnClick event finds the x:y co-ordinates of a mouse click event preformed over the graphics panel. An algorithm is then used to scan the graphical 3D array to discover within which element of the 3D graphics array the mouse click occurred by comparing the stored rectangular co-ordinates for each seat with the mouse co-ordinates. Thus acts as a boundary test. The single seat which passes the boundary test returns the isle and row index which can is used to access the 3D passenger array data. Remember the 3D graphics and 3D passenger array have the same mapped elements for the first 2 dimensions (row and isle). The passenger array data returned to the output panel.

The task for Part II is to duplicate, as far as possible the above scenario and implement this using VB.Net. This scenario is good enough to act as a first prototype for a commercial system. This can, therefore, be used as a gauge by which you will be able to measure your competency as a commercial programmer. At this stage on the Foundation Degree Programme you are not expected to be able to complete all aspects of Part II. The marking has been arranged so that you do not fail as a result of an incomplete section.

Academic Honesty!
It is not our intention to break the school's academic policy. Posted solutions are meant to be used as a reference and should not be submitted as is. We are not held liable for any misuse of the solutions. Please see the frequently asked questions page for further questions and inquiries.
Kindly complete the form. Please provide a valid email address and we will get back to you within 24 hours. Payment is through PayPal, Buy me a Coffee or Cryptocurrency. We are a nonprofit organization however we need funds to keep this organization operating and to be able to complete our research and development projects.