# Java Vending Machine Project: OOP Concepts & Simulation
> Explore a Java mini project simulating a Smart Vending Machine. Learn about OOP principles, state management, and transaction logic in Java.

Tags: java-project, vending-machine-simulation, object-oriented-programming, java-source-code, software-architecture, coding-tutorial
## Slide 1: Smart Vending Machine Java Project
* Course: BCS306A - Object Oriented Programming with Java.
* Academic project presented at Smt. Kamala & Sri Venkappa M. Agadi College of Engineering and Technology.

## Slide 2: Introduction
* Simulation of an automated dispenser for snacks and beverages.
* Purpose: Demonstrate encapsulation, state management, and exception handling in Java.

## Slide 3: Problem Statement
* Addresses high labor costs of manual counters.
* Reduces human error in cash transactions.
* Provides 24/7 access to goods through automation.

## Slide 4: Objectives
* Design class structures for Products and Inventory.
* Implement logic for stock and fund validation.
* Demonstrate the State Pattern (Idle, Select, Pay, Dispense).

## Slide 5: Project Scope
* Covers inventory maintenance, transaction processing, and change calculation.
* Limited to console-based simulation without physical hardware or credit card APIs.

## Slide 6: Technologies Used
* Language: Java JDK 17+.
* IDE: Eclipse / IntelliJ IDEA / NetBeans.
* Concepts: Java Collections Framework (HashMap/ArrayList), Enums, and Interfaces.

## Slide 7: System Architecture
* Sequential control flow: Start -> Input -> Process (Validation) -> Action (Dispense/Error) -> Termination.

## Slide 8: Implementation (Core Logic)
* Features a `VendingMachine` class using `HashMap` for pricing.
* Includes methods for `insertMoney(int amount)` and `selectItem(String code)` with fund verification.

## Slide 9: Output Screens
* Step-by-step console guide: Menu display, money confirmation, and transaction success with change.

## Slide 10: Results & Analysis
* Achieved 100% calculation accuracy.
* Efficient error handling for 'Out of Stock' scenarios.
* Significant reduction in transaction time: ~15 seconds (automated) vs ~120 seconds (manual).

## Slide 11: Conclusion
* Successfully validates OOP for automation problems.
* Provides a scalable foundation for future hardware or database integration.
---
This presentation was created with [Bobr AI](https://bobr.ai) — an AI presentation generator.