https://github.com/mohabashraf-byte/mini-waslni-gui
A pathfinding visualizer with a Qt GUI implementing BFS, DFS, Dijkstra's, and A* algorithms to find the shortest path.
https://github.com/mohabashraf-byte/mini-waslni-gui
bfs-algorithm cpp graph qt5
Last synced: about 1 month ago
JSON representation
A pathfinding visualizer with a Qt GUI implementing BFS, DFS, Dijkstra's, and A* algorithms to find the shortest path.
- Host: GitHub
- URL: https://github.com/mohabashraf-byte/mini-waslni-gui
- Owner: MohabASHRAF-byte
- Created: 2023-05-09T22:04:00.000Z (about 3 years ago)
- Default Branch: main
- Last Pushed: 2023-05-24T10:53:00.000Z (about 3 years ago)
- Last Synced: 2025-07-24T07:57:25.847Z (11 months ago)
- Topics: bfs-algorithm, cpp, graph, qt5
- Language: C++
- Homepage:
- Size: 286 KB
- Stars: 0
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Mini Waslni Project
This is a data structure project developed in C++ with a GUI implemented using Qt5. The project is designed for Ain Shams University and aims to provide functionality for navigating and editing a map of cities. It utilizes various algorithms such as optimized BFS, optimized DFS, Dijkstra, and Floyd-Warshall to find the shortest paths between cities.
## Features
The Mini Waslni project consists of two main menus:
1. Navigate Menu: This menu allows the user to find the shortest path between a source city and a destination city using different algorithms. The program visualizes the path on a grid and displays its cost. The following algorithms are available:
- Optimized BFS (Breadth-First Search)
- Optimized DFS (Depth-First Search)
- Dijkstra
- Floyd-Warshall
2. Edit Menu: This menu provides functionality for editing the map of cities. The following operations are supported:
- Add City: The user can add a new city by entering a unique name and its position in the x and y axes.
- Add Edge: This allows the user to add a road between two cities. The user can specify if the road is one-way or bi-directional.
- Delete City: The user can select a city from a combo box and delete it along with its connections to other cities.
- Delete Edge: This operation removes a road between two cities.
## Saving Updates
The program ensures that any updates made to the map are saved using files. This means that the changes made by the user, such as adding or deleting cities and roads, will be persisted and can be loaded the next time the program runs.
## Dependencies
To build and run the Mini Waslni project, the following dependencies are required:
- C++ compiler that supports C++11 or later
- Qt6 library
## Build Instructions
1. Ensure that the required dependencies are installed on your system.
2. Clone the Mini Waslni project repository.
3. Open the project in your preferred C++ IDE or editor.
4. Build the project using the C++ compiler, linking against the Qt5 library.
5. Run the compiled executable.
## Usage
Upon launching the Mini Waslni program, you will be presented with a graphical user interface that contains the two main menus: Navigate and Edit.
- In the Navigate menu, select the source city and destination city to find the shortest path between them using the desired algorithm.
- The program will display the shortest path on the grid and provide information about its cost.
- In the Edit menu, you can add new cities, add or delete roads between cities, and delete existing cities.
- Any updates made to the map will be saved automatically.
Please refer to the in-app help or documentation for more detailed instructions on how to use the Mini Waslni project.
## Acknowledgments
This project was developed as a part of the data structure course at Ain Shams University.