Topic: A Supermarket Self-checkout System
Completing the TMA
The TMA is a substantial task that requires planning and effort to complete satisfactorily. You should begin work on it as early as possible.
You must complete tasks 1 to 7 below.�
You are required to design algorithms for a supermarket self-checkout system. To do this, you will use the constructs and techniques taught in sessions 1-5 of the module.
Sellmore supermarket wants to develop its own self-checkout system. The system will look and work much like other competitor systems work (figure 1). You have been asked to develop the software for the system. This software will allow customers to check out baskets of products.
a. Using the approach to problem solving learned in class, identify:
b. In pseudo code, outline the basic steps (no more than six) involved in checking out a single product (Do not include any choice or iteration at this point).
The process of checking out will begin only if a customer presses a �Start� option on the system touch screen. Add an IF/ENDIF statement to your pseudo code that will account for the customer pressing the start option. Please note that if the customer does not press start, then NONE of the steps in the checkout process should happen.
Add an IF/ELSE/ENDIF statement to show the different payment methods available to the customer. The system should prompt the customer for their payment method (card or cash). Depending on the payment method it should prompt the customer to enter their card or to enter cash. Create and initialize variables as appropriate.
Task 4 � Checkout (15%)
Use a WHILE loop to extend your solution to account for a customer checking out multiple products. Please note that there is no maximum number of products that can be checked out at Sellmore�s self-checkout. Create and initialize variables as appropriate.
Adapt your solution so that after each product is scanned, the system displays a �Pay Now� option. If this option is selected by the customer (e.g. pay now = true), then the loop exits at the next iteration and program proceeds to the payment part. Create and initialize variables as appropriate.
Task 6 � Transaction Total and Product Count (15%)
As part of the requirements of the system, it should be able to produce a transaction total price and a count of the number of products in the transaction. Extend your solution to (1) Read the product price each time a product is scanned (2) Calculate a transaction total, and display the updated total each time a product is scanned (3) Create a count of the products in a transaction, and display the updated count each time a product is scanned. Create and initialize variables as appropriate.
Task 7 � Bagging Area (25%)
In typical self-checkout systems, as a security measure, a transaction is only allowed to continue if a customer places a scanned product into the bagging area. The bagging area, in reality, is actually a set of weighing scales. The system uses these scales and the product weight to determine whether the product has been placed in the bagging area or not. If the product has not been placed in the bagging area, then a message that says something like �Please place product in the bagging area� is displayed and the user cannot continue his/her transaction. If the product is detected in the bagging area, then the transaction is allowed to continue. Using the following variables expand your solution to force customers to place products into the bagging area.