Sunteți pe pagina 1din 113

Page 1

A
Project
Report
On
“AIR LINES RESERVATION SYSTEM”

Page 2
SUBMITTED BY:

CERTIFICATE

This is to certify that the project work entitled “Air Lines Reservation System”,

which is being submitted by Mayank Kumar Gupta. Enrollment no

11818407072 in partial fulfillment of the requirements for award of the degree

of BCA 5B (Bachelor of Science in Information Technology) in Rajarshi School

of Management & Technology is an authentic work carried out by the student

in …Ashutosh singh….. under my supervisor and guidance.I wish the student

the best for his academic ventures.

Signature of Student:

Signature of Supervisor:

Name of Supervisor: …………………….

Date:

Page 3
ACKNOWLEDGEMENT

In this modern world of competition there is a race of existence in which


those are efficient to come forward to succeed. Project is like a bridge between
theoretical and practical .so, I have joined this particular project.

Today after completing my project I feel great relief and satisfaction, now
when I look back, I still remember the day when I was assigned this project
“AIRLINES RESERVATION ". I was somewhat puzzled and a bit nervous and
curious where to begin from. This was a new exposure for me. At this juncture of
time when my project is completed, I would like to that who provided me power
to complete this work and to my parents who always inspired and encouraged me
throughout my life. Once again, I would like to convey my sincere and special
thanks to Dr.Chandra Prakash singh faculty of Computer Science, for his kind
cooperation and knowledge assistance in giving shape to this project and great
regards for all the Collage staff members who gave me the practical knowledge of
all. I believe that without their guidance the successful completion of this project
was not possible.
Signature of Student

Page 4
Date:

Page 5
TABLE OF CONTENTS
CERTIFICATE 3
ACKNOWLEDGEMENT 4
TABLE OF CONTENTS6
INTRODUCTION 7
OBJECTIVES 8
SYSTEM ANALYSIS 10
SYSTEM ANALYSIS 11
FEASIBILITY STUDY 14
1.Technical Feasibility: 14
PLATFORM USED 18
PROJECT ANALYSIS 20
RISK ANALYSIS……………………………………………………………. 25
OJBECT ORIENTED DEVELOPMENT…………………………………….26
WORK FLOW THE PROJECT………………………………………………27
FEASIBILITY STUDY……………………………………………………… 28
TYPE OF FEASIBILITIES………………………………………………….. 29
SYSTEM DESIGN…………………………………………………………... 33
PROJECT DESIGN………………………………………………………….. 40
TABLE STRUCTURE………………………………………………………. 45
1. CUSTOMER.DAT (Stores all information for customers)……………….. 45
2. STATION.DAT (Stores all information for Stations)…………………….. 46
PROGRAM STRUCTURE…………………………………………………...47
FLOW CHART………………………………………………………………. 49
DFD…………………………………………………………………………... 62
Data Flow Diagram…………………………………………………………... 65

FUTURE SCOPE OF THE PROJECT:……………………………………… 111


REFERENCES:……………………………………………………………….112

Page 6
INTRODUCTION

Project name is “Air Lines Reservation System”.

The project is very flexible and it can be modified if the need arises. I
hope the user will find this project work quite pleasing in its output as
general sample designing has been done to enhance the view and simple
programming statement and commands have been made use of, so that
the user had no problem in understanding the listing of the project. Files
have been used to create a systematic medium of data storage and
retrieval.

I am sure that reader will like this effort and so, I wished him/her by
hearts to ahead and turn this page.

Page 7
OBJECTIVES

Airways has a number of reservation offices in each city where the flights operate. Each
reservation office has a number of reservation counters to handle reservations and
cancellations. Each counter has a counter assistant who is responsible for making
reservations or cancellations. The main objective of this project to performed
reservation, cancellation and report.
In concerned to reservations, the following activities are done.
 Accepts the date, sector, and class of travel from the person and checks for the
availability of a seat in the Reservation file.
 Confirms the details with the prospective passenger and accepts the remaining
details.
 Update the seat availability status in the reservation file and adds the passenger
details to the file. The passenger is assigned a unique Passenger Name Request
(PNR) number,
 Collects the fare amount.
 Update the Daily Collection file with the fare amount.
In concerned to cancellation, the following activities is done
Retrieves the details from the file using the PNR number.
Verifies the details of the ticket and computes the refund amount.
Updates the seat availability status in the reservations file and marks the
corresponding details of the file.
Makes the refund and prints the refund receipt.
Files the receipt along with the signature of the passenger .
Updates the Daily Collection file.

Page 8
And Reports are generated as:-
 Print the confirmed and wait-listed passenger list of flights departing .
 Print the daily collection summary report.
 It also generate view rates for different sector & view flight schedules for a
specific period
 Show status of ticket with given PNR number.
 Report on availability of flight & seats on desired date.

Page 9
SYSTEM ANALYSIS

 SYSTEM ANALYSIS

 Introduction of User

 Definition of System

 Identification of Need

 Preliminary Investigation

 Modules in AIR-LINES RESERVATION SYSTEM

Page 10
SYSTEM ANALYSIS

Analysis is a detailed study of the various operations performed by a system and


their relation within and outside the system. A key question is what must be done to
solve the problem. One aspect of the analysis defining the boundaries of the system and
determining whether or not a candidate system should consider other related system.
During analysis data are collected on the available files decision points and transaction
handled by the parent system. Some logical system models and tools are used in the
analysis. Data flow diagrams, interviews, onsite observation and questionnaires are
examples, the interview is commonly used in analysis. It requires special skill and
sensitivity to the subject being interview bias in data collection and interpretation can be
problem.
Training experience and common sense are required for Collections of the information
are needed to do analysis. Once analysis is completed, the analyst has firm
understanding of what is to be done. The next step is to decide how the problem might be
solved. Thus in system design, we be move from the logical to the physical aspects of
the life cycle.

The Initial Investigation and Identification of need :

The most critical phase of managing system projects is planning to launch a system
investigation, we need plan detailing the steps to be taken, the people to be questioned
and they out come expected. The initial investigation has the objective of determining
whether the users request has potential merit. The major steps are defining user
requirements. When the initial investigation is completed. The user receives a proposal
summarizing the finding the recommendation of the analyst.

Page 11
A key part of feasibility analysis is gathering information about the present system.
The analyst knows what information to gather, where to find it, how to collect it and
what to make of it. The proper use of tools for gathering information is the key to
successful analysis. The tools are the traditional interview, questionnaire, and on-site
observation. We need to know, for example how to structure an interview, what makes
up a questionnaire, and what to look for on-site observations. These tools when learned
help analysis assess the effectiveness of the present system and provide the groundwork
for recommending a candidate system.

Identification of need
The system need accomplish the following functions:

 The system should allow the counter assistants to handle ticketing and refunds.
 While accepting reservation data, all necessary validations should be performed.
For example, the system should check whether a flight operates on the date of
travel specified by the passenger. It should also check the seat availability status.
After all data has accepted, the system should print the ticket. It should also store
the passenger details, update the daily collections, and update the seat plan.
 In case of cancellation, the system should accept the PNR number from the user,
validate the PNR number and update the cancellation flag for the passenger. The
system should then print the refund receipt. It should also update the daily
collections to reflect the refund amount. The status of overbooked and wait-listed
tickets should be changed whenever a confirmed ticket is cancelled.
 The system should generate the following reports:

1. Confirmed passenger list


2. Waiting list
3. Daily collection report

Page 12
In addition, the new system should provide facilitate passengers to perform the following
tasks:
 Check the waiting list status.
 View rates for different sectors.
 View flight schedules for a specific period. This module should be developed as
an affiliate program that can be easily integrated with various Web sites.

Page 13
FEASIBILITY STUDY

The main objective of the preliminary analysis is to identify the problem, evaluate the
system concept of feasibility, and perform the economic and technical analyses
perform the cost benefit analysis. After the clarification analysis the solution
proposed it is checked that it is practical to implement that solution. This is done
through the feasibility study. It is checked for various aspects whether the proposed
solution is technically or economically feasible or not. On the basis if which it has
been categorized into four classes viz

1.) Technical

2.) Economic

3.) Operational

The outcome of the preliminary analysis should be clear so that an alternate way to
do the job can be found out?
1.Technical Feasibility:

During the technical feasibility studies following issues are taken into consideration
1. Whether the required technology is available or not?

2. Required resources are available or not? (Manpower, programmer, software and


hardware etc)

Once the technical feasibility is established, it is important to consider the


monetary factors also. Since it might happen that developing a particular system may
be technically possible but it may be require huge investments and benefits may be
less. For evaluating this, economic feasibility of the proposed system is carried out.

Page 14
As in our proposed system our team has technically trained manpower with
knowledge of developing the system. We are going to use web technology in our
system, which is readily available. Software to be used is also available easily.
So technically the project is feasible.

2. Economic Feasibility:

For any system if the expected benefits equal or exceed the expected costs, the
system can be judged to be economically feasible. In economic feasibility, cost
benefit analysis is done in which expected costs and benefits are evaluated.
Economic analysis is used for evaluating the effectiveness of the proposed
system. In economic feasibility, the most important is cost benefit analysis. As the
name suggests, it is an analysis of the cost to be incurred in the system and benefits
derivable out of the system.
As in our institute the hardware and software required for this type of system
is already available so economically our project is feasible.
3. Operational Feasibility

