Imd238 Complete Merged 2
Imd238 Complete Merged 2
GROUP ASSIGNMENT:
AIRLINES RESERVATION SERVICE
PREPARED FOR:
MADAM HIDAYAH
PREPARED BY:
NAME STUDENT
NUMBER
GROUP:
KCDIM1103B
SUBMISSION DATE:
3 JULY 2024
ACKNOWLEDGEMENT
Assalamualaikum, in the name of the most gracious and merciful Allah. Alhamdulilah for
giving us the stamina and patience to complete this task with the time given by our lecturer
Madam Hidayah. We would like to extend a special thank you to our lecturer, for her time
and efforts throughout the course of the year. We are truly appreciated your helpful tips and
suggestions as finished up our first assignment for (IMD 238) Programming for information
professional we will always be grateful to you for this.
Apart of that, we would like to give my sincere thanks to our group and our classmate, who
have shown a good cooperation with us. Thanks to them because they have shared a lot of
ideas and thought about this assignment. This task will not complete without any supports
from our friends and encouragement from Madam Hidayah. Most importantly, nobody has
been more important to us in the pursuit of this assignment than the members of our family.
We would like to thank our parents, whose love and guidance with us whenever we pursue.
They are the real our role models. We also acknowledge with a deep sense of reverence, our
gratitude towards our other faculty members of the campus for their valuable suggestions
given to us in completing the project.
THANK YOU
1. INTRODUCTION OF SYSTEM
For this project, we are making an airline reservation system to make it easier for customers to
booking fight ticket by online. The system is named by . As everyone knows that buying something
by online is a trend today. So, we are planning something that is efficient for customer. The advent
of online airline systems has revolutionized the way people book and manage air travel, offering
unprecedented convenience and efficiency. These digital platforms provide travelers with the
ability to search for flights, compare prices, and complete bookings from the comfort of their
homes or on the go, eliminating the need for physical visits to travel agencies or ticket counters.
With features such as real-time updates on flight status, automated check-ins, and personalized
travel alerts, online airline systems enhance the overall travel experience by providing seamless,
user-friendly interfaces. Additionally, these systems support the airlines by optimizing operations,
reducing costs, and enabling better resource management. As technology continues to advance,
online airline systems are set to further transform the aviation industry, making air travel more
accessible and efficient for everyone.
Uleungdo Air systems are the backbone of modern air travel operations, comprising a
suite of software and technologies vital for airline management. These systems
encompass reservations, ticketing, flight scheduling, crew management, maintenance,
and more, ensuring smooth and efficient airline operations.
At the heart of these systems is the Passenger Service System (PSS), or reservation
system, which manages flight inventory, passenger bookings, and seat assignments. It
enables customers to search for flights, make reservations, and purchase tickets
seamlessly.
Revenue management systems analyze demand and set pricing and inventory controls
to maximize airline revenue, while baggage handling systems track and manage
baggage throughout the journey.
Customer Relationship Management (CRM) systems store and manage customer data,
facilitating personalized services and marketing efforts to enhance customer satisfaction
and loyalty.
Overall, airline systems play a critical role in ensuring the smooth functioning of
airlines, optimizing operations, enhancing safety, and delivering a seamless travel
experience for passengers.
1.2.Objective of System
"Our mission is to provide a seamless, intuitive, and reliable online airline reservation
system that empowers travelers to easily plan and manage their journeys, ensuring
convenience, efficiency, and personalized service at every touchpoint. We strive to enhance
the travel experience through innovative technology, exceptional customer support, and a
commitment to safety and reliability."
We will delight our guest with genuine care and quality service. The simple vision is be the
world’s best airlines and being the best and aslo put the spirit of " Integrity, Performance,
Innovation" for every customer.
Our airline reservation system offers numerous advantages that significantly enhance the
travel experience for our customers. With an intuitive and user-friendly interface, travelers
can effortlessly search for flights, compare fares, and book tickets within minutes, all from
the comfort of their own homes or on the go. The system provides real-time updates on flight
availability, pricing, and schedules, ensuring that users always have access to the most
current information. Automated check-in and mobile boarding passes streamline the airport
experience, reducing wait times and stress. Additionally, personalized notifications keep
travelers informed about gate changes, delays, and other important updates. Our system also
supports multiple payment options and currencies, catering to a global clientele. By
integrating advanced security measures, we ensure that all transactions are safe and
confidential. Overall, our airline reservation system is designed to provide convenience,
efficiency, and peace of mind, making air travel more accessible and enjoyable for everyone.
Implementing and maintaining an airline reservation system comes with several challenges.
Protecting sensitive customer data and ensuring secure transactions to prevent breaches and
fraud is paramount. The system must handle high traffic volumes, especially during peak
booking periods, without compromising performance. Ensuring compatibility and seamless
integration with existing airline and third-party systems, such as payment gateways and
CRM systems, is also crucial. Adherence to industry regulations and standards, including
data protection laws and aviation safety requirements, must be maintained. Continuous
improvement of the user interface to ensure it is intuitive and user-friendly is necessary to
reduce friction in the booking process. Maintaining system uptime and ensuring reliable
performance to avoid disruptions and ensure customer trust is a constant concern.
Providing efficient and effective customer support to handle a wide range of issues and
queries is essential. Keeping up with rapidly evolving technology and incorporating new
features to stay competitive is a continuous process. Supporting multiple languages,
currencies, and regional preferences to cater to a diverse customer base is important for
globalization. Finally, balancing the costs of development, maintenance, and upgrades
while delivering a high-quality service is a significant challenge.
2.1) IT ADMIN INTERFACE
Access and modify visitor data, such as preferences, special requests, and contact information.
Keep track of past visitor stays for individual attention. Adopt and oversee security measures to
safeguard confidential information. To maintain data integrity and performance, optimise and
maintain the database. Create routine backups and put a data recovery strategy into action.
(b) Algorithm
Function adminLogin():
Display "Enter Admin Staff ID: "
Input staffIDInput
Input option
Switch option:
Case 1:
Call searchCust()
Break
Case 2:
Call newStaff()
Break
Case 3:
Call editStaff()
Break
Case 4:
Call displayTotalStaff()
Break
Case 5:
Display "Logout successful. Thank you!"
Return
Default:
Display "Invalid option. Try again."
case 2:
searchCust();
break;
case 3:
newStaff();
break;
case 4:
// Implement staff management menu
break;
case 5:
cout << "Logout successful. Thank you!\n";
break;
default:
cout << "Invalid option. Try again.\n";
}
} while (option != 5);
return;
}
}
}
(a) Analysis
2.1.2) Search Customer
Input: Search Customer, Seat Customer
Output: String Total customer
Process: bookingID== bookingID
(b) Algorithm
Function calculateTotalCust():
Open customer.dat for reading
Initialize totalCust to 0
Initialize array bookingID to store unique customer IDs
for(int i=0;i<100;i++)
{
if (username == name[i]) // Check if the provided customer name matches existing records
{
cout<<"Customer ID: "<<bookingID[i]; // Display booking ID seat number
cout<<"Seat Number: "<<seat[i];
}
}
}
int calculateTotalCust() {
ifstream custFile("customer.dat");
if (!custFile.is_open()) {
cerr << "Error opening customer.dat" << endl;
return -1; // Return -1 to indicate an error
}
(b) Algorithm
Function editStaffData(staffToEdit):
Open staff.dat for reading
Open temp.dat for writing
Display "Enter new name for staff " + staffToEdit + ": "
Input new staffname
Update staffname
Display "Enter new role for staff " + staffToEdit + ": "
Input new roles
Update roles
Display "Staff details updated successfully."
void newStaff() {
int i = 0;
return;
while (getline(inFile, staffID) && getline(inFile, password) && getline(inFile, staffname) &&
getline(inFile, roles)) {
if (staffID == staffToEdit) {
// Allow the user to update details
std::cout << "Enter new password for staff " << staffToEdit << ": ";
std::getline(std::cin >> std::ws, password); // Use getline to read entire line
std::cout << "Enter new name for staff " << staffToEdit << ": ";
std::getline(std::cin >> std::ws, staffname);
std::cout << "Enter new role for staff " << staffToEdit << ": ";
std::getline(std::cin >> std::ws, roles);
inFile.close();
outFile.close();
void editStaff() {
std::string staffIDInput;
editStaffData(staffIDInput);
int calculateTotalStaff() {
ifstream staffFile("staff.dat");
if (!staffFile.is_open()) {
cerr << "Error opening staff.dat" << endl;
return -1; // Return -1 to indicate an error
}
if (isUnique) {
// Increment total staff count only if the staff ID is unique
totalStaff++;
allStaff = totalStaff/3;
}
}
staffFile.close();
return allStaff; // Return the total number of unique staff IDs
}
void staffAmount() {
int allStaff = calculateTotalStaff();
if (allStaff == -1) {
// Handle error opening the file
cout << "Error opening staff.dat" << endl;
} else {
cout << "Total staff : " << allStaff << endl;
}
}
(d) Flowchart
START
Admin login
Login successful
Yes
No Yes
No Yes
No Yes
No
Logout
END
2.2) OPERATION INTERFACE
An airline operation interface is a critical component of airline management systems, designed to
facilitate the efficient operation and coordination of various tasks involved in running an airline.
This interface serves as a centralized platform where airline operations staff, including
dispatchers, ground crews, and maintenance personnel, can access and manage essential
information in real-time.
(b) Algorithm
Function adminMenu():
Repeat until user chooses to Logout:
Display Admin Menu options:
1. Search Flight
2. Add Flight
3. Update Flight Status
4. Edit Flight Status
5. Cancel Flight
6. Logout
Input option
Switch option:
Case 1:
Call searchFlight()
Break
Case 2:
Call addFlight()
Break
Case 3:
Call updateFlightStatus()
Break
Case 4:
Call editFlightStatus()
Break
Case 5:
Call cancelFlight()
Break
Case 6:
Display "Logout successful. Thank you!"
Return
Default:
Display "Invalid option. Try again."
switch (option) {
case 1:
viewFlight();
break;
case 2:
addFlight();
break;
case 3:
// Implement update flight status
break;
case 4:
// Implement edit flight details
break;
case 5:
// Implement cancel flight
break;
case 6:
cout << "Logout successful. Thank you!\n";
break;
default:
cout << "Invalid option. Try again.\n";
}
return;
}
}
cout << "Login failed. User not found.\n";
}
void addFlight() {
int i = 0;
cout<<"Origin : ";
cin>>origin[i];
flightFile << origin[i] << "\n" ;
cout<<"Destination : ";
cin>>destination[i];
flightFile << destination[i] << "\n" ;
cout<<"ArrivalTime : ";
cin>>destination[i];
flightFile << arrivalTime[i] << "\n" ;
cout<<"Price : ";
cin>>price[i];
flightFile << price[i] << "\n" ;
flightFile.close();
}
void viewFlight()
{
int i,found=0;
string fno;
START
Operation Login
Login Succesful
Available flight
Search Add Flight Search View Flight Search Update Flight Search FlightStatus
END
2.2.2) Add Flight
(a) Analysis
Input: String FlightNumber, Origin, Destination, DepartureTime, ArrivalTime, Price
Output: Display flight number, origin, flight destination, flight departure time, flight
arrival time and price
Process: switch option
(b) Algorithm
Begin addFlight
Input flightNumber, origin, destination, departureTime, arrivalTime, price
For each added flight
Display “Flight Number”
Display “Origin”
Display “Departure Time”
Display “Arrival Time”
Display “Price”
End For
Display “Flight Added Successfully”
End addFlight
void addFlight() {
int i = 0;
cout<<"Destination : ";
cin>>destination[i];
flightFile << destination[i] << "\n" ;
cout<<"ArrivalTime : ";
cin>>destination[i];
flightFile << arrivalTime[i] << "\n" ;
cout<<"Price : ";
cin>>price[i];
flightFile << price[i] << "\n" ;
flightFile.close();
}
(d)Flowchart
BEGIN
flightNumber[i]
origin[i]
destination[i]
departureTime[i]
arrivalTime[i]
price[i]
addFlightFile.close
END
2.2.3) View Flight
(a) Analysis
Input: String fno
Output: Flight Number, Origin, Destination, Departure Time, Arrival Time, Price
Process: if flightNumber[i] == fno
(b) Algorithm
Begin viewFlight
int i
string fno
Display Enter Flight number:
Read flightNo
For i=0;i<50;++i
if flightNo = flightNumber[i]
Display “Flight Details”:
Display “Flight Number”:
Display “Origin”:
Display “Destination”:
Display “Departure Time”:
Display “Arrival Time”:
Display “Price”:
End
else
Display Flight not found.
End viewFlight
(c) Coding c++
void viewFlight()
{
int i,found=0;
string fno;
START
int i,found=0;
string fno;
No
found Not found
Yes
flightdDetails
Yes
flightNumber
Yes
origin
Yes
destination
Yes
departureTime
Yes
arrivalTime
END
2.3) CUSTOMER INTERFACE
An airline's customer interface is designed to streamline the travel experience by offering essential features
such as flight search and booking, seat selection, online check-in, and the ability to manage bookings. It
provides real-time updates on flight statuses, gate changes, and in-flight amenities, ensuring passengers
stay informed. The interface also supports customer support services, and management of frequent flyer
programs, enhancing convenience and personalization. Integrated into mobile apps, these features optimize
accessibility and efficiency, aiming to deliver a seamless and satisfying journey for travelers.
2.3.1) Full Interface
a) Analysis
Input: Integer option
Output: checkInFlight, customerData, newCust
Process: switch option
(b) Algorithm
Begin customerLogin
int option
do
Display 1. Check In Flight
Display 2. Customer Data
Display 3. Add New Customer Booking
Display 4. Logout
Display Enter option:
Read option
switch option
case I:
Call checkInFlight
case 2:
Call customerData
case 3:
Call newCustBooking
case 4:
Display Logout successful. Thank you!
break
default:
Display Invalid option. Try again.
while option != 3
End
Begin checkInFlight
int i
Read bookingNo
Read flightNo
For i=0;i<50;++i
End
else
End checkInFlight
Begin newCust
Declare "customer.data"
i=i+1
bil=i+1
Read bookingID[1]
Display bookingID(1]
Read name[i]
Display name[i]
Read bookingID[1]
Display bookingID(1]
Read seat[i]
Display seat[i]
Read phone_no[i]
custFile.close
End newCust
#include <iostream>
#include <fstream>
#include <string>
// Function declarations
void readCustData();
void readOperationData();
void readAdminData();
void readBankData();
void readFlightAmount();
void welcomeLogin();
void customerLogin();
void operationLogin();
void adminLogin();
void bankLogin();
void checkInFlight();
void newBooking();
string name[100];
string flightNumber[100];
string bookingID[100];
string departureDateAndTime[100];
string flightClass[100];
string seat[100];
string phoneNumber[100];
int main() {
readCustData();
readOperationData();
readAdminData();
readBankData();
welcomeLogin();
return 0;
void readCustData(){
ifstream custFile("customer.dat");
getline(custFile, name[i]);
getline(custFile, bookingID[i]);
getline(custFile, flightNumber[i]);
getline(custFile, departureDateAndTime[i]);
getline(custFile, flightClass[i]);
getline(custFile, seat[i]);
getline(custFile, phoneNumber[i]);
i=i+1;
custFile.close();
void welcomeLogin() {
int option;
do {
switch (option) {
case 1:
customerLogin();
break;
case 2:
operationLogin();
break;
case 3:
adminLogin();
break;
case 4:
bankLogin();
break;
case 5:
cout << "Logout successful. Thank you!\n";
break;
default:
return;
void customerLogin() {
int option;
do {
switch (option) {
case 1:
checkInFlight();
break;
case 2:
newBooking();
break;
case 3:
break;
case 4:
break;
case 5:
break;
default:
return;
void checkInFlight(){
cin>>bookingNo;
for(int i=0;i<50;++i){
cout << "Departure Date and Time: " << departureDateAndTime[i] << "\n";
cout << "Check-in successful for " << name[i] << endl;
return;
void newBooking() {
custFile.close();
int calculateNewBookingCust() {
ifstream custFile("customer.dat");
if (!custFile.is_open()) {
if (bookingID[i] == bookingID[100]) {
isUnique = false;
break;
if (isUnique) {
totalBookingCust++;
allBookingCust = totalNewBookingCust/6;
custFile.close();
d) Flow chart
START
User Login
Login Successful
Yes
No
Yes
No
Yes
End
2.3.2) Check In Flight
The check-in flight system enables passengers to enter their details, select seats, and confirm their
registration before flight departure. It ensures smooth processing with seat availability checks and error
handling for accurate and efficient check-in experiences.
a) Analysis
b) Algorithm
Begin checkInFlight
int i
Read bookingNo
Read flightNo
For i=0;i<50;++i
End
else
End checkInFlight
c) Coding ++
void checkInFlight(){
cin>>bookingNo;
cin>>flightNo;
for(int i=0;i<50;++i){
cout << "Departure Date and Time: " << departureDateAndTime[i] << "\n";
cout << "Check-in successful for " << name[i] << endl;
return;
}
d) Flow Chart
Begin
No (flightNo ==
flightNumber[i]&& bookingID[i]
== bookingNo)
Yes
Check In Successful
END
2.3.3) Add Customer New Booking
The "add customer" feature in airline systems facilitates quick and accurate registration of passenger
details, including name, contact information, and travel preferences. It streamlines booking processes,
supports personalized service through customer profile management, and enhances operational
efficiency. This feature also aids in targeted marketing and loyalty program management, contributing
to improved customer satisfaction and service quality within the airline industry.
a) Analysis
Input: new customer name, new customer age, new customer flight number
Output: customer added successfully
Process: option success
b) Algorithm
Begin newCust
Declare "customer.data"
i=i+1
bil=i+1
Display name
Read name[i]
Display name[i]
Read bookingID[1]
Display bookingID(1]
Read seat[i]
Display seat[i]
Read phone_no[i]
custFile.close
End newCust
c) Coding ++
void newBooking() {
custFile.close();
}
d) FLOWCHART
Begin
addNewCustBooking
passengerName
bookingID
flightNumber
depatureDateAndTime
seatNumber
phoneNumber
custFile.Close
End
2.4) BANK INTERFACE
The bank department in an airline, often referred to as the banking operation, is a crucial aspect of
flight scheduling and airline operations management. This department is responsible for organizing
and managing the arrival and departure of flights in coordinated time frames, commonly known as
"banks." The main objective of banking operations is to maximize connectivity between inbound
and outbound flights, thereby enhancing passenger convenience and optimizing aircraft utilization.
In a typical bank structure, flights from various origins arrive within a short period, allowing
passengers to transfer seamlessly to multiple outbound flights departing shortly after.
(b) Algorithm
Procedure bankLogin()
Input: None
Output: None
End Procedure
Procedure displayReceipt()
Input: None
Output: None
End Procedure
Procedure addNewAccount()
Input: None
Output: None
OpenFile("bank.dat", "append")
Display "Enter Name: "
Read accName
WriteToFile(accName)
CloseFile("bank.dat")
End Procedure
Procedure editAccount()
Input: None
Output: None
End Procedure
Procedure editAccountDetails(accountName)
Input: accountName (string)
Output: None
OpenFile("bank.dat", "read")
OpenFile("temp.dat", "write")
while not EndOfFile("bank.dat") do
Read accNameFromFile
Read accNumFromFile
Read balanceFromFile
if accNameFromFile equals accountName then
Display "Enter new account name for " + accountName + ": "
Read newAccName
Display "Enter new account number for " + accountName + ": "
Read newAccNum
Display "Enter new balance for " + accountName + ": "
Read newBalance
WriteToFile(newAccName)
WriteToFile(newAccNum)
WriteToFile(newBalance)
else
WriteToFile(accNameFromFile)
WriteToFile(accNumFromFile)
WriteToFile(balanceFromFile)
end if
end while
CloseFile("bank.dat")
CloseFile("temp.dat")
DeleteFile("bank.dat")
RenameFile("temp.dat", "bank.dat")
End Procedure
Procedure deleteAccount()
Input: None
Output: None
End Procedure
Procedure deleteAccountDetails(accountNumber)
Input: accountNumber (string)
Output: None
for i <- 0 to 50 do
if accNum[i] equals accountNumber then
for j <- i to 49 do
accName[j] <- accName[j + 1]
accNum[j] <- accNum[j + 1]
balance[j] <- balance[j + 1]
end for
Clear(accName[50])
Clear(accNum[50])
Clear(balance[50])
OpenFile("bank.dat", "write")
for k <- 0 to 49 do
WriteToFile(accName[k])
WriteToFile(accNum[k])
WriteToFile(balance[k])
end for
CloseFile("bank.dat")
return
end if
end for
End Procedure
void bankLogin() {
string staffIDInput, passwordInput;
case 2:
newAcc();
break;
case 3:
editAcc();
break;
case 4:
deleteAcc();
break;
case 5:
cout << "Logout successful. Thank you!\n";
break;
default:
cout << "Invalid option. Try again.\n";
}
} while (option != 5);
return;
}
}
cout << "Bank Login failed. User not found.\n";
}
void displayResit(){
int i, days, RM[50], accAmount;
string seatNo, accID; // Assuming this is a string, adjust if it's an integer
float transaction, billAmount;
}
}
}
void newAcc(){
int bil=0, i=0;
bil=bil+1;
custFile.close(); // Close the bank.dat file
std::string accName,accNum,balance;
std::cout << "Enter new account number for bank " << bankToEdit << ": ";
std::getline(std::cin >> std::ws, accNum);
std::cout << "Enter new balance for bank " <<bankToEdit << ": ";
std::getline(std::cin >> std::ws, balance);
void editAcc() {
std::string accNameInput;
editAccData(accNameInput);
}
// Clear the last element to avoid duplicate data
accName[50 - 1].clear();
accNum[50 - 1].clear();
balance[50 - 1].clear();
}
bankFile.close();
return;
}
}
std::cout << "Account not found." << std::endl;
}
void deleteAcc() {
readBankData();
std::string accToDelete;
std::cout << "Enter account number to delete: ";
std::cin >> accToDelete;
deleteAccData(accToDelete);
}
(d) Flowchart
START
Yes
Display Resit Display Resit
No Yes
Add New Account New Account
No Yes
Edit Account Edit Account Details
Details
No Yes
Delete Account Delete Account
No
Yes
Log Out Log Out Successful
END
3.0 CONCLUSION
Uleungdo Airlines, established with a vision to connect the remote and picturesque island of
Uleungdo to mainland South Korea and international destinations, has successfully carved out a
niche in the aviation industry. Despite initial challenges, including logistical hurdles and
operational complexities due to Uleungdo's unique geographical location, the airline has
persevered.
Through strategic partnerships and investments in modern aircraft and technology, Uleungdo
Airlines has ensured safe, reliable, and efficient air travel for both residents and tourists alike. The
airline's commitment to exceptional customer service and sustainability practices has garnered
praise and loyalty from passengers.
Looking ahead, Uleungdo Airlines aims to expand its route network, enhancing connectivity and
accessibility to and from Uleungdo. With a focus on community engagement and environmental
stewardship, the airline continues to uphold its values while embracing opportunities for growth
in the dynamic aviation industry.
Uleungdo Airlines remains dedicated to bridging distances, enriching travel experiences, and
contributing to the economic and cultural development of Uleungdo and its surrounding regions.