The Vending Machine Simulation is a Java application designed to demonstrate fundamental data structures, object-oriented programming principles, and software design concepts.
Users can browse available products, simulate purchases, process payments, and receive transaction feedback while the application manages inventory through modular Java classes.
Developed as part of the Data Structures & Algorithms course, this project emphasizes clean software architecture, maintainable code, and practical problem-solving.
- Browse available products
- Simulate customer purchases
- Process transactions
- Manage inventory
- Object-Oriented Java architecture
- Demonstrates common data structure concepts
This project explores multiple approaches to solving the same vending machine problem while comparing their trade-offs in simplicity, scalability, and performance.
| Implementation | Search Complexity | Notes |
|---|---|---|
| Array | O(n) | Simple, lightweight implementation |
| ArrayList | O(n) | Dynamic storage with improved flexibility |
| HashMap | O(1)* | Fast key-based lookups for scalable inventories |
*Average-case lookup complexity.
- Java
- Object-Oriented Programming (OOP)
- Data Structures & Algorithms
- IntelliJ IDEA
- Git
- GitHub
docs/
└── proposal.md
src/
├── Main.java
├── Item.java
└── VendingMachine.java
README.md
.gitignore
- Clone the repository
git clone https://github.com/kaylaereyes/vending-machine-simulation.git-
Open the project in IntelliJ IDEA
-
Run the main Java class.
Project proposal:
📄 docs/proposal.md
Additional documentation may be added as the project evolves.
- Kayla Reyes
- Viktor Karpenko
- Andrew Lee
Created for the Data Structures & Algorithms course at SUNY Empire State University under the instruction of Dr. Todd Wolfe.
Project ideas, implementation, and design decisions were collaboratively developed by the project team.