Vending Machine — Simple#
Problem statement (interviewer prompt)
Design the software for a vending machine: insert coins / scan card, browse + select an item, validate stock, vend, return change. Model the state machine (Idle / Selecting / Dispensing / Refunding), inventory, payment methods, and the maintenance interface.
classDiagram
class VendingMachine {
+select(item)
+pay(amount)
+dispense()
+cancel()
}
class Inventory
class CashRegister
class State
VendingMachine --> Inventory
VendingMachine --> CashRegister
VendingMachine --> State