The staff of the company (client) is used to the computer. They will only be given
training about the proposed system to make efficient use of it.
This feasibility study is carried out by a small group of people who are familiar with
information system techniques, who understand the part of the system that are
relevant to the project and are skilled in system analysis and design process.
Considering the above three feasibility we can say that the system is feasible and
ahead for analysis of the system.

Page 15
SOFTWARE ENGINEERING PARADISM

In the software principle we are using the incremental model (evolutionary software

process model). The incremental model combines elements of the linear sequential

model with the iterative philosophy of prototyping.

The linear sequential model suggests a systemic, sequential approach to software


development that begins at the system level and progress through analysis, design,
coding and module testing, delivery and maintenance.
ANALYSIS:
In this phase we will gathered all the information about the organization queries and
analysis requirement for both the system and software documented and reviewed
with the users.
DESIGN:
After analysis we documented all the Interface representations, and algorithm details.
CODING AND MODULE TESTING:
After designing, coding plays major role in software development process. We are
using JAVA(JSP) in front end, ORACLE in the back end for coding
Individual modules developed in this phase is also tested before being delivered to the
program testing phase.
PROGRAM TESTING:
Once the module has been developed. Program testing begins We will provide some
other users for testing for few days, and all problems and errors, which overcome
during testing, will be pointed out. The user requirement will be also kept in mind and
then delivery process begins.
DELIVERY:

Page 16
Once the system passes all the tests, it is delivered to the customer and enters the
maintenance phase.
MAINTENANCE:
Software will undoubtedly undergo changes because errors have been encountered. So
keeping requirement and testing in mind, we will make some necessary changes.

Page 17
PLATFORM USED

Hardware Requirement

1. Pentium Processor or above

2. Color Monitor

3. Keyboard

4. 8 GB Hard Disk or above

5. 32 MB RAM or above

6. 1.44 MB Floppy Disk Drive

7. Speakers

Page 18
Software Requirement

1. Windows 9x or MS-DOS 6.22

2. Turbo C++ Compiler

3. Turbo C++ Editor or any other text editor

Page 19
PROJECT ANALYSIS

(OOPS – Object Oriented Programming System)

Object Oriented Programming is a method of programming that seeks to mimic the way

we form models of the world. To cope with the complexities of life, we have evolved a

wonderful capacity to generalize, classify and generate abstractions. Almost every noun

in our vocabulary represents a class of objects sharing some set of attributes or

behavioral traits.

The entire basis of Object Oriented Programming, infect is defining the Object in Object

Oriented Programming. Object is a unit that combines both code and data together. And

an object is an instance of a class. Class is a type of data structure defined to hold both

data and the code functions.

Object Oriented Programming also allows you to design and implement your application

more quickly than traditional approaches. Object Oriented Programming also makes

code easier to maintain so that you can refine the implementation without causing major

problems.

Since object-oriented programming was fundamental to the development of C++, it

is important to define precisely what object-oriented programming is. Object-oriented

programming has taken the best ideas of structured programming and has combined

them with several powerful concepts that allow you to organize your programs more

effectively. In general, when programming in an object-oriented fashion, you decompose

Page 20
a problem into its constituent parts. Each component becomes a self-contained object

that contains its own instructions and data related to that object. Through this process,

complexity is reduced and you can manage larger programs.

Encapsulation

As you probably know, all programs are composed of two fundamental elements:

program statements (code) and data. Code is that part of a program that performs

actions, and data is the information affected by those actions. Encapsulation is a

programming mechanism that binds together code and the data it manipulates,

and that keeps both safe from outside interference and misuse.

In an object-oriented language, code and data may be bound together in such a way

that a self-contained black box is created. Within the box are all necessary data and

code. When code and data are linked together in this fashion, an object is created.

In other words, an object is the device that supports encapsulation.

Within an object, the code, data, or both may be private to that object or public.

Private code or data is known to, and accessible only by, another part of the object.

That is, private code or data may not be accessed by a piece of the program that exists

outside the object. When code or data is public, other parts of your program may access

it, even though it is defined within an object. Typically, the public parts of an object

are used to provide a controlled interface to the private elements of the object.

Polymorphism

Page 21
Polymorphism (from the Greek, meaning “many forms”) is the quality that allows one

interface to be used for a general class of actions. The specific action is determined by

the exact nature of the situation. A simple example of polymorphism is found in the

Steering wheel of an automobile. The steering wheel (i.e., the interface) is the same no

matter what type of actual steering mechanism is used. That is, the steering wheel works

the same whether your car has manual steering, power steering, or rack-and-pinion

steering. Therefore, once you know how to operate the steering wheel, you can drive

any type of car. The same principle can also apply to programming. For example,

consider

a stack (which is a first-in, last-out list). You might have a program that requires three

different types of stacks. One stack is used for integer values, one for floating-point

values, and one for characters. In this case, the algorithm that implements each stack

is the same, even though the data being stored differs. In a non-object-oriented language,

you would be required to create three different sets of stack routines, calling each set

by a different name, with each set having its own interface. However, because of

polymorphism, in C++ you can create one general set of stack routines (one interface)

that works for all three specific situations. This way, once you know how to use one

stack, you can use them all.

More generally, the concept of polymorphism is often expressed by the phrase

“one interface, multiple methods.” This means that it is possible to design a generic

interface to a group of related activities. Polymorphism helps reduce complexity by

Page 22
allowing the same interface to be used to specify a general class of action. It is the

compiler’s job to select the specific action (i.e., method) as it applies to each situation.

You, the programmer, don’t need to do this selection manually. You need only

remember and utilize the general interface.

The first object-oriented programming languages were interpreters, so polymorphism

was, of course, supported at run time. However, C++ is a compiled language. Therefore,

in C++, both run-time and compile-time polymorphism are supported.

Inheritance

Inheritance is the process by which one object can acquire the properties of another

object. The reason this is important is that it supports the concept of hierarchical

classification. If you think about it, most knowledge is made manageable by

hierarchical (i.e., top-down) classifications. For example, a Red Delicious apple is part

of the classification apple, which in turn is part of the fruit class, which is under the

larger class food. That is, the food class possesses certain qualities (edible, nutritious,

etc.) that also apply, logically, to its fruit subclass. In addition to these qualities, the

fruit class has specific characteristics (juicy, sweet, etc.) that distinguish it from other

food. The apple class defines those qualities specific to an apple (grows on trees, not

tropical, etc.). A Red Delicious apple would, in turn, inherit all the qualities of all

preceding classes, and would define only those qualities that make it unique.

Without the use of hierarchies, each object would have to explicitly define all of

its characteristics. However, using inheritance, an object needs to define only those

qualities that make it unique within its class. It can inherit its general attributes from

Page 23
its parent. Thus, it is the inheritance mechanism that makes it possible for one object

to be a specific instance of a more general case.

C++ Implements OOP

As you will see as you progress through this book, many of the features of C++ exist

to provide support for encapsulation, polymorphism, and inheritance. Remember,

however, that you can use C++ to write any type of program, using any type of

approach. The fact that C++ supports object-oriented programming does not mean

that you can only write object-oriented programs. As with its predecessor, C, one of

C++’s strongest advantages is its flexibility.

Page 24
RISK ANALYSIS

Project Risk: It identify potential budgetary, schedule, personnel, resource,

customer, and requirements problems and their impact on software. All the

above factors are analyzed, customer requirements are analyzed properly.

Technical Risk: It identifies potential design, implementation, interface,

verification, and maintenance problems. All the above factors have been

analyzed.

Business Risk: (1) Software is developed keeping in mind that there is demand in

custom, so that to avoid the market risk. (2) Software is designed to fit into the

overall business strategy for the custom department, to avoid the strategic risk.

(3) The software is easily understandable by the sales person’s team, so that

they could know much about the product working and sell in the market. (4) It

has the strong management support, and not likely to change in the management

people to avoid the management risk. (5) Software fits the budget and there is no

budget risk.

Page 25
OJBECT ORIENTED DEVELOPMENT
An object-oriented system draws upon class definitions that are derived from the
analysis model. Some of these definitions will have to be built from scratch, but
many others may be reused it appropriate design patterns are recognized. Object
Oriented Design establishes a design blueprint that enables a software engineer to
define the Object Oriented architecture in a manner that maximized reuse, thereby
improving development speed and end-product quality.
The four layers of the Object Oriented design are:
The subsystem layer: It represents each of the subsystems that enable the software
to achieve its customer-defined requirements and to implement the technical
infrastructure that supports customer requirements, in the custom department.

The class and object layer: It contains the class hierarchies that enable the system
to be created using generalizations and increasingly more targeted specializations.

The message layer: It contains the design details that enable each object to
communicate with its collaborators. This layer establishes the external and inters
interfaces for the software.

The responsibilities layer: It contains the data structure and algorithmic design for
all attributes and operations for each object.

Page 26
WORK FLOW THE PROJECT

 User can view list of stations along with their code, charges for document and
non-document by selecting option 1 from the main menu.

 User can book the courier by selecting option 2 from the main menu. Users
have to input details of courier, consignor and consignee, and data is saved in
the file – customer. at.

 User can search for station information by giving station code, by selecting
option 3 from the main menu.

 User can search and view customer details by selecting option 4 from the main
menu.

 User can view daily booking status by selecting option 1 from the report menu.

 User can view monthly booking status by selecting option 2 from the report
menu.

 User can add, modify or delete station records by selecting option 1, 2 or 3


from the edit station menu.

Page 27
FEASIBILITY STUDY

Steps in feasibility analysis

Eight steps are involved in the feasibility analysis. They are :

1. Form a project team and appoint a project leader.


