Problem Statement I need a Grocery store simulator. The store has eight checkout lanes, one of which is always marked \Express: nine items or less" and one of which is always marked \Express: nineteen items or less." Not all of the checkout lanes are always stated. The time taken for a cashier to complete a transaction with a customer depends on the number of items that the customer has, whether the customer is paying by (a) cash, (b) cheque, or (c) debit card, and a small random factor. To begin with, assume that it takes a cashier 5s per item, and that it takes a customer 1 minute to pay by cash, 2 minutes to pay by debit card, and 2.5 minutes to pay by cheque. The time taken for a customer to pass through a checkout lane also depends on how busy the checkout registers are when the customer decides to enter a lane, and the time to process the customers ahead in the lane. The company wants to be able to run the same pattern of customers through various different cashier configurations to see what configuration works best, so they want three separate programs. The frst program creates a file specifying the customers for a given simulation. The file should list: the customers in the order of their time of arrival at the checkouts, the number of items that the customer intends to buy, and the method of payment that the customer intends to use. The second program creates a file specifying the configuration of cashiers for a given simulation. This file should list when a cashier comes on duty, and when the cashier goes off duty. For simplicity, assume that there are a fixed number of cashiers available at any given time, and that they are all tending tills. The third program runs a simulation by reading a customer file and cashier file and simulating and timing the interactions. At a minimum, the third program should measure how often cashiers are idle and how often customers must wait a long time to be served.
## Deliverables
1) Complete and fully-functional working program(s) in executable form as well as complete source code of all work done. 2) Installation package that will install the software (in ready-to-run condition) on the platform(s) specified in this bid request. 3) Complete ownership and distribution copyrights to all work purchased. 4) The program must simple, easy to use and modify, and must run in a dos window. This program is not to be GUI. Code must be done in C++ and must be able to run on a linux machine.
## Platform
Code must be done in C++ and must be able to run on a linux machine. The program must run in a dos window or shell window and must not be GUI.