This project was jointly developed by Computer Engineering and Industrial Engineering students as part of a collaborative term assignment.
This is a Java-based console application developed for the term project of ENM320 Production and Operations Planning II and BIM208 Computer Programming IV.
The goal of the project is to determine the optimal order quantity (Q) and reorder point (R) using user-defined cost parameters and demand data. The system iteratively calculates inventory decisions based on normal distribution and loss function values using a Z-chart lookup table.
-
User input for cost values and lead time parameters
-
Automatic calculation of:
- Holding cost
- Annual demand
- EOQ (Economic Order Quantity)
- Service level (F(Z))
- Z and L(Z) values from external table
- Reorder Point (R) and Safety Stock
- Expected shortage per cycle
n(R)
-
Iterative improvement of Q and R until convergence
-
Final results printed on screen
InventoryOptimizerProject/
βββ src/
β βββ Algorithm.java # Main execution file
β βββ Calculations.java # Contains all logic and formulas
βββ ZChartData.txt # Lookup table for Z, F(Z), and L(Z)
βββ README.md # This file
βββ Final-Report.pdf # Final Report
βββ .gitignore # To exclude IDE and build files
- Clone this repository or download the ZIP.
- Open in any Java IDE.
- Run
Algorithm.java. - Follow the prompts in the console.
You can test the software using the following parameters:
- Unit cost: 20
- Ordering cost: 100
- Penalty cost: 20
- Interest rate: 0.25
- Lead time: 4 months
- Lead time demand: 500
- Std. deviation: 100
Optimal Order Quantity (Q): 281.42
Reorder Point (R): 668.00
Safety Stock: 168.00
Number of Iterations: 1