2. Prepare system flowcharts.
3. Enumerate potential proposed systems.
4. Define and identify characteristics of proposed system.
5. Determine and evaluate performance and cost effectiveness of each
proposed system.
6. Weight system performance and cost data.
7. Select the best proposed system.
8. Prepare and report final project directive to management

Page 28
TYPE OF FEASIBILITIES

1. Economic Feasibility
Economic analysis is the most frequently used technique for evaluating the
effectiveness of a proposed system. More commonly known as cost / benefit
analysis; in this procedure we determine the benefits and savings that are
expected from a proposed system and compare them with costs. We found the
benefits outweigh the costs; we take a decision to design and implement the
new proposed system.

2. Technical Feasibility
This is concerned with specifying equipment and software that will
successfully satisfy the user requirement. The technical needs of the system
may vary considerably, but might include:

· The facility to produce outputs in a given time.

· Response time under certain conditions.

· Ability to process a certain volume of transaction at a particular speed.

· Facility to communicate data to distant location.

After examining technical feasibility, we give more importance to the


configuration of the system than the actual make of hardware. The
configuration gives the complete picture about the system's requirements:
Ten to twelve workstations are required, these units should be interconnected
through LAN so that they could operate and communicate smoothly. They
should have enough speeds of input and output to achieve a particular quality
of printing.

Page 29
3. Operational Feasibility

It is mainly related to human organizational and political aspects. The points


to be considered are:

· what changes will be brought with the system?

· what organizational structures are disturbed?

· what new skills will be required? Do the existing staff members have these
skills?

· If not, can they be trained in due course of time?

Generally project will not be rejected simply because of operational


infeasibility but such considerations are likely to critically affect the nature
and scope of the eventual recommendations.

For operational feasibility study we appointed a small group of people who


are familiar with information system techniques, who understand the parts of
the business that are relevant to the project and are skilled in system analysis
and design process.

4. Social feasibility

Social feasibility is a determination of whether a proposed project will be


acceptable to the people or not. This determination typically examines the

Page 30
probability of the project being accepted by the group directly affected by the
proposed system change.

5. Management feasibility

It is a determination of whether a proposed project will be acceptable to


management. If management does not accept a project or gives a negligible
support to it, the analyst will tend to view the project as a non-feasible one.

6. Legal feasibility
Legal feasibility is a determination of whether a proposed project infringes on
known Acts, Statutes, as well as any pending legislation. Although in some
instances the project might appear sound, on closer investigation it may be
found to infringe on several legal areas.

7. Time feasibility

Time feasibility is a determination of whether a proposed project can be


implemented fully within a stipulated time frame. If a project takes too much
time it is likely to be rejected.

SYSTEM DESIGN

Page 31
Introduction

System design provides the understandings and procedural details necessary for
implementing the system recommended in the system study. Emphasis is on the
translating the performance requirements into design specifications. The design has is a
transition from a user-oriented document (System proposal) to a document oriented to
the programmers or database personnel.

System design goes through two phases of development:

1) Logical Design

2) Physical Design

A data flow diagram shows the logical flow of the system. For a system it
describes the input (source), output (destination), FILE (data stores) and procedures (data
flows) all in a format that meets the user’s requirement. When analysis prepare the
logical system design, they specify the user needs at a level of detail that virtually
determines the information flow into an out of the system and the required data
resources. The logical design also specifies input forms and screen layouts.

The activities following logical design are the procedure followed in the physical
design e.g., producing programs, software, file and a working system. Design
specifications instruct the user about what the system should do.

Logical and Output Design:

The logical design of an information system is analogous to an engineering blue


print of an automobile. It shows the major features and how they are related to one
another. The detailed specification for the new system was drawn on the bases of user’s
requirement data. The outputs inputs and databases are designed in this phase.

Page 32
Output design is one of the most important features of the information system.
When the output is not of good quality the users will be averse to use the newly designed
system and may not use the system. There are many types of output, all of which can be
either highly useful or can be critical to the users, depending on the manner and degree
to which they are used.

Outputs from computer system are required primarily to communicate the results
of processing to users; they are also used to provide a permanent hard copy of these
results for later consultation. Various types of outputs required can be listed as below:

 External Outputs, whose destination is outside the organization

 Internal outputs, whose destination is with the organization

 Operational outputs, whose use is purely with in the computer department


e.g., program-listing etc.

 Interactive outputs, which involve the user is communicating directly with


the computer, It is particularly important to consider human factor when
designing computer outputs. End user must find outputs easy to use and
useful to their jobs, without quality output, user may find the entire system
unnecessary and avoid using it. The term “Output” in any information system
may apply to either printer or displayed information. During the designing
the output for this system, it was taken into consideration, whether the
information to be presented in the form of query of report or to create
documents etc.

Other important factors that were taken into consideration are:

 The End user, who will use the output.

 The actual usage of the planned information

Page 33
 The information that is necessary for presentation

 When and how often output and their format is needed. While designing
output for project based Attendance Compilation System, the following
aspects of outputs designing were taken into consideration.

 The outputs (i.e., well formatted table outputs in the screen itself) designed
are simple to read and interpret.

 Format of each output was another important point taken into consideration.
Output media, for each output appropriate media is decided whether it will be
displayed on screen or will be taken to printer or both.

 Other output design related specifications, i.e., how frequently the outputs
will be generated, how many pages or sheets approximately it will keep up,
what is its planned use and output distribution to users are also taken into
account.

These were a few major designing issues, which were taken into consideration,
while deciding the output specifications for the system. As direct beneficiary of reports is
the user community, they were consulted constantly at every level. Formats and screen
design for various reports were identified, taking into account the user requirements.
Before finalising these were given to users for any improvement and suggestions. End
users issues taken into consideration were Readability, Relevance and Acceptability.

Once all the output reports to be generated by HARS system were identified, they
were given to users for their acceptance. For prototyping various outputs, final outputs
models were created with dummy data, before they were finalized.

Output Sources:

Page 34
Output contents originate from these sources:

 Retrieval from a data source.

 Transmission from a process or system activity.

 Directly from an input source.

The information produced in an output can be presented as

 Tabular contents

 Graphic format

 Using Icons

Output Definition:

The output should be defined in terms of:

Types of outputs

 Content-headings, numeric, alphanumeric, etc.,

 Format-hardcopy, screen, microfilm, etc.,

 Location-local, remote, transmitted, etc.,

 Frequency-daily, weekly, hourly, etc.,

 Response-immediate with in a period, etc.,

Data items

Page 35
The name given to each data item should be recorded and its characteristics described
clearly in a standard form:

 Whether alphanumeric or numeric

 Legitimate and specific range of characteristics

 Number of characters

 Positions of decimal point, arithmetic design, etc.,

Input Design:

The input design is the link that ties the information system into the user’s world.
Input specifications describe the manner in which data enters the system for processing.
Input design features can ensure the reliability of the system and produce results from
accurate data, or they can result in the production of erroneous information.

Input Design consists of

 developing specifications and procedures for data preparation

 Steps necessary to put data into a usable form for processing.

 Data entry, the activity of putting data into the computer processing.

Objectives of Input design

Page 36
Five objectives of design input focus on

 Controlling the amount of input required

 Avoid delay

 Avoiding errors in data

 Avoiding extra steps.

 Keeping the process simple.

Input stages several activities have to be carried out as part of the overall input
process. They include some or all of the following.

Data recording (i.e., collection of data)

Data encapsulation (i.e., transfer of data)

Data conversion (i., e.controlling the flow of data)

Data transmission (i.e., transporting the data)

Data validation (i.e., checking the input data)

Data correction (i.e., correcting the errors)

Input Performa were designed, after a careful discussion with users. It was
attempted to cover all user requirements. Designed Performa were given to user for any
suggestion and final approval.

Various data items were identified and wherever necessary were recorded. As the
data concerning of HARS is voluminous in nature and number of case will grow
dynamically in future, proper care was taken for accuracy and consistency of data.

Page 37
Input designs are aimed at reducing the chances of mistakes of errors. As the
human beings are prone to errors there is always a possibility of occurrence of chance of
errors. Adequate validation checks are incorporated to ensure error free data storage.
Some of the data validation checks applied are as following:

 Redundancy of data is checked. It means the records of primary key do not


occur twice.

 Primary key field of any table must not be left blank.

 Wherever items are coded, input code is checked for it’s validly with respect
to several checks.

 Utmost care has been taken to incorporate the validation at each stage of the
system. E.g. when entering records into employee information table for
employee, it is checked that whether the corresponding employee exists in
the employee information table etc.,

Enough messages and dialogue boxes are provided while design screen, which does guide user at
the time of any errors, or at time of entry. This feature provides a user-friendly interface to native
users. It can be emphasized that input deigns of HARS system is so designed that it ensures easy
and error free data entry mechanism. Once one is sure of input data the output formatting
becomes a routine work.

Page 38
PROJECT DESIGN

Modules & Process logic

Airways has a number of reservation offices in each city where the flights operate. Each
reservation office has a number of reservation counters to handle reservations and
cancellations. Each counter has a counter assistant who is responsible for making
reservations or cancellations. The procedure followed for performing reservations and
cancellations is given bellow.

Reservation
Reservations for a flight commence 30 days before the date of the flight. The procedure
for making reservations is given below. The procedure described below deals with the
provisional reservations the can be made through telephone conversation.
On receiving request for reservation from a person, the counter assistant performs the
following activities:
 Accepts the date, sector, and class of travel from the person and checks for the
