Skip to content

A C++ console application for managing flights, customers, planes, tickets, and offers using OOP and dynamic data structures with file-based data storage.

Notifications You must be signed in to change notification settings

ayeshayyyy/Flight-Management-System

Repository files navigation

✈️ Flight Management System

📄 Description

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.


⚙️ Features

  • 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

🧱 Project Structure

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 |


📂 File Management

The following files are used for persistent storage:

  • airports.txt
  • planes.txt
  • flights.txt
  • customers.txt
  • offers.txt
  • tickets.txt
  • passengers.txt
  • waitinglists.txt

🚀 How to Run

  1. Compile using a C++ compiler (e.g., g++, clang++)
  2. Ensure all the required .txt data files are in the same directory
  3. Run the executable
  4. Follow the interactive console menu to manage the airline system

🔐 Technologies Used

  • C++ (OOP)
  • File I/O streams (fstream)
  • Data structures (linked lists, BSTs, arrays)
  • Dynamic memory allocation
  • Custom parsing of input text data

🛠️ Future Enhancements

  • 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

👨‍💻 Author

Ayesha Younas FAST-NU Lahore | BSCS 2023


Collaboration Guidelines

We welcome contributions from the open-source community. If you'd like to collaborate on this project, please adhere to the following guidelines:

  1. Fork the repository.
  2. Create a new branch for your feature or bug fix.
  3. Implement your changes and commit them with descriptive messages.
  4. Push your branch to your fork and submit a pull request.

Feel free to reach out if you have any questions or suggestions!

About

A C++ console application for managing flights, customers, planes, tickets, and offers using OOP and dynamic data structures with file-based data storage.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages