#include #include typedef enum { STATE_ready_for_item, STATE_scanning, }state; typedef enum { tissues, pasta, tomato_sauce, bread, butter, batteries, toothbrush, ITEM_TYPE_COUNT, }item; int main() { bool CustomerHasItems = true; int TimePassed = 0; #define CUSTOMER_ITEM_COUNT 5 // This declares a constant item CustomerItems[CUSTOMER_ITEM_COUNT] = {tissues, pasta, tomato_sauce, bread, butter}; // NOTE: time is in seconds item Time[ITEM_TYPE_COUNT]; Time[tissues] = 1; Time[pasta] = 2; Time[tomato_sauce] = 3; Time[bread] = 10; Time[butter] = 2; Time[batteries] = 2; Time[toothbrush] = 1; int ItemsLeft = CUSTOMER_ITEM_COUNT; state CurrentState = STATE_ready_for_item; // The state the cashier is in while(CustomerHasItems) { // TODO: Implement the state machine here int CurrentItemIndex = CUSTOMER_ITEM_COUNT - ItemsLeft; item CurrentItem = CustomerItems[CurrentItemIndex]; TimePassed += Time[CurrentItem]; ItemsLeft--; // Print this only while scanning printf("Time since start: %d. Scanning a product. %d to go.\n", TimePassed, ItemsLeft); if(!ItemsLeft) CustomerHasItems = false; } }