availability of a seat on the requested date. The details about the availability seats
and the seat plan are kept in the Reservation file.
 Confirms the details with the prospective passenger and accepts the remaining
details. These details include the preferences such as a window or an aisle seat, a
smoking or a non-smoking zone, meal preferences such as vegetarian or non-

Page 39
vegetarian, and special service requests (SSR), such as dietary and medical
considerations.
 Update the seat availability status in the reservation file and adds the passenger
details to the file. The passenger is assigned a unique Passenger Name Request
(PNR) number, which is used to access ticket details for queries and cancellation.
 Collects the fare amount.
 Prints the ticket and gives it to the passenger.
 Update the Daily Collection file with the fare amount.

Horizon Airways also provides for overbooked and wait-listed tickets for the economy
class. Overbooking is allowed for 10 seats per flight. For example, if the capacity of an
aircraft is 340 seats, booking are made for 350 seats, that is, 340 seats + 10 overbooked
tickets. If the number of bookings exceeds the capacity and overbooking, a wait-listed
ticket is issued to the passenger with his or her consent. An overbooked or wait-listed
passenger is accommodated on the flight depending on the availability of a seat when the
passenger checks in. A passenger who cannot be accommodated on a flight is given full
refund.

Cancellation
On receiving a cancellation request from a passenger the counter assistant performs the
following tasks:
Retrieves the details from the file using the PNR number.
Verifies the details of the ticket and computes the refund amount.
Updates the seat availability status in the reservations file and marks the
corresponding details of the file.
Makes the refund and prints the refund receipt.
Files the receipt along with the signature of the passenger.
Updates the Daily Collection file.

Page 40
The amount of refund is calculated based on the ticket status and the date cancellation.
If the ticket is wait-listed or overbooked, full amount is refunded.

3 classes have been used in this project:

 STATION

 DATE

 CUSTOMER

Modules in class STATION:

 addition() : Function to add new station record in the


file.
 modification() : Function to modify existing record of
station.
 deletion() : Function to delete existing record of the
station.
 list() : Function to display list of all stations.
 search() : Function to search information for
station.
 amount() : Function to calculate and return total
amount for the given information of
station.
 found code() : Function to return station code found in
the file or not.

Modules in class DATE:

Page 41
 valid() : Function to check validity of the given
date.

Modules in class CUSTOMER:

 booking() : Function to book courier along with


consignor and consignee information and
store in the file – customer. at.
 search() : Function to search for the customer
information.
 daily list() : Function to display daily booking status.
 monthly list() : Function to display monthly booking
status.
 lastcustcode() : Function to return last customer code in
the customer file.

Page 42
TABLE STRUCTURE

Two files have been used in this project:

1. CUSTOMER.DAT (Stores all


information for customers)

 custcode : Code no. of the customer. This is unique


field.
 Name : Name of the customer.
 Address : Address of the customer.
 Phone : Phone no. of the customer.
 Strode : Station code to which courier has to be
sends.
 Came : Consignee name.
 Cadress : Consignee address.
 Cphone : Consignee phone no.
 Type : Type of the courier (document or non-
document)
 Weight : Weight of the courier.
 Amount : Total charges for sending the courier.
 DoB : Date of booking courier.

2. STATION.DAT (Stores all information


for Stations)

 strode : Code no. of the station.


 Name : Name of the station.

Page 43
 Doc : Charges for document.
 Docadd : Additional charges for document above
500 gms.
 Ndoc : Charges for non-document.
 ndocadd : Additional charges for non-document
above 500 gms.

PROGRAM STRUCTURE

3 classes have been used in this project:

 STATION
 DATE
 CUSTOMER
Modules in class STATION:

Page 44
 addition() : Function to add new station record in the
file.
 modification() : Function to modify existing record of
station.
 deletion() : Function to delete existing record of the
station.
 list() : Function to display list of all stations.
 search() : Function to search information for
station.
 amount() : Function to calculate and return total
amount for the given information of
station.
 foundcode() : Function to return station code found in
the file or not.

Modules in class DATE:

 valid() : Function to check validity of the given


date.

Modules in class CUSTOMER:

 booking() : Function to book courier along with


consinor and consinee information and
store in the file – customer.dat.
 search() : Function to search for the customer
information.
 dailylist() : Function to display daily booking status.

Page 45
 Monthlylist() : Function to display monthly booking
status.
 lastcustcode() : Function to return last customer code in
the customer file.

FLOW CHART

Page 46
START

1. Station Information
2. Booking
3. Search Station
4. Customer Record MENU
5. Reports
6. Edit Station
0. Quit
Enter your Choice :

Input Ch

If Y
1
Ch=1

Page 47
If If N
Ch=6
Ch=0 Ch=3
Ch=2
Ch=5
STOP
6 Y N N N Y
Y 2345
If
Ch=4

Open file station.dat in read


only mode.

Page 48
Read data from file and
Display station information.

if Y
eof MENU

switch to next record

Input consinor, consinee and


courier information.

Open file customer.dat in


append mode.

Page 49
write data in file.

MENU

Input code no. of the station

Open file station.dat in read


only mode.

Read data from file.

if MENU
eof

Page 50
Y

if N
stcode = file.stcode

Display station information.

switch to next record

Input code no. of the

Open file customer.dat in


read only mode.

Read data from file.

if Y
eof MENU

Page 51
if
code = file.code N

Display customer information.

switch to next record


5

1. Daily Booking Status


2. Monthly Booking Status
0. Exit
Enter your Choice :

Input Ch

If Y
R1
Ch=1

If Y
R2
Ch=2

If Y
Ch=0 MENU

Page 52
R1

Input Date to view status

Open file customer.dat in read


only mode.

Read data from file.

if
eof 5

Page 53
Y

if N
date = booking date

Display booking information.

switch to next record

R2

Input month & year to view status

Open file customer.dat in read


only mode.

Read data from file.

if
eof 5

Page 54
Y

if N
month = booking month

Display booking information.

switch
6 to next record

1. Add new station record


2. Record
3. Modify Record
0. Exit
Enter your Choice :

Input Ch

Page 55
If Y
E1
Ch=1

If Y
E2
Ch=2

If Y
E3
Ch=3

If Y
Ch=0 MENU

E1

Input station information.

Open file station.dat in append Page 56


mode.
write data in file.

E2

Input code no. of the station

Open master file station.dat in read mode.


Open transaction file in write mode
Page 57
Open master file station.dat in write mode.
Open transaction file in read mode
Read all the records from master file and
write in transaction file accept the record
to be deleted.

Read all the records from transaction file


and write in master file.

6
E3

Input code no. of the station

Open master file station.dat in read mode.


Open transaction file in write mode
Page 58
Open master file station.dat in write mode.
Open transaction file in read mode
Read all the records from master file and
write in transaction file with updation.

Page 59
DFD

Page 60
ENTITY RELATIONSHIP DIAGRAM (ERD):

The overall logical structure of a database can be express graphically by an

E-R-Diagram. Then relative simplicity and pictorial clarity of this diagramming

technique may well System in large part for the wide spread use of the E-R model.

7.1.1 components of E-R Diagram:

 Rectangle: which represent entity sets

 Ellipses: which represent attributes

 Diamonds: which represent relationships sets

 Lines: which link attribute to entity set and entity set to relationship sets

 Double ellipses: which represent multi values attributes

Page 61
 Dashed ellipses: which denote derived attributes

Entity-Relationship Diagram
The following diagram depicts various entities involved in the airline reservation
system the attributes of entities and the relationships between entities:
SS
Seat R First Class Seats
Aircraft available
Meal Zone Statu Type
s
Cancel
Flag Flight Dep. Time
Seat No.
preference
Arr.Time

PASSENGER M 1 FLIGHT Flight Date


Class Boar
ds
1
Travel
Date Business

Age PNR No. Class Seats


Economy Class Seats available
First Name
Last Name

Operates Available
in

Sector SECTOR Week Day 2


ID

Description
Week Day 1
Page 62
First Class Fare Economy Class Fare
Business Class
Fare

The Entity-Relationship Diagram for the Airlines Reservation System

DATAFLOW DIAGRAM (DFD):

Full descriptions of the system actually consist of a set of data flow diagram.

Specification:

Here we have used YOURDON’s data flow symbols.

 Dataflow: Data move in a specific direction from and origin to a

destination the form of a document.

 Process: People, procedures or device that use or produced data.

The physical component is not identified.

 Source or destination: External source or destinations of data interact

with the system. The terms source and sink are interchangeable with

origin and destination.

Page 63
 Data store: Here data are store or referenced by a process in the

system.

Page 64
Data Flow Diagram

Check waiting Status Query waiting list & Daily

Reservation/Cancellation Update available seat/amount


Reques
Ask availability of seat,
Fare & schedule
Feed complete detail
Customer Airways Counter Assistant

Response availability Reservatio Generate PNR No.

of seat, Fare & schedule n System


Reservation/
Cancellation response Ticket Print

Waiting status Response waiting list & Daily

CONTEXT LEVEL DFD

Page 65
Page 66
Program coding

Page 67
PROJECT CODE – AIRLINE RESERVATION SYSTEM

# include <iostream.h>
# include <fstream.h>
# include <string.h>
# include <stdlib.h>
# include <stdio.h>
# include <ctype.h>
# include <dos.h>
# include <conio.h>
# include <process.h>

class TICKET
{

private:
void
ADD_RECORD(char[10],char[15],char[15],int,int);

public:
void ADDITION(void);
void ENQUIRY(void);
char *FLIGHTNO(int);

protected:

char fltno[10],from[15],to[15];
int ecofair,exefair;

};

