The Flight Management System is a C++ application designed to handle comprehensive airline operations, including airport management, flight schedules, plane configurations, customer reservations, ticketing, waiting lists, and discount offers.
It utilizes object-oriented programming concepts such as classes, inheritance, dynamic memory, and data structures (linked lists, binary search trees, and arrays) to manage data efficiently and simulate a real-world flight reservation system.
- Add, update, and delete customers
- Manage airports, flights, and planes
- Reserve, cancel, or change flight bookings
- Handle ticket generation, pricing (by class), and discounts
- Manage passenger trees and waiting lists
- Load and save system data using file I/O
- Offer automatic seat allocation and seat availability checking
- View customer profiles and travel statistics
The project consists of the following main components:
| Component | Description |
| Airport
| Represents an airport with relevant details like name, country, weather, and distance to Beirut |
| Plane
| Manages plane-specific data like seat configuration and mileage |
| Flight
| Stores flight details, passengers (BST), and waiting list (linked list) |
| Customer
| Represents customer profiles with history and mileage tracking |
| Ticket
| Contains booking details, costs, seat info, and discount status |
| Offer
| Encapsulates offers like miles-based or flight-count-based discounts |
| AirlineSystem
| Core engine integrating all components and orchestrating user interaction |
The following files are used for persistent storage:
airports.txt
planes.txt
flights.txt
customers.txt
offers.txt
tickets.txt
passengers.txt
waitinglists.txt
- Compile using a C++ compiler (e.g., g++, clang++)
- Ensure all the required
.txt
data files are in the same directory - Run the executable
- Follow the interactive console menu to manage the airline system
- C++ (OOP)
- File I/O streams (
fstream
) - Data structures (linked lists, BSTs, arrays)
- Dynamic memory allocation
- Custom parsing of input text data
- GUI Interface using Qt or SFML
- Integration with a database (e.g., SQLite or MySQL)
- Online booking system with web backend (e.g., Django or Node.js)
- Real-time flight status and check-in functionality
- QR code or e-ticket generation
- Role-based access for admins and users
- Enhanced error handling and validation
- Unit tests and CI integration
Ayesha Younas FAST-NU Lahore | BSCS 2023
We welcome contributions from the open-source community. If you'd like to collaborate on this project, please adhere to the following guidelines:
- Fork the repository.
- Create a new branch for your feature or bug fix.
- Implement your changes and commit them with descriptive messages.
- Push your branch to your fork and submit a pull request.