🗓️ Project period: 2022–2023
A desktop application for analysing queueing systems, written in C++ with a Qt GUI. Given the parameters of a multi-server queueing model, the app computes its performance characteristics step by step.
The screenshot below comes from the built Qt application after calculating the example λ = 3, μ = 2, m = 2, N = 5.
Queueing theory describes systems where customers arrive, wait for a free server, get served, and leave — think checkout lines, call centers, or packets hitting a router. This app models an M/M/m/(m+N) system: Poisson arrivals, exponential service, m parallel servers, and N waiting places. The total system capacity is therefore m+N, and arrivals that find all those places occupied are rejected.
- 🖥️ Qt GUI (
mainwindow.ui) for entering parameters and reading results - 🧮 Model parameters:
λ(lambda) — arrival rateμ(mu) — service ratem— number of service channels (servers)N— number of waiting places (total capacity:m+N)
- 📈 Full set of computed characteristics (
Stepsclass) — offered load ρ, idle probability p₀, the state-probability distribution p₁…p_(m+N), rejection probability, mean number of busy/idle channels, mean number in system and in queue, and mean times in the queue (T_f) and in the system (T_s) - 🔢 Numerically stable probabilities — state weights are normalized in logarithmic space, avoiding factorial overflow for larger inputs
For example, entering λ = 3, μ = 2, m = 2, N = 5 describes a two-server system with five waiting places and a total capacity of seven customers. The app then reports, step by step:
- the offered load ρ and the idle probability p₀,
- the probability of each state p₁ … p₇ (and the rejection probability — the chance an arriving customer finds the system full),
- the average number of customers in the system and waiting in the queue,
- the average time a customer spends waiting (T_f) and in the system overall (T_s).
Change any parameter and every characteristic is recomputed.
| Path | Description |
|---|---|
src/main.cpp |
Application entry point |
src/mainwindow.{h,cpp,ui} |
Qt main window — UI and event handling |
src/Steps.{hpp,cpp} |
Queueing-model computation (all characteristics) |
src/Factorial.{hpp,cpp} |
Legacy helper retained in the build; the current Steps calculations do not use factorials |
src/global.hpp |
Shared constants and includes |
Clocker.qss |
Legacy stylesheet asset (the current entry point does not load it) |
docs/queue-calculator.png |
Screenshot from the built Qt application |
CMakeLists.txt |
CMake build configuration |
git clone https://github.com/Kamilr616/ans-queue-algorithm.git
cd ans-queue-algorithm
cmake -B build -S . -DBUILD_TESTING=ON
cmake --build build --config Release
ctest --test-dir build -C Release --output-on-failureThe ctest command runs focused checks for the queueing calculations. Alternatively, open CMakeLists.txt directly in Qt Creator and press Run.
| Member | Role | Links |
|---|---|---|
| Kamil Rataj | Author & maintainer | GitHub · LinkedIn |
| Dawid | Co-author | GitHub |
This project is licensed under the MIT License.