//THIS CLASS CONTROLS ALL THE FUNCTIONS RELATED TO


PASSENGERS

class PASSENGER
{
public:
void
ADD_RECORD(int,int,char[26],char[36],int,char,char);
void DELETE_TICKET(int);

Page 68
int DELETE_FLIGHT(int);
void LIST(void);
int LAST_TICKETNO(void);
int SEATS(int);
int FOUND(int);
char *NAME(int);
void PASS_INFO();
void MODIFY();
protected:
char Class,name[26],address[36],sex;
int slno,age,ticketno;
};

//THIS IS THE DERIVED CLASS WHICH CONTROLS ALL THE


FUNCTIONS
//RELATED TO RESERVATION,CANCELLATION,ETC.

class RESERVE : public TICKET,public PASSENGER


{
public:
void RESERVATION(void);
void CANCELLATION(void);
void DISPLAY_TICKET(void);
void DELETE_ALL(void);
};

//FUNCTION TO ADD GIVEN DATA IN THE TICKET


FILE(TICKET.DAT)

void TICKET :: ADD_RECORD(char t_fltno[10],char


t_from[15],char t_to[15],int t_ecofair,int t_exefair)
{
fstream file;
file.open("TICKET.DAT",ios::app);
strcpy(fltno,t_fltno);
strcpy(from,t_from);
strcpy(to,t_to);
ecofair = t_ecofair;
exefair = t_exefair;
file.write((char*)this,sizeof(TICKET));
file.close();
}

Page 69
//FUNCTION TO RETURN FLIGHT NO. FOR THE GIVEN S.NO

char *TICKET :: FLIGHTNO(int sno)


{
fstream file;
file.open("TICKET.DAT",ios::in);
int count = 1;
while(file.read((char*) this,sizeof(TICKET)))
{
if (sno == count)
break;

count++;
}
file.close();
return fltno;
}

//FUNCTION TO GIVE DATA TO ADD RECORDS IN THE TICKET


FILE

void TICKET :: ADDITION(void)


{
fstream file;
file.open("TICKET.DAT",ios::in);
if (!file.fail() )
return;
file.close();
ADD_RECORD("KL176","DELHI","MUMBAI",1500,1700);
ADD_RECORD("KL177","MUMBAI","DELHI",1500,1700);

ADD_RECORD("KL156","DELHI","CALCUTTA",1700,1900);

ADD_RECORD("KL157","CALCUTTA","DELHI",1700,1900);
ADD_RECORD("KL166","DELHI","MADRAS",2100,2300);
ADD_RECORD("KL167","MADRAS","DELHI",2100,2300);

ADD_RECORD("KL176","MUMBAI","CALCUTTA",1900,2100);

ADD_RECORD("KL177","CALCUTTA","MUMBAI",1900,2100);

ADD_RECORD("KL186","MUMBAI","MADRAS",1800,2000);

Page 70
ADD_RECORD("KL187","MADRAS","MUMBAI",1800,2000);

ADD_RECORD("KL196","CALCUTTA","MADRAS",1600,1800);

ADD_RECORD("KL197","MADRAS","CALCUTTA",1600,1800);
}

//FUNCTION TO DISPLAY LIST OF FLIGHTS

void TICKET :: ENQUIRY(void)


{
clrscr();
fstream file;
file.open("TICKET.DAT",ios::in);
gotoxy(30,3);
cout<<"LIST OF THE FLIGHTS";
gotoxy(18,5);
cout<<"Sno. FLIGHT NO. FROM TO
ECO.FAIR EXE.FAIR";
int row = 7,sno = 1;
while(file.read((char*)this, sizeof(TICKET)))
{
gotoxy(18,row);
cout<<sno;
gotoxy(23,row);
cout<<fltno;
gotoxy(34,row);
cout<<from;
gotoxy(44,row);
cout<<to;
gotoxy(53,row);
cout<<ecofair;
gotoxy(63,row);
cout<<exefair;
row++;
sno++;
}
file.close();
}

//FUNCTION TO RESERVE TICKET FOR THE PASSENGERS

Page 71
void RESERVE :: RESERVATION(void)
{
clrscr();
ENQUIRY();
char
t1[15],pclass,pname[26],paddress[36],psex,pfltno[10];
int t2,valid,page,tno,sno;
PASSENGER p;
tno = p.LAST_TICKETNO() + 1;
do
{
valid = 1;
gotoxy(3,23);
clreol();
cout<<"PRESS <ENTER> TO EXIT";
gotoxy(3,20);
clreol();
cout<<"ENTER THE SNO. OF THE FLIGHT : ";
gets(t1);
t2 = atoi(t1);
sno = t2;
if(strlen(t1) == 0)
return;
if(sno < 1 || sno > 12)
{
valid = 0;
gotoxy(3,23);
clreol();
cout<<"ENTER CORRECTLY";
getch();
}
} while(!valid);

int i=1;

fstream file;
file.open("TICKET.DAT",ios::in);

while(file.read((char*)this, sizeof(TICKET)))
{
if(sno == i)
break;
i++;

Page 72
}
file.close();
strcpy(pfltno,fltno);
if(p.SEATS(sno)>=250)
{
gotoxy(5,21);
cout<<"\7Sorry! SEATS ARE NOT AVAILABLE";
getch();
return;
}
gotoxy(3,23);
clreol();
cout<<"E=ECONOMIC,X=EXECUTIVE or PRESS <ENTER>
TO EXIT";
do
{
gotoxy(3,21);
clreol();
cout<<"BY WHICH CLASS YOU WOULD LIKE TO TRAVEL
: ";
pclass = getche();
pclass = toupper(pclass);
if(pclass == 13)
return;
} while(pclass !='E' && pclass !='X');

clrscr();
gotoxy(72,3);
cout<<"<0>-EXIT";
gotoxy(34,2);
cout<<"RESERVATION";
gotoxy(5,5);
cout<<"NAME : ";
gotoxy(5,6);
cout<<"ADDRESS : ";
gotoxy(5,7);
cout<<"SEX M/F : ";
gotoxy(5,8);
cout<<"AGE : ";

do
{
valid = 1;

Page 73
gotoxy(5,25);
clreol();
cout<<"ENTER THE NAME OF THE PASSENGER";
gotoxy(15,5);
clreol();
gets(pname);
if(pname[0] == '0')
return;
if(strlen(pname) < 1 || strlen(pname) > 25)
{
valid = 0;
gotoxy(5,25);
clreol();
cout<<"\7ENTER CORRECTLY {RANGE : 1 TO 25}";
getch();
}
} while(!valid);

do
{
valid = 1;
gotoxy(5,25);
clreol();
cout<<"ENTER THE ADDRESS OF THE PASSENGER";
gotoxy(15,6);
clreol();
gets(paddress);
if(paddress[0] == '0')
return;
if(strlen(paddress) < 1 || strlen(paddress) >
35)
{
valid = 0;
gotoxy(5,25);
clreol();
cout<<"\7ENTER CORRECTLY {RANGE : 1 TO 35}";
getch();
}
} while(!valid);

do
{
gotoxy(5,25);

Page 74
clreol();
cout<<"ENTER THE SEX OF THE PASSENGER";
gotoxy(15,7);
clreol();
psex = getche();
psex = toupper(psex);
if(psex == '0')
return;
} while(psex !='M' && psex !='F' );

do
{
valid = 1;
gotoxy(5,25);
clreol();
cout<<"ENTER THE AGE OF THE PASSENGER";
gotoxy(15,8);
clreol();
gets(t1);
t2 = atoi(t1);
page = t2;
if(t1[0] == '0')
return;
if(page < 1 || page > 100)
{
valid = 0;
gotoxy(5,25);
clreol();
cout<<"\7ENTER CORRECTLY ";
getch();
}
} while(!valid);

clrscr();
gotoxy(11,4);

cout<<"****************************************************
";
gotoxy(11,21);

cout<<"****************************************************
";
gotoxy(33,6);

Page 75
cout<<"TICKET NO. : "<<tno;
gotoxy(17,9);
cout<<from<<" TO "<<to;
gotoxy(45,9);
cout<<"FLIGHT NO. : "<<pfltno;
gotoxy(20,11);
cout<<"PASSENGER NAME : "<<pname;
gotoxy(20,13);
cout<<"ADDRESS : "<<paddress;
gotoxy(20,15);
cout<<"SEX : "<<psex;
gotoxy(20,17);
cout<<"AGE : "<<page;
gotoxy(45,19);
if(pclass == 'E')
cout<<"TOTAL FAIR : "<<ecofair;
else
cout<<"TOTAL FAIR : "<<exefair;

p.ADD_RECORD(tno,sno,pname,paddress,page,psex,pclass);
getch();
}

// FUNCTION TO ADD THE GIVEN DATA IN THE PASSENGER'S


FILE

void PASSENGER :: ADD_RECORD (int tno,int sno,char


pname[26],char paddress[36],int page,char psex,char pclass)
{
fstream file;
file.open("PASS.DAT",ios::app);
ticketno = tno;
slno = sno;
strcpy(name,pname);
strcpy(address,paddress);
age = page;
sex = psex;
Class = pclass;
file.write((char*)this,sizeof(PASSENGER));
file.close();
}
void PASSENGER :: MODIFY()

