Foundations of Programming Assignment Help

Foundations of Programming

Assignment Description:
For this assignment, you are required to design and develop a console (text-based) application for a small catering business. This application will simulate booking appointments, tracking catering jobs and processing payments.

The program must cater for each of the following requirements:
1) Add a new catering appointment.
2) List all jobs still actively being worked on
3) List all completed jobs still requiring payment
4) List all jobs scheduled for work on a particular day
5) Accept a payment towards a completed appointment
6) Report detailed status for a particular booked appointment
7) Exit the Program

Task Description:

1) Design.
Before commencing coding, you need to plan what you will code. Write an algorithm that describes how your program is going to work and how it links together.

2) Implementation
Develop a program for the catering business staff. This needs to:
a. Use a menu to give the user options to access different program parts.
b. Include all the functionality listed under the application description and further describe it under functional requirements. Make sure this includes the following elements:

i. at least one ArrayList
ii. at least one example of inheritance
iii. at least one example of polymorphism
iv. at least one example of overloading

c. Keep running until the user selects a menu option to exit the program. You do not need to save any data when you exit.
You should aim to write code following high-quality coding practices, including comments, trapped exceptions and exhibiting good design where code is separated into separate methods.

Functional Requirements
1) Add a new catering appointment.
Allow the user to enter information that constitutes a booking for a client seeking catering services. You do not need to treat companies any differently to individual persons. The following information is required for each booking:

  • The name, address and contact phone number of the client
  • The type of food, number of people to be served and any special requirements
  • The appointment date and time

You must also allow the user to indicate the type of booking that is being requested. This may be for supply of food only or for full service, covering both the provision of food and wait-staff to serve the guests.

In the case of a full service, you must also collect a deposit of 30% on the day the booking is made. In the case of food-supply only, you must collect a deposit of 20% on the day the booking is made.

2) List all jobs still actively being worked on
This option must display a list of all the catering jobs that are in progress or have been completed on the current day by the catering business.

Do not list jobs which are yet to start, or jobs which have been completed on a previous day. For each job that is active, simply report the name of the client, the appointment time, the type of service and its current status.

3) List all completed jobs still requiring payment
The user must be able to select an option to list all the jobs that have been completed but have not yet been paid in full. For each such job, list the name of the client, the type of service they booked and the amount owing.

If a client has payment owing for more than one job, you may choose to either consolidate these into one entry or to display them on individual lines at your own discretion.

4) List all jobs scheduled for work on a particular day
The program must allow the user to see a list of all the services that are scheduled on a selected day. The user must be able to specify the day for which the list is to be provided.

5) Accept a payment towards a service job
Payments must be recordable against services. The user must indicate the particular job to which the payment is to be allocated (any method of doing this is acceptable).

Then, if the selected job has an amount owing, report that amount to the user and obtain from the user the amount actually being paid right now.

If the amount entered is too much, report an error message. If the amount entered is less than the total that was owed, report the new amount owing afterwards. Otherwise, report that no further payments are required from the client. Remember to keep track of all payments made on each day.

6) Report detailed status for a particular appointment
The program must be able to report the full details about any particular appointment by allowing the user to specify the appointment for which they wish to see the details. This means you must report:

  • The name, address and contact number of the client
  • The type of catering service they booked
  • The date of the appointment
  • The type of food, number of people to be served and any special requirements
  • The current job status (scheduled, in progress, complete, cancelled)
  • The total cost, if known
  • The amount paid and amount owing.

7) Exit the Program
The program must keep running until the user selects the option to exit. You do not need to save any of the data (i.e. there is no need to use files).

3) Testing.
In your supplementary documentation, explain how you have tested your code and your testing results. This means writing down the inputs and actions that the marker should follow to reproduce the scenarios you used to check the program is working. Include screenshots demonstrating the results when you tested your code.
Submission Requirements:

All files you wish to submit must be placed into a single ZIP file (with an extension of .zip).
At a minimum, the following files should be present:
Assignment2.docx – for Tasks 1 and 3
All code files to allow your program to be compiled and run.

Task 1: Design

Write an algorithm that describes how your program is going to work and how it links together

Task 2: Implementation

Implementation of a program for the catering business staff, which:
– Uses a menu to give the user options to access different program parts.

  • Allows the user to:
  • Add a new catering appointment.
  • List all jobs still actively being worked on
  •  List all completed jobs still requiring payment
  •  List all jobs scheduled for work on a particular day
  • Accept a payment towards a completed appointment
  • Report detailed status for a particular booked appointment
  • Exit the Program

– Includes

  • at least one ArrayList
  • at least one example of inheritance
  • at least one example of polymorphism
  • at least one example of overloading

– Keeps running until the user selects a menu option to exit the program.

Task 3: Testing

Documented testing results that:

  • – explain how you have tested your code
  • – show the results of your testing with inputs and outputs included.
  • – include screenshots showing the test results.

To get assignment help, please get in touch with our live chat adviser