### Airport Management System – Java
A console-based Airport Management System developed using Java and Object-Oriented Programming (OOP) principles.
The system provides functionality for managing airport passengers, pilots, flight attendants, and flights through an interactive menu. It allows users to add employees and passengers, create flights, assign pilots and flight attendants, book passengers, and update flight statuses.
The project also includes validation and custom exception handling to prevent invalid operations, such as booking a passenger when a flight is full, booking the same passenger twice, or making an invalid flight status transition.
Passenger and flight information can be stored and loaded using text files, helping preserve data between program sessions. The system also generates a daily flight report and tracks completed flights.
### Main Features
* Add and manage passengers.
* Add pilots and flight attendants.
* Create flights with assigned pilots and flight attendants.
* Book passengers on flights.
* Check flight capacity and prevent duplicate bookings.
* Manage flight statuses: Scheduled, Boarding, Departed, and Cancelled.
* Custom exception handling for invalid operations.
* Save and load passenger data using text files.
* Save flight logs and generate a daily report.
* Search for passengers, pilots, and flights.
### Technologies & Concepts
* Java
* Object-Oriented Programming (OOP)
* Inheritance
* Polymorphism
* Encapsulation
* Abstract Classes
* Interfaces/Collections
* ArrayList and Arrays
* Exception Handling
* Custom Exceptions
* File Handling
* Enums
* Console-based User Interface