Page 76
{
int tcno;
char
t1[15],pclass,pname[26],paddress[36],psex,pfltno[10];
int t2,valid,page,tno,sno;

PASS_INFO();
cout<<"\nENTER THE TICKET NUMBER OF THE
PASSENGER";
cin>>tcno;
fstream file;
file.open("PASS.DAT",ios::in|ios::out);
int m=0;
int l;
file.read((char*)this,sizeof(PASSENGER));
while(!file.eof())
{ m++;
if(tcno==ticketno)
{
l=(m-1)*sizeof(PASSENGER);
cout<<l;
getch();
clrscr();
gotoxy(72,3);
cout<<"<0>-EXIT";
gotoxy(34,2);
cout<<"RESERVATION";
gotoxy(5,5);
cout<<"NAME : ";
gotoxy(5,6);
cout<<"ADDRESS : ";
gotoxy(5,7);
cout<<"SEX M/F : ";
gotoxy(5,8);
cout<<"AGE : ";

gotoxy(5,25);
clreol();
cout<<"ENTER THE NAME OF THE PASSENGER";
gotoxy(15,5);
clreol();
gets(pname);

Page 77
gotoxy(5,25);
clreol();
cout<<"ENTER THE ADDRESS OF THE PASSENGER";
gotoxy(15,6);
clreol();
gets(paddress);
gotoxy(5,25);
clreol();
cout<<"ENTER THE SEX OF THE PASSENGER";
gotoxy(15,7);
clreol();
psex = getche();
psex = toupper(psex);

gotoxy(5,25);
clreol();
cout<<"ENTER THE AGE OF THE PASSENGER";
gotoxy(15,8);
clreol();
gets(t1);
t2 = atoi(t1);
page = t2;
cout<<"CLASS:E(ECONOMIC) OR X(EXECUTIVE)";
pclass=getche();
if(strlen(paddress)!=0)
strcpy(address,paddress);
if(strlen(pname)!=0)
strcpy(name,pname);
if(strlen(t1)!=0)
age=page;
if(psex!=13)
sex=psex;
if(pclass!=13)
Class=pclass;
file.seekp(l);
file.write((char*)this,sizeof(PASSENGER));
file.close();
return;
}
else
file.read((char*)this,sizeof(PASSENGER));

Page 78
}
void PASSENGER :: PASS_INFO()
{
fstream file;
file.open("PASS.DAT",ios::in);

cout<<" PASSENGER INFORMATION\n";


cout<<" **************************\n";
gotoxy(2,4);
cout<<"T.NO.";
gotoxy(11,4);
cout<<"S.NO.";
gotoxy(25,4);
cout<<"NAME";
gotoxy(48,4);
cout<<"ADDRESS";
gotoxy(66,4);
cout<<"AGE";
gotoxy(70,4);
cout<<"SEX";
gotoxy(74,4);
cout<<"CLASS";
gotoxy(1,5);

cout<<"****************************************************
***************************";
int tno,sno,page;
char
pname[26],paddress[36],psex,pclass,pfltno[10];
int i=6;
while(file.read((char*)this,sizeof(PASSENGER)))
{
tno=ticketno;
sno=slno;
strcpy(pname,name);
strcpy(paddress,address);
page = age;
psex = sex;
pclass = Class;
gotoxy(2,i);
cout<<tno;
gotoxy(11,i);
cout<<sno;

Page 79
gotoxy(20,i);
cout<<pname;
gotoxy(45,i);
cout<<paddress;
gotoxy(67,i);
cout<<page;
gotoxy(71,i);
cout<<psex;
gotoxy(77,i);
cout<<pclass;
i++;
}
file.close();
}
//THIS FUNCTION RETURNS THE LAST TICKET NO. IN THE
PASSENGER FILE

int PASSENGER ::LAST_TICKETNO(void)


{
fstream file;
file.open("PASS.DAT",ios::in);
int count = 0;
while(file.read((char*)this,sizeof(PASSENGER)))
count = ticketno;
file.close();
return count;
}

//THIS FUNCTION RETURNS TOTAL NO. OF SEATS IN THE


PASSENGER FILE

int PASSENGER :: SEATS(int sno)


{
fstream file;
file.open("PASS.DAT",ios::in);
int count = 0;
while(file.read((char*)this,sizeof(PASSENGER)))
{
if(sno == slno)
count++;
}
file.close();
return count;

Page 80
}

//THIS FUNCTION RETURNS 0 IF THE TICKET NO. IS NOT

FOUND IN THE
//PASSENGER FILE

int PASSENGER :: FOUND(int tno)


{
fstream file;
file.open("PASS.DAT",ios::in);
int found = 0;

while(file.read((char*)this,sizeof(PASSENGER)))
{
if(tno == ticketno)
{
found = 1;
break;
}
}
file.close();
return found;
}

//THIS FUNCTION RETURNS PASSENGER'S NAME FOR THE


GIVEN TICKETNO.

char *PASSENGER :: NAME(int tno)


{
fstream file;
file.open("PASS.DAT",ios::in);
while(file.read((char*)this,sizeof(PASSENGER)))
{
if(tno == ticketno)
break;
}
file.close();
return name;
}

//THIS FUNCTION DISPLAYS THE LIST OF THE PASSENGERS

Page 81
void PASSENGER :: LIST (void)
{
clrscr();
char t1[10];
int t2,sno,valid;
TICKET ticket;
ticket.ENQUIRY();
do
{
valid = 1;
gotoxy(3,23);
clreol();
cout<<"PRESS <ENTER> TO EXIT";
gotoxy(3,20);
clreol();
cout<<"ENTER SNO.OF THE FLIGHT WHOSE DETAILS
YOU WANT";
gets(t1);
t2 = atoi(t1);
sno = t2;
if(strlen(t1) == 0)
return;
if(sno < 1 || sno > 12)
{
valid = 0;
gotoxy(3,23);
clreol();
cout<<"\7ENTER CORRECTLY";
getch();
}
} while(!valid);

clrscr();
int row = 8,found = 0,flag = 0;
char ch;
gotoxy(3,4);
cout<<"FLIGHT NO.----> "<<ticket.FLIGHTNO(sno);
gotoxy(28,2);
cout<<"**LIST OF PASSENGERS**";
gotoxy(5,6);
cout<<"TICKET NO. NAME
CLASS ";
gotoxy(4,7);

Page 82
cout<<"****************************************************
***";
fstream file;
file.open("PASS.DAT",ios::in);
file.seekg(0,ios::beg);
while(file.read((char*)this,sizeof(PASSENGER)))
{
if(sno == slno)
{
flag = 0;
delay(20);
found = 1;
gotoxy(5,row);
cout<<ticketno;
gotoxy(17,row);
cout<<name;
gotoxy(49,row);
if(Class == 'X')
cout<<"EXECUTIVE";
else
cout<<"ECONOMIC";
if(row == 21)
{
flag = 1;
row = 7;
gotoxy(5,23);
cout<<"PRESS ANY KEY TO CONTINUE OR PRESS
<ESC>";
ch = getch();
if(ch == 27)
break;
clrscr();
gotoxy(32,3);
cout<<"LIST OF PASSENGERS";
gotoxy(2,5);
cout<<"TICKET NO. NAME CLASS
";
}
else
row++;
}
}

Page 83
if(!found)
{
gotoxy(5,10);
cout<<"\7RECORDS NOT FOUND";
}
if(!flag)
{
gotoxy(5,23);
cout<<"PRESS ANY KEY TO CONTINUE....";
getch();
}
file.close();
}

//THIS FUNCTION DELETES PASSENGER RECORDS FOR THE


GIVEN TICKET NO.

void PASSENGER :: DELETE_TICKET(int tno)


{
fstream file;
file.open("PASS.DAT",ios::in);
fstream temp;
temp.open("temp.dat",ios::out);
file.seekg(0,ios::beg);
while(!file.eof())
{
file.read((char*)this,sizeof(PASSENGER));
if(file.eof())
break;
if(tno != ticketno)
temp.write((char*)this,sizeof(PASSENGER));
}
file.close();
temp.close();
file.open("PASS.DAT",ios::out);
temp.open("temp.dat",ios::in);
temp.seekg(0,ios::beg);
while(!temp.eof() )
{
temp.read((char*)this,sizeof(PASSENGER));
if(temp.eof() )
break;
file.write((char*)this,sizeof(PASSENGER));

Page 84
}
file.close();
temp.close();
}

//THIS FUNCTION DELETES PASSENGER RECORDS FOR THE


GIVEN FLIGHTNO.

int PASSENGER :: DELETE_FLIGHT(int sno)


{
fstream file;
file.open("PASS.DAT",ios::in);
fstream temp;
temp.open("temp.dat",ios::out);
file.seekg(0,ios::beg);
int found = 0;
while(!file.eof() )
{
file.read((char*)this,sizeof(PASSENGER));
if(file.eof() )
break;
if(sno !=slno)
temp.write((char*)this,sizeof(PASSENGER));
else
found = 1;
}
file.close();
temp.close();
file.open("PASS.DAT",ios::out);
temp.open("temp.dat",ios::in);
temp.seekg(0,ios::beg);
while(!temp.eof() )
{
temp.read((char*)this,sizeof(PASSENGER));
if(temp.eof() )
break;
file.write((char*)this,sizeof(PASSENGER));
}
file.close();
temp.close();
return found;
}

Page 85
//THIS FUNCTION CANCELS PASSENGER'S TICKET

void RESERVE ::CANCELLATION(void)


{
clrscr();
char t1[10],ch;
int t2,tno,valid;
do
{
valid = 1;
gotoxy(3,23);
clreol();
cout<<"PRESS <ENTER> TO SEE LIST OR 0 TO EXIT
";
gotoxy(3,20);
clreol();
cout<<"ENTER TICKETNO. OF PASSENGER TO CANCEL
THE TICKET";
gets(t1);
t2 = atoi(t1);
tno = t2;
if(t1[0] == '0')
return;
if(strlen(t1) == 0)
{
valid = 0;
LIST();
clrscr();
}
if(!FOUND(tno) && valid)
{
valid = 0;
gotoxy(3,23);
clreol();
cout<<"\7RECORD NOT FOUND";
getch();
}
} while(!valid);

//PAGE 11

clrscr();

Page 86
fstream file;
file.open("PASS.DAT",ios::in);
while(file.read((char*)this,sizeof(PASSENGER)))
if(ticketno == tno)
break;
file.close();
int i = 1;
file.open("TICKET.DAT",ios::in);
while(file.read((char*)this,sizeof(TICKET)))
{
if(slno == i)
break;
i++;
}
file.close();
PASSENGER p;
gotoxy(11,4);

cout<<"****************************************************
";
gotoxy(11,21);

cout<<"****************************************************
";
gotoxy(33,6);
cout<<"TICKET NO. : "<<tno;
gotoxy(17,9);
cout<<from<<" TO "<<to;
gotoxy(45,9);
cout<<"FLIGHT NO. : "<<fltno;
gotoxy(20,11);
cout<<"PASSENGER NAME : "<<p.NAME(tno);
gotoxy(20,13);
cout<<"ADDRESS : "<<address;
gotoxy(20,15);
cout<<"SEX : "<<sex;
gotoxy(20,17);
cout<<"AGE : "<<age;
gotoxy(45,19);
if(Class == 'E')
cout<<"TOTAL FAIR : "<<ecofair;
else
cout<<"TOTAL FAIR : "<<exefair;

Page 87
do
{
gotoxy(10,23);
clreol();
cout<<"CANCEL THIS TICKET (Y/N) : ";
ch = getch();
ch = toupper(ch);
} while(ch != 'Y' && ch != 'N');

if(ch == 'N')
return;
DELETE_TICKET(tno);
gotoxy(10,25);
cout<<"\7TICKET CANCELLED";
getch();
}

//THIS FUNCTION DISPLAYS THE PASSENGER'S INFORMATION

void RESERVE :: DISPLAY_TICKET(void)


{

// PAGE 12

clrscr();
char t1[10],ch;
int t2,tno,valid;
do
{
valid = 1;
gotoxy(3,23);
clreol();
cout<<"PRESS <ENTER> TO SEE LIST OR 0 TO
EXIT";
gotoxy(3,20);
clreol();
cout<<"ENTER THE TICKETNO. OF THE PASSENGER :
";
gets(t1);
t2 = atoi(t1);
tno = t2;
if(t1[0] == '0')
return;

Page 88
if(strlen(t1) == 0)
{
valid = 0;
LIST();
clrscr();
}
if(FOUND(tno) && valid)
{
valid = 0;
gotoxy(3,23);
clreol();
cout<<"\7RECORD NOT FOUND";
getch();
}
} while(!valid);

clrscr();
fstream file;
file.open("PASS.DAT",ios::in);
while(file.read((char*)this,sizeof(PASSENGER)))
if(ticketno == tno)
break;
file.close();
int i = 1;
file.open("TICKET.DAT",ios::in);
while(file.read((char*)this,sizeof(TICKET)))
{
if(slno == i)
break;
i++;
}
file.close();
PASSENGER p;
gotoxy(11,4);

cout<<"****************************************************
";
gotoxy(11,21);

cout<<"****************************************************
";
gotoxy(33,6);
cout<<"TICKET NO. : "<<tno;

Page 89
gotoxy(17,9);
cout<<from<<" TO "<<to;
gotoxy(45,9);
cout<<"FLIGHT NO. : "<<fltno;
gotoxy(20,11);
cout<<"PASSENGER NAME : "<<p.NAME(tno);
gotoxy(20,13);
cout<<"ADDRESS : "<<address;

// PAGE 13

gotoxy(20,15);
cout<<"SEX : "<<sex;
gotoxy(20,17);
cout<<"AGE : "<<age;
gotoxy(45,19);
if(Class == 'E')
cout<<"TOTAL FAIR : "<<ecofair;
else
cout<<"TOTAL FAIR : "<<exefair;
gotoxy(10,25);
cout<<"PRESS ANY KEY TO CONTINUE....";
getch();
}

//THIS FUNCTION GIVES FLIGHT NO. TO DELETE ALL


PASSENGER RECORDS

void RESERVE :: DELETE_ALL(void)


{
clrscr();
ENQUIRY();
char t1[5];
int t2,valid,sno;
do
{
valid = 1;
gotoxy(3,23);
clreol();
cout<<"PRESS <ENTER> TO EXIT";
gotoxy(3,20);

Page 90
cout<<"ENTER SNO. OF THE FLIGHT TO DELETE
RELATED RECORDS";
gets(t1);
t2 = atoi(t1);
sno = t2;
if(strlen(t1) == 0)
return;
if(sno < 1 || sno > 12)
{
valid = 0;
gotoxy(3,23);
clreol();
cout<<"\7ENTER CORRECTLY";
getch();
}
} while(!valid);

gotoxy(3,23);
if(!DELETE_FLIGHT(sno) )
cout<<"\7RECORDS NOT FOUND.PRESS ANY KEY TO
CONTINUE....";
else
cout<<"\7RECORDS DELETED.PRESS ANY KEY TO
CONTINUE....";
getch();
}

//THIS IS THE MAIN FUNCTION WHICH DISPLAYS MENU AND


CALLS FUNCTIONS

void main(void)
{

// PAGE 14

PASSENGER p;
TICKET ticket;
RESERVE r;
ticket.ADDITION();
int ch,ch1;
while(1)
{
clrscr();

Page 91
gotoxy(29,9);
cout<<"AIR TICKET RESERVATION";
gotoxy(29,10);
cout<<"~~~~~~~~~~~~~~~~~~~~~~~~~~";
gotoxy(30,11);
cout<<"1 : RESERVATION";
gotoxy(30,12);
cout<<"2 : CANCELLATION";
gotoxy(30,13);
cout<<"3 : PASSENGER RECORDS ->";
gotoxy(30,14);
cout<<"4 : ENQUIRY";
gotoxy(30,15);
cout<<"5 : LIST OF PASSENGERS";
gotoxy(30,16);
cout<<"6 : QUIT";
gotoxy(30,18);
cout<<"ENTER YOUR CHOICE : ";
cin>>ch;
switch(ch)
{
case 1:
r.RESERVATION();
break;

case 2:
r.CANCELLATION();
break;

case 3:
clrscr();
gotoxy(29,10);
cout<<" PASSENGER RECORDS ";
gotoxy(29,11);
cout<<"~~~~~~~~~~~~~~~~~~~~~~~";
gotoxy(33,12);
cout<<"1 : PASSENGER INFORMATION";
gotoxy(33,13);
cout<<"2 : MODIFY";
gotoxy(33,14);
cout<<"0 : EXIT";
gotoxy(33,16);
cout<<"ENTER YOUR CHOICE--->";

Page 92
cin>>ch1;
if(ch1==1)
{clrscr();
p.PASS_INFO();
getch(); }
else
if(ch1==2)
{clrscr();
p.MODIFY();}
else
break;
break;

case 4:
ticket.ENQUIRY();
gotoxy(2,23);
cout<<"PRESS ANY KEY TO CONTINUE....";
getch();
break;

case 5:
p.LIST();
break;

case 6:
exit(0);

default:
cout<<"ENTER THE CORRECT CHOICE";
}
}

Page 93
OUTPUT SCREEN

Page 94
LOGIN PAGE OF
AIRLINES TICKET RESERVATION

Page 95
Si NO. OF FLIGHTS

Page 96
LIST OF THE FLIGHTS

Page 97
PASSENGER RECORDS

Page 98
LIST OF THE FLIGHTS

Page 99
PASSENGERS INFORMATION

Page 100
SOFTWARE TESTING & IMPLIMENTATION:

SOFTWARE TESTING:
The purpose of this document is to cover testing of Horizon Airways project from all
aspects i.e. from module wide testing to system integration testing.
Software testing is a process of executing a program with objective of finding an
error. Software quality should be a primary concern in software development efforts.
Software testing and evaluation are traditional method of checking software quality. It
consists of putting together various coded pieces of a design, testing them and correcting
the parts of the code or the design that is not correct. At this stage some errors are
introduced purposely to test whether the program will spot them.

Page 101
Test summary document with test results (Quality Record) for each test case with
problems found during the test execution. After review of test summary document, it will
be decided if any test case is to be repeated or if the identified problem should be
converted into “a defect” to be fixed in subsequent release of product.

Data entry:

 Is alphanumeric data entry properly echoed and input to the system?


 Do graphical modes of data entry work properly?
 Is invalid data properly recognized?
 Are data input messages intelligible?
TESTING STRATEGIES:
A strategy for software testing may also be viewed in the context of spiral. Unit testing
begins at the vertex of the spiral and concentrates on each unit of the software as
implemented in source code. Testing progresses the moving outward along the spiral to
integrations testing. Where the focus is on design and the and the construction of the
software architecture. Taking another turn outward on the spiral, we encounter validation
testing, where requirements established as part of software requirements analysis are
validated against the software that has been constructed. Finally, arrive at system testing,
where the software and other system elements are tested as a whole. Here I will specify
each testing but the outcome of the testing and reports is not included because they are
very large and I have to give Project- Report in limited page.
Unit testing: In Unit testing module interface, local data structures. Boundary
conditions, independent paths, error handling paths are tested.

Module interface is tested to ensure that information properly flows into and our of the
program unit under test. The local data is structure is examined to ensure that data stored
temporarily maintained its integrity during all steps in an algorithm’s execution.
Boundary conditions are tested to ensure that the module operates properly at boundaries

Page 102
established to limit or restrict processing. All independent paths through the control
structure are exercised to ensure that all statements in a module have been executed at
lest once. And finally, all error handling paths are tested.

Thus the unit testing is done after code development, reviewed, and verified for correct
syntax and in unit testing we execute each module one by one and prepare a report of
result.

Integration technique:
Integration testing is a systematic technique for constructing the program structure while
conducting tests to uncover errors associated with interfacing. The objective is to take
unit tested modules and build a program structure that has been dictated by design. Their
are three type of integration testing, each are discussed below.

TOP DOWN INTEGERATION:


This technique is an approach to construction of program structure. Modules are
integrated by moving downward through the control hierarchy, beginning with the main
control module. Modules subordinate to the main control module are incorporated into
the structure either into a depth-first or breadth first manner. I used depth-search for
testing which integrate all modules on a major control path of structure.

BOTTOM OF INTEGERATION:
This technique begins construction and testing with atomic modules. Because modules
are integrated from the bottom up, processing required for module subordinate to a given
level’s always available and the need for stubs are eliminated.

REGRESSION TESTING:

Page 103
This technique is the activity that help to ensure that changes during the testing do not
introduce unintended behavior or additional errors.

Validation testing:
Validation succeeds when software functions in a manner that can be reasonably
expected by the customer. There are two types of validation testing these are discussed
below.

ALPHA TESTING:
The alpha tests are conducted at the developer’s site by a customer. The software is used
in a natural setting with the developer. Alpha tests are conducted in a controlled
environment.

BETA TESTING:
The beta tests are conducted at one or more customer sites by the end use of the
software. Unlike, the alpha testing, the developer is generally not present. Therefore, the
beta test is a “live” application of the software in an environment that cannot be
controlled by the developer. The customer records all problems that are encountered
during beta testing and reports these to the developer at regular intervals. As a results of
problems reported during beta test. The software developer makes modifications and
then prepares for release of the software product to the entire customer base.
System testing:
It is a series of different test whose primary purpose is to fully exercise the computer-
based system. These are discussed below:

RECOVERY TESTING:
It the system tests that forces the software to fail in a variety of ways and verifies that
recovery is properly performed.

SECURITY TESTING:

Page 104
It attempts to verify that protection mechanisms built into a system will in fact protect, it
from improper penetration.

STRESS TESTING:
It executes a system in a manner that demands resources in abnormal quantity,
Frequency, or volume.

PERFORMANCE TESTING:
It is designed to test run-time performance of software within the context of an integrated
system. It occurs throughout all steps in the testing process.

TESTING METHODOLOGIES

GUI Verification

Field Level Validation


Stress/Load Testing
Global Level Validation GUI Testing
Profile Testing
Consistency of GUIs
Database Script Testing
Testing Standard Controls Testing Strategy
Fail-over Testing

Compatibility Testing

Functional Testing Performance Testing

Scenario Based Testing Negative Testing

Page 105
IMPLEMENTATION
IMPLEMENTATION PLAN:
Implementation follows the forms to the detailed design stage. This effect of the
user department and system designer in getting the new steps in operation.
The following steps are performed during implementation:
1) System Testing: It is tested and ensured that the different modules are working
correctly individually and as a whole.
2) Review and Maintenance: Once the system becomes operational, it would be
examined to see if it has met its objective.
The system is reviewed and maintained periodically for the following reasons:
 To deal with unforeseen problems arising in the operation i.e. programs may need
to be dealt with unforeseen circumstances.
 To confirm that the planning objects have been met and if not work to achieve so.
 To ensure that the system is able to cope with changing requirements.

Page 106
IMPLEMNTATION PROCEDURE:
The users in the organization are familiar with the basics of computers but will not be aware
with working of the new system. A training program will be conducted for three days to guide
the user about the new system. After the completion of the training program actual
implementation will start as follows:-
A. Pilot run of system.
B. Parallel run of system.
C. Change over of the system.
Pilot Run of System:
In this phase historical data will be entered into the system as test data and the output of the
system will be checked against the historical reports.
Parallel Run of System:
In this phase both the systems will be run in parallel form for about two to three months and the
results of both will be checked manually. After the completion of the time period, system will be
handed over to the management.
Change Over of the System:
This is the last phase of the implementation procedure. In this phase all the data will be
entered into the system by the user and the management will discontinue the manual
system.

technique that can be used for several purposes, including


scheduling, budgeting, and resource planning. A Gantt
chart is a bar chart, with each bar representing an
activity. The bars are drawn against a time line. The
length of each bar is proportional to the length of time
planned for the activity

Page 107
technique that can be used for several purposes, including
scheduling, budgeting, and resource planning. A Gantt
chart is a bar chart, with each bar representing an
activity. The bars are drawn against a time line. The
length of each bar is proportional to the length of time
planned for the activity

SYSTEM SECURITY MEASURES


To do an adequate job on security, a systems analyst must analyze the risk, exposure, and costs

and specify measures such as passwords and encryption to provide protection. The backup

copies of software and recovery restart procedures must be available when needed.

This system will provide the facilities for both customer & operators on the same portal. So

security constraints must be applied carefully. A customer wouldn’t require to login into the

reservation system for reservation. He will simply view all the information on web. While a

counter assistant will require to have user ID & Password. After proper validation checking of

that operator he can make transactions. His total transaction details will also be recorded along

with his ID in a log Table, so that any misusage of the system can be prohibited.

System security refers to various validations on data in form of checks and controls to avoid the
system from failing. It is always important to ensure that only valid data is entered and only
valid operations are performed on the system. The system employs two types of checks and
controls:

Client Side Security


Various client side validations are used to ensure on the client side that only valid data is
entered. Client side validation saves server time and load to handle invalid data. Some
checks imposed are:
 A JavaScript program is used to fill up date in the date fields only.

Page 108
 JavaScript is used to ensure that numeric field is filled with numeric data only.
 Maximum lengths of the fields of the forms are appropriately defined.
 Forms can not be submitted without filling up the mandatory data so that manual
mistakes of submitting empty fields that are mandatory can be sorted out at the client
side to save the server time and load.
 Tab-Indexes are set according to the need and taking into account the ease of user
while working with the system.

Server Side Security


Some checks can’t be applied at client side. Server side checks are necessary to save the
system from failing and intimating the user that some invalid operation has been
performed or the performed operation is restricted. Some of the server side checks
imposed are:
 Server side constraint has been imposed to check for the validity of Primary key and
foreign key. A primary key value cannot be duplicated. Any attempt to duplicate the
primary key value results into a message intimating the user about that. Values
through the forms using foreign key can be updated only for the existing foreign key
values.
 Exceptions are caught in the programs and are used constructively to avoid system
failure. User is intimated through appropriate messages about the successful
operations or exceptions occurring at server side.
 Access permissions to various types of users are controlled according to the
organizational structure. Only permitted users can log on to the system and can have
access according to their category. User-name, passwords and permissions are
controlled on the server side.

Page 109
PERT chart and GANTT chart

PERT Chart:

1 JUL 1 JUL, 1AUG 2AUG , 20 AUG


Start Analysis and Design Training on iButton

Help Testing Coding API Development

28 SEP 24 SEP,18 SEP 20AUG, 18 SEP 2AUG , 20 AUG

A PERT Chart is a network of boxes and arrows. To create PERT chart, first we
need to list all the activities required for completion of the project and estimate how long
each will take. Then we must determine the dependence of activities on each other. The
PERT chart gives a graphical representation of this information. PERT chart is always
used by the project manager to answer the questions like which all activities are
necessary or there in the project and how long each will take.

Here we are using boxes to represent the activities. The arrows are used to show the
dependencies of activities on one another. The activity at the head of an arrow
cannot start until the activity at the tail of the arrow is finished. The boxes in a PERT
chart can be decorated with starting and ending dates for activities.

Page 110
GANTT Chart:
GANTT charts are a project control.

1 JUL 1 AUG 20 AUG 18 SEP 28 SEP

Start
Analysis &
Design Training

Developin
g API
Coding

Test
Help
file
creati
on
Finish

Page 111
FUTURE SCOPE OF THE PROJECT

This project “HORIZON AIRWAYS RESERVATION SYSTEM” is very flexible and


simple. The system will be developed as a module of the airways system and will be well
documented.
Following modifications are possible in future:

 New modules and functionality can be added without many troubles.


 Automatic reservation by customer through Credit Card No. & PIN No.
 This module should be developed as an affiliate program that can be easily
integrated with various Web sites.

REFERENCES

Page 112
During making this project I learn c++ and for programming.

I took help from these various books.

1. Object Oriented programming ( Robert lafore )

2. Object oriented programming ( E.Balagurusamy )

3. Introduction to c++(Sumita arora)

4. Let Us C(Yashwant kanitkar)

5. Software Engineering: ROGER S PRESSMAN

6. System Analysis and Design Methods: GALGOTIA PUBLICATIONS

Page 113

S-ar putea să vă placă și