Reference no: EM13661581
Assignment Description:
For this assignment, you are required to design and develop a console (text-based) application for a small car servicing company. This application will simulate booking, tracking service jobs and vehicle modifications and processing payments.
The program must cater for each of the following requirements:
1) Add a new booking.
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 service job
6) Report detailed status for a particular booked service
7) Exit the Program
Task Description:
1) Design.
Prior to commencing coding, you need to plan what you're going to 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 service department staff. This needs to:
a. Use a menu to provide the user with options to access different parts of the program.
b. Include all the functionality listed under the application description and further described under functional requirements. Make sure this includes the following elements:
i. at least one array
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 booking.
Allow the user to enter information which constitutes a booking for a client of the service department. 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 number plate, make, model and year of manufacture of the vehicle
- The service date
You must also allow the user to indicate the type of booking that is being requested.
This may be a vehicle modification or a vehicle service. In the case of a vehicle modification, you must also collect payment for any parts required 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 bookings (jobs) that are in progress or have been completed on the current day by the service department. 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 vehicle registration, 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 is one for which there is 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 owing, 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 booked service
The program must be able to report the full details about any particular booking, by allowing the user to specify the booking 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 service they booked
- The date of the service
- The vehicle registration number, make, model and year of manufacture
- The current job status (scheduled, in progress, complete, cancelled)
- The total service 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 the results of your testing. This means writing down the inputs and actions which 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.