AirControlX is a multi-threaded airport simulation and air traffic control management system written in C++11. It models real-time flight scheduling, runway assignment, and phase transitions using concurrent threads and synchronization primitives.
- Multi-threaded flight simulation with individual threads for each aircraft.
- Centralized manager monitoring flight progress and thread lifecycles.
- Priority-based scheduling queue prioritizing emergency and VIP flights.
- Thread-safe runway access using POSIX mutexes and condition variables.
- Phase-based simulation mapping flight states from holding and approach to landing, taxiing, and gate arrival/departure.
- Speed restriction and violation tracking system with airline billing.
main.cpp: Entry point of the simulation that configures airlines and runs the manager.CMakeLists.txt: Build configuration file.src/: Core source files containing class declarations and inline implementations:Aircraft.h: Defines flight properties, phase simulation, speed violation checks, and thread execution.Airline.h: Represents airline entities, handles fleets, and manages billing.FlightScheduler.h: Implements priority-queue based arrival/departure scheduling and re-ordering for emergencies or VIPs.Runway.h: Manages runway state, access control, and usage compatibility rules.Manager.h: Coordinates the overall simulation, starts threads, and manages runway requests.
- C++11 compatible compiler (such as GCC or Clang)
- CMake 3.5 or higher
- SFML 2.5 (graphics, window, and system components)
- POSIX threads library (pthread)
To build the project using CMake:
-
Create a build directory:
mkdir build cd build -
Generate the build files:
cmake ..
-
Compile the project:
make
-
Run the executable:
./AirControlX