Skip to content

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 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.

License

Notifications You must be signed in to change notification settings

Hassan-Tarek-dev/Graph-Management-System

Repository files navigation

🧩 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

About

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 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.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages