The Airport Management System is a C++ application designed to efficiently manage flights, passengers, and luggage using advanced data structures. This system utilizes linked lists, circular lists, stacks, and queues to handle various operations and processes within an airport setting.
- Dynamic Memory Management: Proper use of pointers and dynamic memory allocation in C++.
- Data Structures: Implementation of linear data structures to handle different airport operations.
- Graphviz Integration: Visualization of data structures through generated reports.
- JSON Parsing: Reading input data for airplanes and passengers from JSON files.
- C++ compiler (g++ recommended)
- Graphviz
- Make
- Install MinGW and ensure
mingw32-gcc-g++
is selected. - Add
C:\MinGW\bin
to your system PATH. - Install Graphviz.
sudo apt-get update
sudo apt-get install g++
sudo apt-get install graphviz
- Install Xcode from the App Store.
- Install the Xcode command line tools:
xcode-select --install
- Install Graphviz using Homebrew:
brew install graphviz
- Clone the repository:
git clone https://github.com/DominicRuano/202200075_EDD_Practica.git
cd ..../202200075_EDD_Practica
- Build the project:
c++ .\main.cpp -o .\main
- Run the application:
.\main.exe
- Load input files (JSON format) for airplanes and passengers through the application menu.
The airplanes' information should be provided in a JSON file with the following format:
[
{
"vuelo": "A100",
"numero_de_registro": "N12345",
"modelo": "Boeing 737",
"fabricante": "Boeing",
"ano_fabricacion": 2015,
"capacidad": 180,
"peso_max_despegue": 79000,
"aerolinea": "Airlinex",
"estado": "Mantenimiento"
},
{
"vuelo": "A102",
"numero_de_registro": "A54321",
"modelo": "Airbus A320",
"fabricante": "Airbus",
"ano_fabricacion": 2018,
"capacidad": 150,
"peso_max_despegue": 77000,
"aerolinea": "Airlinex",
"estado": "Mantenimiento"
}
]
The passengers' information should be provided in a JSON file with the following format:
[
{
"nombre": "John Doe",
"nacionalidad": "Estados Unidos",
"numero_de_pasaporte": "A12345678",
"vuelo": "A100",
"asiento": 10,
"destino": "New York",
"origen": "Los Angeles",
"equipaje_facturado": 2
},
{
"nombre": "Jane Smith",
"nacionalidad": "Reino Unido",
"numero_de_pasaporte": "B98765432",
"vuelo": "A200",
"asiento": 1,
"destino": "Londres",
"origen": "Paris",
"equipaje_facturado": 0
}
]
Reports are generated using Graphviz and can be accessed through the application menu. Ensure Graphviz is properly installed and added to your system PATH.
Contributions are welcome! Please fork this repository and submit a pull request for any improvements or bug fixes.