RU Hungry is a Java-based restaurant management simulation where you manage a fictional restaurant by handling the menu, stock, transactions, and guests. The project involves hash tables, separate chaining, object referencing, and OOP principles. Your task is to run RU Hungry for a day by seating guests, taking orders, managing donations, and restocking the pantry.
- Menu Management: Create and manage the restaurant's menu using hash tables and linked lists.
- Stock Management: Handle the stockroom inventory with efficient searching, adding, and updating using hash tables with chaining.
- Transactions: Record all transactions (orders, donations, restocks) in a linked list for end-of-day receipts.
- Seating Guests: Efficiently seat guests based on table availability and manage the waiting queue.
- Order Processing: Check dish availability and process customer orders, including handling out-of-stock scenarios.
- Donations: Manage donations to the Rutgers Pantry, ensuring sufficient profit for donations to occur.
- 1D Arrays: For restaurant seating and menu categories.
- Hash Tables: For managing stock with ingredient IDs as keys.
- Linked Lists: For menu items, stock items, and transactions.
- Queues: For managing the waiting list of guests.
- Object-Oriented Programming (OOP)
- Hash Tables and Separate Chaining
- Linked Lists and Queues
- File I/O for reading input files
- Efficient searching and updating mechanisms