Skip to content

This C++ project implements a priority queue-based system for managing widget orders. It's designed to simulate a real-world order processing system where orders are prioritized based on certain criteria.

Notifications You must be signed in to change notification settings

danieldotwav/PriorityQueue

Repository files navigation

PriorityQueue

This C++ project implements a priority queue-based system for managing widget orders. It's designed to simulate a real-world order processing system where orders are prioritized based on certain criteria.

Table of Contents

  1. Features
  2. System Requirements
  3. Installation and Setup
  4. Usage
  5. Technical Implementation
  6. Contributing
  7. Contact Information

Features

Screenshot 2023-12-19 213908

  • Priority Queue Implementation: Efficiently manages orders based on priority.
  • Order Processing: Simulates daily order processing in a business environment.
  • User-Friendly Interface: Provides an easy-to-navigate menu for placing and viewing orders.

System Requirements

  • Operating System: Windows, Linux, or MacOS.
  • Compiler: C++ compiler (GCC, Clang, MSVC) with C++11 support or higher.

Installation and Setup

  1. Clone the repository: git clone [repository-url](https://github.com/danieldotwav/PriorityQueue)].
  2. Navigate to the project directory.
  3. Compile the project: g++ -o priorityQueue Source.cpp
  4. Run the compiled executable: ./priorityQueue.

Usage

Main Menu

The main menu offers options to place a new order, view existing orders, and process daily orders.

Placing Orders

  • Select 'Place Order' from the main menu.
  • Follow the prompts to specify order details.
  • The order is then added to the priority queue.

Processing Daily Orders

  • Select 'Process Orders' to simulate the processing of daily orders.
  • Orders will be processed based on their priority.

Technical Implementation

Technical Implementation

This section outlines the sophisticated C++ concepts and techniques employed in the development of the priority queue-based widget ordering system.

Priority Queue and Heap Data Structures

  • Custom Priority Queue Implementation: The project features a custom priority queue, specifically tailored for order management. This demonstrates an understanding of data structure design and application.
  • Heap Data Structure: Utilizes a heap data structure to efficiently manage the priority queue, showcasing knowledge in advanced data structures.

Object-Oriented Programming

  • Classes and Objects: The system is designed using object-oriented principles, with classes like Order and PriorityQueue representing different entities and functionalities.
  • Operator Overloading: Implements operator overloading (e.g., < and <= in the Order class) to compare orders based on rush status, demonstrating an understanding of C++'s powerful object-oriented features.

Exception Handling

  • Robust Exception Handling: Implements custom exception classes (FullPQ and EmptyPQ) to manage exceptional situations in the priority queue operations, ensuring the robustness of the system.

Advanced C++ Features

  • Use of Standard Template Library (STL): Although the core data structures are custom-implemented, the code reflects an understanding of the STL, evident in the usage of standard headers and namespaces.
  • Dynamic Memory Management: The design likely involves dynamic memory management, crucial for handling data structures like heaps and priority queues.

Algorithmic Implementation

  • Efficient Algorithms: Implements efficient algorithms for re-heapifying the heap (reheapUp and reheapDown), crucial for maintaining the heap property of the priority queue.

Code Structure and Style

  • Modular Code Design: The project is structured into multiple header and source files, each serving a distinct purpose, which is a good practice for maintaining code modularity and readability.

Contributing

Contributions to this project are welcome. Please follow the standard fork-and-pull request workflow. Make sure to adhere to coding standards and add tests for new features.

Contact Information

For any queries or support related to this project, please contact:

  • Developer: [Daniel Rivas]
  • GitHub Profile: [github.com/danieldotwav]

About

This C++ project implements a priority queue-based system for managing widget orders. It's designed to simulate a real-world order processing system where orders are prioritized based on certain criteria.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages