🧩 Graph Management System (C++)
The Graph Management System is a fully interactive and modular C++ console application designed to model and manipulate graph data structures efficiently. It applies advanced Object-Oriented Programming (OOP) concepts and multiple data structures to build a scalable and realistic system for representing real-world networks such as cities, routes, or connections between entities.
🚀 Overview
This system allows users to:
Create and manage graphs dynamically.
Add, update, or delete vertices (cities) and edges (connections).
Display full graph data in a structured way.
Check neighbor relationships between nodes.
Generate and visualize the Minimum Spanning Tree (MST) of the graph.
The program is entirely menu-driven, providing a smooth command-line experience that lets users interact with the system intuitively — without requiring external libraries or GUIs.
🧠 Technical Design
The project is built using core OOP principles:
Encapsulation – Each class (Vertex, Edge, Graph) manages its own data and behavior.
Abstraction – Complex graph logic is hidden behind clean, reusable interfaces.
Composition – The Graph class is composed of Vertex and Edge objects to maintain structure and clarity.
Constructor overloading – Ensures flexibility when creating and initializing graph components.
Internally, the system uses Adjacency Lists implemented via STL vectors and maps to store connections efficiently.
⚙️ Algorithms & Data Structures
To perform graph operations and optimizations, the system utilizes:
Prim’s Algorithm for generating the Minimum Spanning Tree (MST), selecting the smallest weighted edges while ensuring full connectivity.
Traversal Logic for checking neighbors and displaying connectivity between vertices.
Custom Edge and Vertex classes for encapsulating node and link information.
🎯 Purpose
This project demonstrates how combining data structures, algorithms, and OOP design can lead to efficient and maintainable software architecture. It’s a strong example for students and developers exploring:
Graph theory in practical applications.
Clean and modular C++ programming.
Building scalable console-based systems.
🧩 Tech Stack
Language: C++
Paradigm: Object-Oriented Programming
Core Concepts: Graphs, Adjacency Lists, MST (Prim’s Algorithm), Dynamic Memory Management