Create three (3) one-dimensional arrays: Item Number, Quantity-on-hand and Unit Cost for 15 items. Input data into all the arrays. After the data is entered, read an arbitrary number of records containing an item number and quantity-ordered. If the quantity ordered for the item is available, display the item number and total cost of quantity ordered. Also update the quantity-on-hand array by subtracting the quantity ordered from the quantity-on-hand for that item. If the quantity ordered were more than the quantity-on-hand, display item number and message stating that the item Number is under stocked and unavailable for shipment. After all records has been processed, output item number of all items that must be reordered and the reorder quantity for each. The reorder point for an item number is when the quantity-on-hand falls below 40.Use item number as -1 to signal the end of input.

To complete this task, we need to write a program in a programming language of your choice. However, I can provide you with a step-by-step guide on how to approach this problem:

1. Declare three arrays: `itemNumber`, `quantityOnHand`, and `unitCost`, each with a size of 15. These arrays will store the item number, quantity on hand, and unit cost for each item.

2. Prompt the user to input the data for all 15 items. You can use a loop to iterate through the arrays and ask the user for each item's item number, quantity on hand, and unit cost. Store these values in their respective arrays.

3. Create a loop to read an arbitrary number of records containing an item number and quantity ordered. Inside the loop, prompt the user to enter the item number and quantity ordered.

4. Search for the entered item number in the `itemNumber` array. If found, check if the quantity ordered is available (i.e., less than or equal to the quantity on hand). If it is, calculate the total cost of the quantity ordered by multiplying the quantity ordered by the unit cost for that item. Display the item number and total cost.

5. If the quantity ordered is greater than the quantity on hand, display a message stating that the item is understocked and unavailable for shipment.

6. Update the `quantityOnHand` array by subtracting the quantity ordered from the quantity on hand for that item. This ensures that the quantity on hand is correctly updated for future checks.

7. Repeat steps 3-6 until the user enters -1 as the item number, indicating the end of input.

8. After all records have been processed, create a loop to iterate through the `quantityOnHand` array. Check if the quantity on hand for each item falls below 40 (reorder point). If it does, output the item number and indicate the reorder quantity required.

9. End the program.

Keep in mind that the exact implementation may vary depending on the programming language you choose. It's important to follow the language-specific syntax and rules while implementing the steps outlined above.