Anda di halaman 1dari 332

l

Programme Code : BCA


Course Title : Project
Title of the Project : RAILWAY RESEVATION
SYSTEM
Enrolment No : !"#!$%&%&
N'me : (EEN) SAINI
A**ress : C+
&",-./(0A1ANP)RA/2EL0I+
&&!!$#

2'te :
Signature :
Guides Signature :

2
TA(LE O3 CONTENTS
Ch'4ter No 2escri4tion P'5e No

Ori5in'l Co46 of the A44ro7e* Perform'88888888
Certific'tes of Ori5in'lit688888888888
Curriculum Vit'e of the 9ui*e888888888888
S6no4sis8888888888888888888

& Intro*uction : O;jecti7es

Intro*uction88888888888888888
O;jecti7es888888888888888888
< S6stem An'l6sis888888888888888888
I*entific'tion of the nee*88888888
Prelimin'r6 In7esti5'tion88888888
3e'si;ilit6 Stu*6888888888888
# Soft='re En5ineerin5 P'r'*i5m888888888888
3
% Soft='re Re>uirement S4ecific'tions ?SRS@8888888
$ 2esi5n8888888888888888888888
2f* 8888888888888888
Entit6 Rel'tionshi4 ?ER@ 2i'5r'm888
Test c'se88888888888888
2't' Structure of T';les8888888
2escri4tion of T';les888888888
2't' 2iction'r6 of T';les8888888
3orms8888888888888888
Lo5ic 'n* 2escri4tion of Mo*ules88
" Co*in58888888888888888888888
. Co*e Efficienc6 'n* O4timiA'tion Co*e888888
, V'li*'tion ChecBs888888888888888888
C Testin5 ?Testin5 Techni>ues 'n* Str'te5ies@88888
&! Securit6 Me'sures T'Ben88888888888888
&& WorB Sche*ule 'n* Cost Estim'tion888888888
&< Re4orts8888888888888888888888
&# Limit'tions of the Project8888888888888888
&% 3uture Sco4e of Project8888888888888888

&$(i;lio5r'4h6888888888888888888888
4
Program Code : BCA
Course Code : CS-76
5
Course Title : Project
Project Title : Railway Reservation System
Enrolment o! : "6#"$%&%&
ame : Beenu saini
Address : C- &6'(7) B*ajan+ura
,ate :
Signature o- student :
Signature o- guide :
6
&! Title o- t*e Project!
.! /ntroduction!
#! 01jective o- t*e Project!
%! Project category!
$! Analysis and design!
6! ,2,3s) ER, and Ta1les!
7! 4odule descri+tion!
'! Process logic!
5! re+ort
&"! Tools(Plat-orms) 6anguages to 1e used!
&&! /s t*ere any client7
&.! Sco+e o- 2uture A++lication!
7
8
INTRO2)CTION
We know that train transport facility is very important for us. Indian railway
is at fourth ranked in the World and first ranked in the Asia to provide more
and better facility. The main problem of Indian railway is ticket reservation.
And the solution of this problem is online ticket reservation through internet.
railway reservation system is an application software that has been
developed for provide a complete automated and computerized solution to
railway reservation. The railway reservation software has a very interactive
interface and is user friendly. The railway reservation software is to provide
a complete functionality for railway ticket reservation. Example
!egistration "etails# $ustomer "etails# %tatus "etails# reservation of train#
cancellation of reservation# train information their schedule and fare details.
And also more information about ticket reservation.
The %ystem records each and every transaction in computers and
saves the time that was too long in case of manual recording. The %ystem
keeps all Train !elated Information and does most of the work
automatically like generating &assenger 'umber (PR o!)# $alculating
*ares# $hecking Train schedule etc.
9
This system uses +isual %tudio ,--. as a frontend tool and /racle 0-g as
the backend tool that has been manipulate the database.
l0
O(1ECTIVES
The main ob1ective of developing this kind of product is to applying the
information technology for !AI2WA3 reservation. It provides a well
maintained information structure for processing the transactions. The main
idea behind is to provide a complete system to cater to all the activities that
take place in reservation of railway ticket. The target is to provide# add and
apply information technology in the Indian railway ticket reservation
software with very fast service like in4uiry service to customers without any
error and it is to provide better customer satisfaction. It records each and
every transaction in computers and saves the time that was too long in
case of manual recording.
The I'"IA' railway reservation includes the complete data# which include
train information# fare information# passenger information# reservation#
cancellation# train schedule# rout information# in4uiry# etc.
The primary ob1ectives behind the development of the 5Indian railway
reservation system6 are as follows7
%peeding up all the transactions.
ll
Enabling the !AI2WA3 !E%E!+ATI/' %3%TE8 to maintain its data
through computers.
9uick and fast services to the customers.
!emove the old computerized by transaction handling with the fast
$omputerized system.
Applying a reliable and efficient functionality.
%ave time and efforts.
8aking the %ystem reliable and secured.
&roviding the security to valuable data
l2
PO1ECT CATE9ORY
This pro1ect belongs to the category of "atabase Applications. All the
data about the train# registration of passenger# booking of reservation# train
information# staff# cancellation of reservation# train scheduling are
maintained through /!A$2E 0-:. The records about the entire passenger
coming for en4uiry the train# making reservation and cancellation of
reservation are stored in the database and can be retrieved on the basis of
4uery. The data maintenance and manipulation is an important aspect of
this pro1ect.
The application controls great amount of data# which is updated and
maintained using /!A$2E 0-: "ATA;A%E.

l3

l4
An'l6sis Re4orts
Requirements Definition - A software re4uirement is an abstract
description of the services that the system shall provide and the constraints
under which the system must operate.
!e4uirements determination involves studying the current business system
to find out how it works and where improvements should be made. %ystem
studies result in an evaluation of how current methods are working and
whether ad1ustments are necessary or possible.
A re4uirement is a feature that must be included in a new system. It may
include a way of capturing or processing data# producing information#
controlling a business activity# or supporting management. The
determination of re4uirements thus entails studying the existing system and
collecting details about it to find out what these re4uirements.
!e4uirements can either be functional or non functional.
Requirement Analysis - !e4uirement Analysis is a %oftware
Engineering task that bridges the gap between system level re4uirements
l5
engineering and software design. In the proposed pro1ect %oftware
!e4uirements Analysis have been divided into five areas of effort.
0. &roblem recognition
,. Evaluation and %ynthesis
<. 8odeling
=. %pecification
.. !eview
!e4uirements Elicitation for the %oftware7 ;efore re4uirements can be
analyzed# modeled or specified they are gathered through an elicitation
process.
$ontext free 4uestions were asked to the management people belonging to
different large organizations> institutes regarding how they would
characterize a good output that would generate a successful solution# what
kind of problems will this solution address# how they describe the
l6
environment in which the solution will be used and will special performance
issues or constraints effect the way the solution is approached.
Software Engineering paradigm applied :
A. E!"#D#$#G%.
*or develop the software the basic thing is that what is the model will
be used. The model will be used is of great importance for
development of the software.
In the waterfall model# the se4uence of the activities performed in a
software development pro1ect7 re4uirement analysis# pro1ect planning#
system design# detailed design# coding# and unit testing# system
integration and testing. This is the order the different phases will be
apply for develop of the pro1ect.
2inear ordering of the phases is the important for the development of
the software because by using this model you can follow the phases
l7
in the linear order. *irst the re4uirement analysis is done then you
can proceed the next phase like
"esigning. This model is used when you know all the phases in
advance i.e. you know the re4uirement of the client. ;ecause
re4uirement analysis is important for the development of the
software. *or the development of the software there are two parties
are involved in the development of the software ? a client and a
developer. 8ost often the re4uirement of the client does not know
and the re4uirement of the client will be changed. %o before using
this model re4uirement of the client is know in advanced.
To overcome these problems we can used the +rototy+e
model. The basic idea for using this model is that the re4uirements
have not known initially. In this model a prototype is build to
understand the re4uirements. This prototype is developed based on
the currently known re4uirements. The prototype means to develop
the formal model of the software which meats the current
re4uirements. ;y using this prototype# the client can get an actual
feeling of the system because the interaction with the prototype can
enable the client to better understand the re4uirements of the desired
system. ;y using this model there is no work manually. ;y using this
model we can create a prototype# which meets the primary
l8
re4uirements of the reservation center. ;y seeing this model the user
knows the re4uirements of the reservation center. In the waterfall
model the re4uirements had been known in advanced. To solve this
problem we can used the +rototy+e model. The +rototy+ing model
is given below7
Fig. The Prototyping Model
The development of the prototype typically starts when the preliminary
version of the re4uirements specification document has been developed.
After developed the prototype# the end users and clients are given an
opportunity to use the prototype. ;ased on the experience# they provide the
feedback to the developers regarding the prototype7 what is correct# what is
needs to be modified# what is missing# what is not needed# etc. In this
l9
Re>uirements
An'l6sis
2esi5n
Co*e
2esi5n
Co*e Test
software when we give the prototype to the client @ they give the feedback
like the needed of the login in the software.
20
2l
22
23
24
2ATA-TA(LE STR)CT)RE
& )SERDLO9IN
S.
NO.
FlELD NAME DATA TYPE WlDT
H
Constraints
l. USER_lD VARCHAR2 20 Primary key
2. PASSWORD VARCHAR2 20
< A2MINISTRATERDLO9IN
S.
NO.
FlELD NAME DATA TYPE WlDT
H
Constraints
l. ADMlNlSTRATER_lD VARCHAR2 20 Primary key
2. PASSWORD VARCHAR2 20
25
# TRAIN IN3ORMATION
S.
NO.
FlELD NAME DATA TYPE WlDT
H
Constraints
l. TRAlN NO. VARCHAR2 20 Primary key
2. TRAlN NAME VARCHAR2 50
3. SOURCE VARCHAR2 20
4. DESTlNATlON VARCHAR2 20
5. DEPERTURE TlME VARCHAR2 20
6. ARRlVAL TlME VARCHAR2 20
7. CATEGORY VARCHAR2 20
8. BlRTH NUMBER (8)
26
% 3ARE IN3ORMATION
S.
NO.
FlELD NAME DATA TYPE WlDTH Constraints
l. TRAlN NO. VARCHAR2 20 Foreign key
2. TRAlN NAME VARCHAR2 50
3. SLEEPER_VlA
l
NUMBER (8,2)
4. SLEEPER_VlA
2
NUMBER (8,2)
5. SLEEPER_VlA
3
NUMBER (8,2)
6. SLEEPER_VlA
4
NUMBER (8,2)
7. AC3_VlA l NUMBER (8,2)
8. AC3_VlA 2 NUMBER (8,2)
9. AC3_VlA 3 NUMBER (8,2)
l0. AC3_VlA 4 NUMBER (8,2)
ll. AC2_VlA l NUMBER (8,2)
l2. AC2_VlA 2 NUMBER (8,2)
l3. AC2_VlA 3 NUMBER (8,2)
l4. AC2_VlA 4 NUMBER (8,2)
l5. ACl_VlA l NUMBER (8,2)
l6. ACl_VlA 2 NUMBER (8,2)
l7. ACl_VlA 3 NUMBER (8,2)
l8. ACl_VlA 4 NUMBER (8,2)
27
$ RESERVATION

S.
NO.
FlELD NAME DATA TYPE WlDTH Constraints
l. TRAlN NO. VARCHAR2 20 Foreign key
2. TRAlN NAME VARCHAR2 50
3. D of trav DATE
4. SOURCE VARCHAR2 20
5. DESTlNATlON VARCHAR2 20
6. STATUS VARCHAR2 20
7. NAME VARCHAR2 20
8. AGE NUMBER (3)
9. GENDER VARCHAR2 6
l0. QUOTA VARCHAR2 20
ll. PNR_NO VARCHAR2 20 Foreign key
l2. S No. NUMBER (2)
l3. B No. VARCHAR2 20
l4. Fare Number 8,2
l5. Paid fare Number 8,2
28
" CANCELLATION

S.
NO.
FlELD NAME DATA TYPE WlDTH Constraints
l. TRAlN NO. VARCHAR2 20 Foreign key
2. TRAlN NAME VARCHAR2 50
3. D of trav DATE
4. SOURCE VARCHAR2 20
5. DESTlNATlO
N
VARCHAR2 20
6. STATUS VARCHAR2 20
7. NAME VARCHAR2 20
8. AGE NUMBER (3)
9. GENDER VARCHAR2 6
l0. QUOTA VARCHAR2 20
ll. PNR_NO VARCHAR2 20 Foreign key
l2. D o c Date
29
. PASSEN9ER IN3ORMATION
S.
NO.
FlELD NAME DATA TYPE WlDTH Constraints
l. PNR_NO. VARCHAR2 20 Primary key
2. TRAlN NO. VARCHAR2 20 Foreign key
3. TRAlN NAME VARCHAR2 20
4. NAME VARCHAR2 20
5. GENDER VARCHAR2 20
6. AGE Number 3
7. QUOTA VARCHAR2 20
8. ADDRESS VARCHAR2 l00
9. TEL NUMBER Varchar2 (l0)
l0. D of trav DATE
30
, STA33 IN3ORMATION
S.
NO.
FlELD NAME DATA TYPE WlDTH Constraints
l. lD VARCHAR2 20 Primary key
2. NAME VARCHAR2 20
3. GENDER VARCHAR2 6
4. AGE Number 3
5. ADDRESS VARCHAR2 200
6. D o b DATE
7. D o j DATE
8. POST VARCHAR2 20
9. DEPARTMENT VARCHAR2 20
3l
C ROOT IN3ORMATION

S.
NO.
FlELD NAME DATA TYPE WlDTH Constraints
l. TRAlN NO. VARCHAR2 20 Foreign key
2. TRAlN NAME VARCHAR2 50
3. VlAl VARCHAR 20
4. VlA2 VARCHAR2 20
5. VlA3 VARCHAR2 20
6. VlA4 VARCHAR2 20
7. DlSTANCEl VARCHAR2 20
8. DlSTANCE2 VARCHAR2 20
9. DlSTANCE3 VARCHAR2 20
l0. DlSTANCE4 VARCHAR2 20
ll. ARRlVALl TlME VARCHAR2 20
l2. ARRlVAL2 TlME VARCHAR2 20
l3. ARRlVAL3 TlME VARCHAR2 20
l4. ARRlVAL4 TlME VARCHAR2 20
l5. DEPERTUREl TlME VARCHAR2 20
l6. DEPERTURE2 TlME VARCHAR2 20
l7. DEPERTURE3 TlME VARCHAR2 20
l8. DEPERTURE4 TlME VARCHAR2 20
&"!Sc*edule /n-ormation
32
33
2ield ame ,ata Ty+e Si8e Constraint
Train no. +archar, ,- *oreign key
Arr time +archar, ,-
"ept time +archar, ,-
%top time +archar, 0-
"elay time +archar, 0-
Train name +archar, ,-
MO2)LE 2ESCRIPTION
&)SERDLO9IN:+ This module includes the details about the user means
who use this software. And the details are like as user id and password.
<A2MINISTRATER LO9IN:+ This module includes the details about
administrator like administrator id and password. ;ecause a administrator
have all permission related to record like updation# deletion and etc.
# TRAIN IN3ORMATION:+ This module includes the details about the train
which is in running operation in the Indian railway having reservation
facility. And the details are train no# train name# source# destination# arrival
time# departure time and etc.
% 3ARE IN3ORMATION:+ This module includes the details about the fare
of train. The fare of ticket depends on the route# it means from source
station to route. *or this# this module includes the all basic information like
34
what is the fare of source to particular routeA. And the details are train no#
train name# class and etc.
$ RESERVATION:+ This module includes the details about the
reservation made by the passenger. And the details are pnr no# train no#
train name# source# destination# fare# paid fare# d o trav and etc.
" CANCELLATION:+ This module includes the details about the
cancellation of ticket which is issued by Indian railway. The details are pnr
no# train no# train name# source# destination# cancellation amount and
return amount and etc.
. PASSEN9ER IN3ORMATION:- This module includes the details about
the passenger who comes to make the reservation. And the details are like
as pnr no# name# address# tel no and etc.
, STA33 IN3ORMATION:+ This module includes the details about the
staff who is working in the reservation center and who make the
35
reservation. And the details are like as staff id# staff name# staff address# d
o b# d o 1 and etc.
C ROOTS IN3ORMATION:+ this module includes the details about the
root on which any train of Indian rail runs. And for which a passenger can
make the reservation. And the details are like as train no# train name# root0#
root,# root<# fare0# fare,# fare<# class and etc.
&! TRAIN SC0E2)LE:+ this module includes the details of train
scheduling. And the details are like train no# train name# arrv time# dept
time# stop time# delay time and etc.
Process 6ogic
36
T*is so-tware +rocesses in t*e -ollowing manner:
The passenger will visit the reservation center for reserving the Ticket in
the train. *or this purpose he>she has to specify the source and the
destination and the date for which the reservation is re4uired. And also
he>she has to fill the passenger detail form like their name# address and
telephone number. The operator would check for the status of the train
re4uired by the passenger. If there are enough vacant seats available#
the reservation will be confirmed. A ticket for the train will be issued to
the passenger after accepting the fares for the train.
The fares are different for adult and child as well they also depend upon
the $lass of %eats e.g. for first class and for economy class there are
different fares. "epending upon passenger6s re4uirement appropriate
fares will be charged for traveling.
37
REPORT
Reservation Re+ort 9 This report is shows the reservation of the train. This
report contains all the information available of the reservation. In this
pro1ect contains the information of the passenger6s like &'!B'o# Train no#
Train name# 'ame# Age# %ex# Address# Adults# $hildren# Total seats# "ate
of ;ooking# "ate of reservation# ;ooking $lass# %ource# "estination# %eat
no# $oach no# *ares# Total cash etc.
Cancel Reservation Re+ort 9 This report shows cancel reservation
passengers. In this report contains the information of the canceled
passenger6s like &'!B'o# Train no# Train name# $ancel "ate $ancel
$harges# 8oney refunded# %eat no etc.
Train Re+ort 9 This report is used for get the information about train. In this
report contains the main information of the Train6s like Train no# Train
name# %ource# "estination# !outes etc.
38
Tools and Plat-orm :sed
0racle &"g as 1ac; end
<isual Studio .""$ as -ront end
Reason -or using t*ese tools:
This %oftware is a database application that uses +isual %tudio ,--. as the
frontend tools. +isual %tudio is a very popular tool for developing Windows
based :CI applications. /racle 0-g is the backbone of this software. It
has been as the backend tool of this software. /racle 0-g helps in
manipulating the database in a very efficient manner
Visu'l Stu*io <!!$ ?V( Net@:+
+isual %tudio.'et is a &roduct of 8icrosoft &roduct for developing
windows based application. +;.net provides a large number of
graphical components that are generally used in developing :CI
applications.
39
The +;.'et programming system provides with many kinds of
tools to create attractive and useful applications. +;.'et makes us
more productive by providing appropriate tools for the different aspects
of :CI development. The ob1ects like text box# list box# picture box#
labels# combo box# frame# Internet can easily be drawn thus helps in
easy interface designing. And after designing the interface we make
this interface interact with the user by writing code that responds to
events that occur in the interface.
+;.net has a powerful help support for the programmers. The
8%"' help files contain complete information and assistance for each
and every ob1ect of the +isual %tudio environment. Whenever need
one can easily refer to the examples given in the 8%"' helpA Thus
programmers find it easy to develop the pro1ects in +isual %tudio.'et!
0RAC6E &"= - /racle 0-g is /b1ect !elational database 8anagement
%ystem (/!";8%). It offers capabilities of both relational and ob1ect
oriented database system. In general ob1ects can be defined as reusable
software codes which are location independent and perform a specific task
on any application environment with little or no change to the codes.
40
%92 is used to access the data within the /racle. It contains a set of
commands# which make it very easy to maintain the database. It has for
sub parts ""2# "82# "$2# and T$2. ""2 includes the commands# which
allows us to create ob1ects and to manipulate the structure of the ob1ects.
"82 includes the commands to manipulate the information stored in a
database. "$2 includes the commands for controlling the data access and
T$2 includes the commands for controlling the transactions like commit
and rollback.
The database server or backend is used to manage the database files
optimally among multiple clients who concurrently re4uest the server for
the same data. It also enforces "ata Integrity across all client application
and controls database access and other security re4uirements.
4l
>ardware and so-tware re?uirement
4inimum System Re?uirements: -
/perating %ystems7
Windows D& service pack ,# vista.
"evelopment Tools7
+isual %tudio ,--.
"atabase7
/racle 0-g
>ardware and So-tware Re?uirements: -
>ardware Re?uirements: -
%creen resolution E-- by F-- pixels# re4uired for proper and
complete viewing of screens.
Gard "isk %pace7 0. :; hard disk
42
%upports for printer (dotmatrix>"eskHet etc.) appropriate
drivers are installed and printer connected will be re4uired for printing
of reports and ;ills.
8icroprocessor7 &entium= or higher.
!A87 .0, 8; !A8 or above for fast execution and reliability
Software Requirements: -
/racle 0-g as back end for storing of data in database
+isual %tudio ,--. as front end for designing and coding.
43
Is there any client for this pro1ectA
'o. there is no client for this pro1ect!
44
Sco+e o- 2uture A++lication
In future# this !AI2WA3 !E%E!+ATI/' %3%TE8 can be made /nline
with some modification that would give the facility to make the
reservation in the train and cancellation of reservation online! ;y
making this software online# it can provide the facility of en4uiry the train#
status of the reservation# make reservation and cancellation the
reservation online. and passenger can know about other services
offered by the Indian rail. This would result in 4uick service and greater
customer satisfaction.
8oreover# this pro1ect in its present form can be used for making the
reservation center automated which will help in providing much efficient
and enhanced services with great database security and reliability
because all the data will be handled through the computers.
45
INTRO2)CTION
46
We know that train transport facility is very important for us. Indian railway
is at fourth ranked in the World and first ranked in the Asia to provide more
and better facility. The main problem of Indian railway is ticket reservation.
And the solution of this problem is online ticket reservation through internet.
railway reservation system is an application software that has been
developed for provide a complete automated and computerized solution to
railway reservation. The railway reservation software has a very interactive
interface and is user friendly. The railway reservation software is to provide
a complete functionality for railway ticket reservation. Example
!egistration "etails# $ustomer "etails# %tatus "etails# reservation of train#
cancellation of reservation# train information their schedule and fare details.
And also more information about ticket reservation.
The %ystem records each and every transaction in computers and
saves the time that was too long in case of manual recording. The %ystem
keeps all Train !elated Information and does most of the work
automatically like generating &assenger 'umber (PR o!)# $alculating
*ares# $hecking Train schedule etc.
47
This system uses +isual %tudio ,--. as a frontend tool and /racle 0-g as
the backend tool that has been manipulate the database.
48
O(1ECTIVES
The main ob1ective of developing this kind of product is to applying the
information technology for !AI2WA3 reservation. It provides a well
maintained information structure for processing the transactions. The main
idea behind is to provide a complete system to cater to all the activities that
take place in reservation of railway ticket. The target is to provide# add and
apply information technology in the Indian railway ticket reservation
software with very fast service like in4uiry service to customers without any
error and it is to provide better customer satisfaction. It records each and
every transaction in computers and saves the time that was too long in
case of manual recording.
The I'"IA' railway reservation includes the complete data# which include
train information# fare information# passenger information# reservation#
cancellation# train schedule# rout information# in4uiry# etc.
The primary ob1ectives behind the development of the 5Indian railway
reservation system6 are as follows7
%peeding up all the transactions.
49
Enabling the !AI2WA3 !E%E!+ATI/' %3%TE8 to maintain its data
through computers.
9uick and fast services to the customers.
!emove the old computerized by transaction handling with the fast
$omputerized system.
Applying a reliable and efficient functionality.
%ave time and efforts.
8aking the %ystem reliable and secured.
&roviding the security to valuable data
50
ANALYSIS AN2 2ESI9N REPORTS
Re>uirements 2efinition- A software requirement is an abstract
description of the services that the system shall provide and the constraints
under which the system must operate.
Requirements determination involves studying the current business system
to find out how it works and where and where improvements should be
made. System studies results in an evaluation of how current methods are
working and weather adjustment are necessary or possible.
A requirement is a feature that must be included in a new system. lt may
include a way of capturing of processing data, producing information,
controlling a business activity, or supporting management. The
determination of requirements thus entails studying the existing system and
collecting details about it to find out what these requirements.
Requirements can either be functional or non functional.
Re>uirement An'l6sis Requirement Analysis is a software Engineering
task that bridges the gap between system level requirements engineering
and software design. ln the proposed project software requirements
analysis have been divided into five areas of effort.
5l
l. problem recognition
2. evaluation and synthesis
3. modeling
4. specification
5. review
Re>uirements Elicit'tion for the soft='re:- Before requirements can be
analyzed, modeled or specification they are gathered through an elicitation
process.
Context free questions were asked to the management people belonging to
different large organizations /institute regarding how they would
characterize a good out put that would generate a successful solution, what
kind of problems will this solution address, how they describe the
environment in which the solution will be used and will special performance
issues or constraints effects the way the solution is approached.
Eu'lit6 function re>uirement:
Quality function development (QFD) is a quality management technique
that translate the needs of the customer into technical requirements for
software.
52
ln QFD three types of requirement are identified
Normal Requirements:
l. Graphical displays:
a) Fully menu driven.
b) lntuitive key assignments and user interactive screen.
c) User configurable.
2. Back up and restore facilities.
3. Facility to add, delete, modify an user record.
4. Report generation.
EF4ecte* Re>uirements:
These requirements are implicit to the product or system and may be so
fundamental that the customer dose not state them.
The following are listed.
l. lndexing
2. Ease of human / machine interaction
3. Reliability and operational correctness
4. Ease of software installation
5. Single point data storage for data element
53
6. Maintenance of integrity and inter linkage of data
7. Extensive query facility to provide immediate answers for management
8. Matching of physical and logical movement of file
9. Should be upgradeable to incorporate new features
l0. Should be expandable
ll. Should have fastest possible response while processing queries,
reports and updates
EFcitin5 re>uirements:
l. Error control mechanism
2. Tool tip next display
3. Graphical animations
4. Other look and feel appeals
Securit6 re>uirements :
The following security requirements are considered in this project.
l. User Level Authentication
2. Restricted Menu access
3. Back up and Restore
54
3unction'l re>uirements :
Functional requirements include the statements of the services the system
should provide.
Non G function'l re>uirements :
Non functional requirements include contains on services or function
provided by system.
List of function and non function requirements of the 'RAlLWAY
RESERVATlON is given below:
3unction'l re>uirements :
Tr'in *et'il:+
This system should provide a feature to see or enter the details of trains
like as add new train, update train record and etc.
STA33:+
This system should provide a feature to see or enter the details of existing/ new
staff.
RESERVATION:-
This system should provide a feature to make a reservation for passengers
CANCELLATION:
55
This system should provide feature to cancel the reservation made by a
passenger.
PASSEN9ER 2ETAIL:
This system should allow to keep the details of passenger who make a
reservation.
Se'rch :+
The system should allow searching for a particular record.
9ener'tin5 re4orts :+
Various reports should be generated on the monthly basis or as per the
requirements.
Non G function'l re>uirements:
The Non-functional requirements can be classified into three main
categories that are :
l. Product requirements
2. Organizational requirements
3. External requirements
Pro*uct re>uirements these are the expectations from a system.
Product requirements include the following:
56
)s';ilit6 re>uirements:+
The system should have a good interface and it should be used friendly
because it the user who would be using the system most of the time. Along
with the user friendly interface the system should be easy to use and
should not be confusing. A list of command or instructions on how to work
with the system and operate it should be provided with the system.
Efficienc6 Re>uirements:+To make the system run efficiently system
requirements of the software will have to be kept minimum.
Reli';ilit6 Re>uirements:+
A system is said to be reliable is a user can depend on it. The process be
execute in the same manner it has been programmed.
And the out puts of the project must be very correct. lf outputs are not
reliable then there is no advantage of using the software. Moreover, the
Database must be handled very carefully because loss of the data may
result in bankrupting or closing the organization.
3e'si;ilit6 Stu*6:+
Feasibility study is the determination of whether or not a project is worth
doing. The process followed in making this determination is called a
feasibility study. This type of study determines if a project can and should
57
be taken. Once it has been determined that a project is feasible, the analyst
can go ahead and prepare the project specification which finalize the
project requirements.
Different type of feasibility study undertaken is:
Technic'l fe'si;ilit6:+
This is concerned with specifying equipments and will satisfy the user
requirements. 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.
Technical feasibility centers on the existing computer system, hardware,
software, etc and to what extent it can support the system. ln examination
technical feasibility configuration of the system is given more important that
the actual make of hardware. The configuration should give the complete
picture of the system requirements e.g. how many workstation are required,
how these units are interconnected so that they would operate smoothly,
58
etc. the result of technical feasibility study is used as the basic for
documents against which dealer and manufactures can make the bids.
Specified hardware and software product can then be evaluated keeping in
view the logical needs.
Economic 3e'si;ilit6 :+
Economic feasibility is the most frequently used technique for evaluate- in
the effectiveness of the proposed system. More commonly knows, as
cost/benefit analysis; the procedure is to determine the benefits and saving
that are expected from a proposed system and compare them with costs. lf
benefits outweigh costs, a decision is taken to design and implement a
system. Otherwise, further justification or alternative in a proposed system
will have to be made if it is to have a chance of being approved. This is an
out going effort that improves in accuracy at each phase of system
lifecycle.
Time fe'si;ilit6:+
lt is determination of whether a proposed project can be implemented fully
with in a stipulated time frame. lf a project takes too much time it is likely to
be rejected. Time feasibility is important because the client companies
usually give dead lines for the system to be changed. Usually give dead
lines for the system to be changed. Usually deadlines are very strict and
should be followed by companies.
59
Resource fe'si;ilit6:
This was also important to check whether required resources will be
available or not. For the software, there were no such constraints as most
of the web-related language are platform independent and freely available.
Here, l decided to use VlSUAL BASlC.NET as the most prominent tool,
the compiler for which is freely available. For the database, a general
approach was adopted by means of which the same coding can be implied
on all the web-related database management system software available.
The database may be implemented on oracle l0G or higher.
(eh'7ior'l fe'si;ilit6:+
Normal human psychology of human being indicates that people are
resistant to change and computers are knows to facilitate. Any project
formulations should consider this factor also. Before the development of the
project titled "RAlLWAY RESERVATlON" the need to study the feasibility of
the successful execution of the project was felt and thus the following
factors are considered for a feasibility study.
l. Need Analysis.
2. Provide the users information pertaining to the above requirements.
3e'si;ilit6 stu*6 re4ort:+
60
Questionnaires were used to gather information from the key users i.e. the
customers, operators and managements to determine the following:
Whether there is a need for an automated system.
lf the need is there, what are the drawbacks of existing system that have to be
rectified in the new system?
That omissions are there in the existing systems, which have to be incorporated
in the new system?
The result of the feasibility study provided us with the following facts:
l. The automated system would increases the efficiency of the system.
2. The automated system would increases customer's satisfaction.
3. The automated system has many requirements such as
Efficiency
Cost effectiveness
Prompt services
Reliability
4. The automated system would add to the security features of the system
5. The automated system should be
Simple to use
lncorporate all necessary services
6l
Maintainable
6. This will cause some changes in the organization. These are:-
Change in staffing policies-present employees will have to be sent for training.
New employees to be recruited will have the knowledge about the automated
system.
62
Soft='re En5ineerin5 P'r'*i5m
Soft='re En5ineerin5 P'r'*i5m is also referred as software Life Cycle
Model or a process model. A software life cycle is a series of identifiable
stage that a software product undergoes during its life time.
A software product development effort usually starts with a feasibility study
stage, and then subsequently requirements analysis & specification,
design, coding, testing and maintenance are undertaken. Each of these
stages is called life cycle phase.
While developing a software product, it is necessary for the development
team to identify a suitable life cycle model and adhere to it. The primary
advantage of adhering to a life model is that it encourage development of
software in a systematic and disciplined manner. There are several
software engineering paradigms (process module) for developing
software. Some of the important and commonly used models are as under:
Linear Sequential model (also called "classis life cycle" or the "waterfall model")
lterative waterfall model
Prototyping model applied in to the "project information system"
Evolutionary model
Rapid application development (RAD) model
63
Spiral model
Prototyping paradigm of software Engineering is applied in the "Railway
Reservation System" the prototyping model suggests that before
development of the software, a working prototype of the system should be
built first. There were several reasons for developing a prototype. An
important purpose was to illustrate the input data formats, reports, and the
interactive dialogues to the end user. This was a valuable mechanism for
gaining better understanding of the Business Development Division's
needs. For much easier for the user to form his option by experimenting
with a working model rather than just trying to imaging the working of a
hypothetical system.
After gathering the requirements from the Business Development division,
a quick design (prototype) was made and showed to the HODs of
information Technology and Business Development Division. The system
prototype built was quit close to the requirements of the Business
Development Division. Some additional requirements were also added to
the system on the system on the pretext of slight increase in the earlier
scope. Following figure depicts the prototyping paradigm applied in the
"Railway Reservation System".
64
As shown in the figure the model starts with an initial requirements
gathering phase. A quick design was carried out and the system proto- type
was built. The developed prototype was then shown to the end user for
their suggestion on it. Based on the feedback, the requirements were
refined and classical waterfall approach was used to develop the "Railway
Reservation System".
65
66
Requirements
Gathering
Quick Design
Requirement of
requirements
Build Prototype
Prototype Evaluation
Design
Coding and Reports
Testing
lmplementation
?SOFTWARE REQUIREMENT SPECIFICATION@
67
Structure of SRS :+
1. Introduction:-
This document aims at defining the overall software requirement for
'RAlLWAY RESERVATlON SYSTEM'. Efforts have been made to define
the requirement exhaustively .The final product will be having only
feature/functionalities mentioned in this moment and assumptions for any
additional functionality/feature should not be made by any of the parties
involved in developing /testing/implementing/using this product. ln case it is
required to have some additional features, a formal change request will
need to be raised subsequently a new release of this document and
product will be produced.
A. Purpose
This specification document describes the capabilities that will be
provided by the software specification 'RAlLWAY RESERVATlON
SYSTEM'. lt also states the various required constraints by which the
system will abide. The intended audiences for this document are the
development team, testing team and end user of the product.

68
. Scope
The software product 'RAlLWAY RESERVATlON SYSTEM' will be
online and reporting application that will be used for railway
reservation inquiry like information about train.(root information,fare
information etc). and people can also booked the tickets and
canceled the tickets. The application will manage the information
about all the trains and roots of trains,fare of trains,all booked and
cancelled ticket details also manage the information about staff who
use this software product. Printable reporting regarding list of the
ticket reservation and cancellation of passengers and eligible
passengers will be generated.
C. A!!re"i#tions
Following abbreviations have been used throughout this document:
train_no: train identification number.
pnr_no: passenger's ticket identification number.
Staff_id: staff identifies number.
69

$. O"er#%% description
The railway reservation system offers booked tickets in four types of status
in train journey which name is sleeper class, ac3, ac2, acl. The railway
reservation system keeps the passenger's records and their profile records,
and the train information record and their requirement. The user can search
the passenger's records for see and remember the date of traveling, fare of
journey etc of passenger's.
A. Product perspecti"e:-
The application will be windows-based, self-contained and
independent software product.
. User inter&#ce:-
70


Front end client
application (with
data
entry/update/del
ete/view and
report facility)
Backend
database
The application will be a user-friendly and menu based interface.
Following screens will be provided:
&i' a login screen for entering the user id and password
will be provided to Access main page.
&ii' There will be a screen for capturing and displaying
the train information like train_no, train_name,
source, destination, departure_time, arrival_time,
category, total_distance.
&iii' There will be a screen for capturing and displaying
information regarding various details of passenger's
like pnr_no, train_no, train_name, name, age,
gender, quota, contact_no, address, d_o_t etc.
&i(' There will be a screen that will capture and displaying
information regarding various details of fare like
train_no, train_name,ac3_vial, ac3_via2, ac3_via3,
ac3_via4, ac2_vial etc.
&(' There will be a screen that will be capturing and
displaying information regarding staff details like
staff_id, d_o_j, etc.
&(i' There will be a screen that will be displaying the
information regarding various detail of roots like vial,
via2, via3, via4 etc.
&(ii' There will be a screen that will be capturing and
displaying the information regarding various detail of
ticket reservation like train_no, train_name, source,
destination, d_o_t, name, age, gender, quota,
7l
seat_no, coach_no, pnr_no, from_station, to_station,
departure_time, arrival_time, fare etc.
&(iii' There will be a screen that will be capturing and
displaying the information regarding various detail of
ticket cancellation like train_no, train_name, source,
destination, d_o_t, name, age, gender, quota,
contact_no, address, seat_no, coach_no, pnr_no,
from_station, to_station, departure_time, arrival_time,
return_fare etc.
&i)' There will be screen that will be allowing user to
search train information.
&)' There will be screen that will be allowing user to
search passenger information.
&)i' There will be screen that will be allowing user to
search staff information.
&)ii' There will be screen that will be allowing user to
search root information.
&)iii' There will be screen that will be allowing user to
search fare information.
&)i(' There will be screen that will be allowing user to
search root information.
The following reports will be generated:
(i) Ticket reservation report: printable report will be
generated to show the list of the reserved tickets of
passengers.
72
(ii) Ticket cancellation report: printable report will be
generated to show the list of the cancelled tickets of
passengers.
(iii) Train information report: printable report will be generated
to show the list of the train.
C. '#rd(#re inter&#ce:
&i' Screen resolution of at least l000X768-required for
proper and complete viewing of screens.
&ii' Printer either dot matrix/laser or ink jet to print the
report.
). so&t(#re inter&#ce:
&i' any window based operating system(Windows
XP/2000/2003)
&ii' Oracle l0G as the DBMS- for database.
&iii' Visual basic.net for coding/developing the software.

73
*. Speci&ic re+uire,ents:
This section contains the software requirement to be a level of detail
sufficient to enable designers to design the system, and tester to test
that system.
%o-in screen
This will be first screen that will be displayed .it will allow user to
access the main form .After login he will be displayed the main
page where he can go though different menus various fields
available on this screen will be:
&i' User ID: alphanumeric of length up to 20
characters.
&ii' Password: alphanumeric of length up to 20
characters.
. M#in &or,
&i' Tr#in in&or,#tion: This will be allow the user to
add/update information about new/exiting staff's
various fields available on this screen will be:
.#/ Train number: Alphanumeric of length up to 20
character.
.!/ Train name: Alphanumeric of length up to 50 character.
.c/ Source: Alphanumeric of length up to 20 character.
.d/ Destination: Alphanumeric of length up to 20 character.
74
.e/ Departure time: Alphanumeric of length up to 20
character.
.&/ Arrival time: Alphanumeric of length up to 20 character.
.-/ Total distance: Alphanumeric of length up to 20
character.
.'/ Via1: Alphanumeric of length up to 20 character.
.i/ Via2: Alphanumeric of length up to 20 character.
.0/ Via3: Alphanumeric of length up to 20 character.
.1/ Via4: Alphanumeric of length up to 20 character.
&ii' F#re in&or,#tion: This will be allow the user to
add/update information about new/exiting staff's .
various fields available on this screen will be:
.#/ Train number: Alphanumeric of length up to 20
character.
.!/ Train name: Alphanumeric of length up to 50 character.
.c/ Sleeper via1: Number of length up to (8,2) character.
.d/ Sleeper via2: Number of length up to (8,2) character.
.e/ Sleeper via3: Number of length up to (8,2) character.
.&/ Sleeper via4: Number of length up to (8,2) character.
.-/ Ac3 via1: Number of length up to (8,2) character.
.'/ Ac3 via2: Number of length up to (8,2) character.
.i/ Ac3 via3: Number of length up to (8,2) character.
.0/ Ac3 via4: Number of length up to (8,2) character.
.1/ Ac2 via1: Number of length up to (8,2) character.
.%/ Ac2 via2: Number of length up to (8,2) character.
75
.,/ Ac2 via3: Number of length up to (8,2) character.
.n/ Ac2 via4: Number of length up to (8,2) character.
.o/ Ac1 via1: Number of length up to (8,2) character.
.p/ Ac1 via2: Number of length up to (8,2) character.
.+/ Ac1 via3: Number of length up to (8,2) character.
.r/ Ac1 via4: Number of length up to (8,2) character.
&iii' st#&& in&or,#tion: this will allow the user to add
new/update/delete information about the staff record.
various fields available on these screen will be:
.#/Sta ID: numeric, of length up to l0 digits.
.!/ !ame: alphabetic, of length up to 20 characters.
.c/A"e: number of length up to 3 characters.
.d/#ender: alphanumeric of length up to 6 characters
.e/ Address: alphanumeric of length up to 50 characters.
.&/ Date o birt$: date%
.-/Date o &oinin": date%
.'/Date o retirement: date%
.i/ Post: alphanumeric of length up to 20 characters.
.0/ Department: alphanumeric of length up to 20 characters.
&i(' P#ssen-er in&or,#tion: this will allow the user to
add new/update/delete the information about a
76
passenger information record. various fields available
on these screens will be:
.#/Pnr number: alphanumeric of length up to 20 characters.
.!/Train name: will be only alphabetic characters, of length up
to 50 characters.
.c/Train number: alphanumeric of length up to 20 characters.
.d/Source: alphanumeric of length up to 20 characters.
.e/Destination: alphanumeric of length up to 20 characters.
.&/ !ame: alphabetic, of length up to 20 characters.
.-/A"e: number of length up to 3 characters.
.'/#ender: alphanumeric of length up to 6 characters
.i/ 'uota: alphanumeric of length up to 20 characters.
.0/ Date o travelin": date.
.1/(ontact number: number of length up to 20 characters.
.%/ Address: alphanumeric of length up to 50 characters.
.,/ Status: alphanumeric of length up to 20 characters.
.n/Seat number: number of length up to 2 characters.
.o/Departure time: alphanumeric of length up to 20 characters.
.p/Arrival time: alphanumeric of length up to 20 characters.
.+/)rom station: alphanumeric of length up to20 characters.
.r/ To station: alphanumeric of length up to 20 characters.
.s/(oac$ number: alphanumeric of length up to 20 characters.
&(' Root in&or,#tion: this will allow the user to add
new/update/delete information about the root record.
various fields available on these screen will be:
77
.#/Train number: alphanumeric of length up to 20 characters.
.!/Train name: alphanumeric of length up to 20 characters.
.c/Via1: alphanumeric of length up to 20 characters.
.d/Via2: alphanumeric of length up to 20 characters.
.e/Via3: alphanumeric of length up to 20 characters.
.&/ Via4: alphanumeric of length up to 20 characters.
.-/Distance1: alphanumeric of length up to 20 characters.
.'/Distance2: alphanumeric of length up to 20 characters.
.i/ Distance3: alphanumeric of length up to 20 characters.
.0/ Distance4: alphanumeric of length up to 20 characters.
.1/Departure1 time: alphanumeric of length up to 20 characters.
.%/ Departure2 time: alphanumeric of length up to 20 characters.
.,/ Departure3 time: alphanumeric of length up to 20
characters.
.n/Departure4 time: alphanumeric of length up to 20 characters.
.o/Arrival1 time: alphanumeric of length up to 20 characters.
.p/Arrival2 time: alphanumeric of length up to 20 characters.
.+/Arrival3 time: alphanumeric of length up to 20 characters.
.r/ Arrival4 time: alphanumeric of length up to 20 characters.
.s/Source: alphanumeric of length up to 20 characters.
.t/ Destination: alphanumeric of length up to 20 characters.
.u/Startin" source departure time: alphanumeric of length up to
20 characters.
."/*nd destination arrival time: alphanumeric of length up to 20
characters.
78
&(i' Sc'edu%er in&or,#tion: this will allow the staff to
add new/update/delete information about the
scheduler record. various fields available on these
screen will be:
.#/Train number: alphanumeric of length up to 20 characters.
.!/Train name: alphanumeric of length up to 20 characters.
.c/Departure time: alphanumeric of length up to 20 characters.
.d/Arrival time: alphanumeric of length up to 20 characters.
.e/Stop time: alphanumeric of length up to 20 characters.
.&/ Dela+ time: alphanumeric of length up to 20 characters.
&(ii' Tic1et reser"#tion: This will be allow the user to
booked the ticket. Various fields available on his
screen will be:
#. Train number: alphanumeric of length up to 20
characters.
!. Train name: alphanumeric of length up to 50 characters.
c. Source: alphanumeric of length up to 20 characters.
d. Destination: alphanumeric of length up to 20 characters.
e. !ame: alphanumeric of length up to 20 characters.
&. A"e: number of length up to 3 characters.
-. #ender: alphanumeric of length up to 6 characters.
'. 'uota: alphanumeric of length up to 20 characters.
i. Date o travelin": alphanumeric of length up to 20
characters.
0. (ontact number: number of length up to 20 characters.
79
1. Address: alphanumeric of length up to 50 characters.
%. Seat number: number of length up to 2 characters.
,. (oac$ number: alphanumeric of length up to 20
characters.
n. Pnr number: alphanumeric of length up to 20 characters.
o. )are: number of length up to (8,2) characters.
p. Status: alphanumeric of length up to 20 characters.
+. Departure time: alphanumeric of length up to 20
characters.
r. Arrival time: alphanumeric of length up to 20 characters.
s. )rom station: alphanumeric of length up to 20 characters.
t. To station: alphanumeric of length up to 20 characters.
&(iii' Tic1et c#nce%%#tion: This will be allow the user to
cancelled the ticket. Various fields available on his
screen will be:
#. Pnr number: alphanumeric of length up to 20 characters.
!. Train number: alphanumeric of length up to 20
characters.
c. Train name: alphanumeric of length up to 50 characters.
d. Source: alphanumeric of length up to 20 characters.
e. Destination: alphanumeric of length up to 20 characters.
&. !ame: alphanumeric of length up to 20 characters.
-. A"e: number of length up to 3 characters.
'. #ender: alphanumeric of length up to 6 characters.
i. 'uota: alphanumeric of length up to 20 characters.
80
0. Date o travelin": alphanumeric of length up to 20
characters.
1. (ontact number: number of length up to 20 characters.
%. Address: alphanumeric of length up to 50 characters.
,. ,eturn air: number of length up to (8,2) characters.
n. Status: alphanumeric of length up to 20 characters.
o. Departure time: alphanumeric of length up to 20
characters.
p. Arrival time: alphanumeric of length up to 20 characters.
+. )rom station: alphanumeric of length up to 20 characters.
r. To station: alphanumeric of length up to 20 characters.
&i)' Se#rc' tr#in in&or,#tion: This screen will allow the
user to find a particular train information by enter their
train number in textbox. Addnew/updation/deletion
cannot be performed. The fields of this screen are
same as in train information screen.
&)' Se#rc' p#ssen-er in&or,#tion: this screen will
allow the user to find a particular passenger
information by enter their pnr number in textbox.
Addnew/updation/deletion cannot be performed. The
fields of this screen are same as in passenger
information screen.
8l
&)i' Se#rc' &#re in&or,#tion: this screen will allow the
user to find a particular train's fare by enter their train
number in textbox. Addnew/updation/deletion cannot
be performed. The fields of this screen are same as
in fare information screen.
&)ii' Se#rc' root in&or,#tion: This screen will allow the
user to find a particular train's root by enter their train
number in textbox. Addnew/updation/deletion cannot
be performed. The fields of this screen are same as
in root information screen.
&)iii' Se#rc' st#&& in&or,#tion: this screen will allow the
user to find a particular staff's member information by
enter their staff's id in textbox.
Addnew/updation/deletion cannot be performed. The
fields of this screen are same as in staff information
screen.

82
2. So&t(#re product &e#tures:
Tr#in in&or,#tion:
Description
The system will maintain information about various Trains. The
following information would be maintained for each trains: train_no,
train_name, source, destination, departure_time, arrival_time, category,
total_distance, vial, via2, via3, via4.
The system will be allow creation/modification/deletion of new/exiting
train.
V'li*it6 checB
.#/ Train number will be unique for every train and should not
be greater than 2l characters.
.!/Train name cannot be blank and should be less than 5l
characters.
.c/Source cannot be blank and should be less than 2l
characters.
.d/Destination cannot be blank and should be less than 2l
characters.
.
83
.e/Departure time cannot be blank and should be less than 2l
characters.
.
.&/ Arrival time cannot be blank and should be less than 2l
characters.
.
.-/Category cannot be blank and should beless then 2l
characters.
.'/Total distance cannot be blank and should be less than 2l
Error h'n*in5-res4onse to ';norm'l situ'tion
Error handling is applied to the save submenu to handle the error at
run time. lf any error is occurred during save operation then it will handle
and save operation will be terminated and project will continued. lf any
of the above validation does not hold true, appropriate error messages
will be prompted to the user for doing the needful
3're inform'tion:
Description
The system will maintain information about Fare of Trains. The following
information would be maintained for each trains: train_no, train_name,
sleeper_vial, sleeper_via2, sleeper_via3, sleeper_via4, ac3_vial,
84
ac3_via2, ac3_via3, ac3_via4, ac2_vial, ac2_via2, ac2_via3, ac2_via4,
acl_vial, acl_via2, acl_via3, acl_via4, sleeper_s_to_d, ac3_s_to_d,
ac2_s_to_d, acl_s_to_d.
The system will be allow creation/modification/deletion of new/exiting
train.
V'li*it6 checBs
.#/Train number will be unique for every train and should not be
greater than 2l characters.
.!/Train name cannot be blank and should be less than 5l
characters.
.c/Sleeper_vial cannot be blank and should be less than 2l
characters.
.d/Sleeper_via2 cannot be blank and should be less than 2l
characters.
.
.e/Sleeper_via3 cannot be blank and should be less than 2l
characters.
.
.&/ Sleeper_via4 cannot be blank and should be less than 2l
characters.
.
85
.-/Ac3_vial cannot be blank and should be less than 2l
characters.
.'/Ac3_via2 cannot be blank and should be less than 2l
characters.
.i/ Ac3_via3 cannot be blank and should be less than 2l
characters.
.0/ Ac3_via4 cannot be blank and should be less than 2l
characters.
.1/Ac2_vial cannot be blank and should be less than 2l
characters.
.%/ Ac2_via2 cannot be blank and should be less than 2l
characters.
.,/ Ac2_via3 cannot be blank and should be less than 2l
characters.
.n/Ac2_via4 cannot be blank and should be less than 2l
characters.
.o/Acl_vial cannot be blank and should be less than 2l
characters.
.p/Acl_via2 cannot be blank and should be less than 2l
characters.
86
.+/Acl_via3 cannot be blank and should be less than 2l
characters.
.r/ Acl_via4 cannot be blank and should be less than 2l
characters.
Error h'n*in5-res4onse to ';norm'l situ'tion
Error handling is applied to the save submenu to handle the error at run
time. lf any error is occurred during save operation then it will handle
and save operation will be terminated and project will continued.
lf any of the above validation does not hold true ,appropriate error
messages will be prompted to the user for doing the needful.
St'ff inform'tion
Description
The system will maintain information about various staff member being
worked in the railway reservation system. The following information
would be maintained for each staff member: staff_lD, name, age,
gender, d_o_b, d_o_j, d_o_w, post, department, address.
3#%idit4 c'ec1
.#/ Staff_id cannot be blank and should be less than 2l characters.
.!/ Name cannot be blank and should be less than 2l characters.
87
.c/ Age cannot be blank and should be less than 4 characters.
.d/ Gender cannot be blank and should be less than 6 characters.
.e/ D_o_f cannot be blank and should be date format.
.&/ D_o_j cannot be blank and should be date format.
.-/ D_o_w cannot be blank and should be date format.
.'/ Post cannot be blank and should be less than 2l characters.
.i/ Department cannot be blank and should be less than 2l characters.
.0/ Address cannot be blank and should be less than 50 characters.
5. So&t(#re s4ste, Attri!utes:
(i) Securit4:
The application will be password protected .users will have to enter
correct username, and password in lower case in order to access the
application.
(ii) M#int#in#!i%it4:
The application will be designed in a manner. lt will be easy to
incorporate new requirement the individual modules (i.e. train
information, fare information, root information, schedule information,
staff information, ticket reservation,ticket cancellation.)
88
(iii) Port#!i%it4:
The application will be portable on any window based system that has
oracle 8i.
5. 6o-ic#% )#t#!#se Re+uire,ent:
The following information will be placed in a database:
&i' Tr'in inform'tion: train_no, train_name, source,
destination, departure_time, arrival_time, category,
total_distance, vial, via2, via3, via4.
&ii' 3're inform'tion: train_no, train_name,
sleeper_vial, sleeper_via2, sleeper_via3,
sleeper_via4 , ac3_vial, ac3_via2, ac3_via3,
ac3_via4, ac2_vial, ac2_via2, ac2_via3, ac2_via4,
acl_vial, acl_via2, acl_via3, acl_via4
sleeper_s_to_d, ac3_s_to_d, ac2_s_to_d,
acl_s_to_d.

&iii' TicBet Reser7'tion: train_no, train_name, source,
destination, name, age, gender, quota, d_o_t,
contact_no, address, seat_no, coach_no, pnr_no,
fare, status, departure_time, arrival_time,
from_station, to_station.
89
&i(' TicBet c'ncell'tion: train_no, train_name, pnr_no,
source, destination, name, age, gender, quota, d_o_t,
contact_no, address, return_fair, status,
departure_time, arrival_time, from_station, to_station.
&(' P'ssen5er inform'tion: pnr_no, train_no,
train_name, name, age, gender, quota, address,
contact_no, d_o_t, source, destination, status,
seat_no, coach_no, departure_time, arrival_time,
from_station, to_station.
&(i' St'ff inform'tion: staff_id, name, age, gender,
address, d_o_b, d_o_j, d_o_w, post, department.
&(ii' Root inform'tion: train_no, trai_name, vial, via2,
via3, via4, distancel, distance2, distance3,
distance4, arrivall_time, arrival2_time, arrival3_time,
arrival4_time, deperturel_time, deperture2_time,
deperture3_time, deperture4_time, source,
destination, s_deperture_time, d_arrival_time.
&(iii' Sche*ule inform'tion: train_no, train_name,
departure_time, arrival_time, stop_time, delay_time.
7. Ot'er re+uire,ent:
90
None


9l
92
93
94
95
96
)SERDLO9IN

Session &
(efore eFecution
(l) 4ur4ose: to check authorized person who can access the project.
(2) 4re+con*ition: None
(3) in4ut: user_id (RAlLWAY) AND password (RESERVATlON)
(4) eFecute* out4ut: login is successful and open the main page.
(5) Post+con*ition?if 'n6@: if login is successful, then open the main
page and close the login form.
(6) =ritten ;6: BEENU SAlNl
(7) *'te: 20-09-2009
After eFecution
(l) eFecution histor6: login failed
(2) result: invalid user_id or password.
(3) if f'il/ 'n6 4ossi;le re'son?if 'n6@: wrong password or login_id
(4) 'n6 other o;ser7'tion: case sensitive
97
(5) 'n6 su55estion: change the input case
?"@ run ;6: Am'r N'th P'n*e6
(7) *'te: <!-09-2009
)SERDLO9IN
Session <
(efore eFecution
(l) 4ur4ose: to check authorized person
(2) 4re+con*ition: none
(3) in4ut: user_id(railway) AND password (reservation)
(4) eF4ecte* out4ut: login is successfully completed and open the main
page
(5) 4ost+con*ition: if login is successful then open the main page
?"@ =ritten ;6: (EEN) SAINI
?.@ *'te: 20-09-2009
After eFecution
(l) eFecution histor6: login successed
(2) result: login is successful
?#@ if f'ils/ 'n6 4ossi;le re'son?if 'n6@: None
98
(4) An6 o;ser7'tion: none
(5) An6 su55estion: none
?"@ Run ;6: Am'r N'th P'n*e6
(7) 2'te: 20-09-2009
Tr'in inform'tion
Session &
After eFecution
?&@ 4ur4ose: search the record.
?<@ Pre+con*ition?if 'n6@: none
?#@ In4ut: train_no (202l),
?%@ EFecute* out4ut: search the record.
train_name (rajdhani express),
source (new delhi),
destination (patna),
deperture_time(l2:00 pm),
arrival_time (same day 8:25 pm),
category(express),
99
total_distance (900 km.),
via_l (kanpur),
via_2 (luckhnow),
via_3 (gorakhpur),
via_4 (mujafarpurr),
?$@ Post con*ition?if 'n6@: none
?"@ Written ;6: (EEN) SAINI
?.@ 2'te: 20-09-2009
After eFecution
?&@ EFecution histor6: successfully search the record.
?<@ Result: searching completed.
?#@ if f'il/ 'n6 re'sons?if 'n6@: no.
?%@ An6 o;ser7'tion: none.
?$@ An6 su55estion: none
?"@ Run ;6: Am'r N'th P'n*e6.
?.@ 2'te: 20-09-2009
Session <
l00
(efore eFecution
?&@ 4ur4ose: search the record .
?<@ 4re+con*ition: none
?#@ in4ut: train_no (2554)
?%@ EFecute* out4ut: search the record.
train_name (swatantra sainani express),
source (new delhi),
destination (darbhanga),
deperture_time(08:30 pm),
arrival_time (next day 06:30 pm),
category (express),
total_distance (l350 km.),
via_l (kanpur),
via_2 (allhabad),
via_3 (varanasi),
via_4 (mujafarpurr),
l0l
(l) 4ost+con*ition: none
?<@ =ritten ;6: (EEN) SAINI
(3) *'te: 20-09-2009
After eFecution:
(l) eFecution histor6: successfully search the record.
(2) result: searching is complete.
(3) if f'il / 'n6 re'son ?if 'n6@: no
(4) 'n6 re'son: no
(5) 'n6 su55estion: no
(6) run ;6: Amar Nath Pandey.
?.@ *'te: <!+C+<!!C
l02
2ATA-TA(LE STR)CT)RE
& )SERDLO9IN
S.
NO.
FlELD NAME DATA TYPE WlDT
H
Constraints
l. USER_lD VARCHAR2 20 Primary key
2. PASSWORD VARCHAR2 20
< A2MINISTRATERDLO9IN
S.
NO.
FlELD NAME DATA TYPE WlDT
H
Constraints
l. ADMlNlSTRATER_lD VARCHAR2 20 Primary key
2. PASSWORD VARCHAR2 20
l03
# TRAIN IN3ORMATION
S.
NO.
FlELD NAME DATA TYPE WlDTH Constraints
l. TRAlN NO. VARCHAR2 20 Primary key
2. TRAlN NAME VARCHAR2 50
3. SOURCE VARCHAR2 20
4. DESTlNATlON VARCHAR2 20
5. DEPERTURE TlME VARCHAR2 20
6. ARRlVAL TlME VARCHAR2 20
7. CATEGORY VARCHAR2 20
8. TOTAL_DlSTANCE VARCHAR2 20
9. VlA_l VARCHAR2 20
l0. VlA_2 VARCHAR2 20
ll. VlA_3 VARCHAR2 20
l2. VlA_4 VARCHAR2 20
l04
% 3ARE IN3ORMATION
S.
NO.
FlELD NAME DATA TYPE WlDTH Constraints
l. TRAlN NO. VARCHAR2 20 Foreign key
2. TRAlN NAME VARCHAR2 50
3. SLEEPER_VlA
l
NUMBER (8,2)
4. SLEEPER_VlA
2
NUMBER (8,2)
5. SLEEPER_VlA
3
NUMBER (8,2)
6. SLEEPER_VlA
4
NUMBER (8,2)
7. AC3_VlA l NUMBER (8,2)
8. AC3_VlA 2 NUMBER (8,2)
9. AC3_VlA 3 NUMBER (8,2)
l0. AC3_VlA 4 NUMBER (8,2)
ll. AC2_VlA l NUMBER (8,2)
l2. AC2_VlA 2 NUMBER (8,2)
l3. AC2_VlA 3 NUMBER (8,2)
l4. AC2_VlA 4 NUMBER (8,2)
l5. ACl_VlA l NUMBER (8,2)
l6. ACl_VlA 2 NUMBER (8,2)
l05
l7. ACl_VlA 3 NUMBER (8,2)
l8. ACl_VlA 4 NUMBER (8,2)
l9. SLEEPER_S_T
O_D
NUMBER (8,2)
20. AC3_S_TO_D NUMBER (8,2)
2l. AC2_S_TO_D NUMBER (8,2)
22. ACl_S_TO_D NUMBER (8,2)
$ RESERVATION

S.
NO.
FlELD NAME DATA TYPE WlDTH Constraints
l. TRAlN NO. VARCHAR2 20 Foreign key
2. TRAlN NAME VARCHAR2 50
3. SOURCE VARCHAR2 20
4. DESTlNATlON VARCHAR2 20
5. NAME VARCHAR2 20
6. AGE NUMBER (3)
7. GENDER VARCHAR2 6
8. QUOTA VARCHAR2 20
l06
9. D_O_T DATE
l0. CONTACT_NO NUMBER (20)
ll. ADDRESS VARCHAR2 50
l2. SEAT_NO NUMBER (2)
l3. COACH_NO VARCHAR2 20
l4. PNR_NO VARCHAR2 20 Foreign key
l5. FARE NUMBER (8,2)
l6. STATUS VARCHAR2 20
l7. DEPERTURE_TlM
E
VARCHAR2 20
l8. ARRlVAL_TlME VARCHAR2 20
l9. FROM_STATlON VARCHAR2 20
20. TO_STATlON VARCHAR2 20
" CANCELLATION

S.
NO.
FlELD NAME DATA
TYPE
WlDTH Constraints
l. PNR_NO VARCHAR2 20 Foreign key
2. TRAlN_NO VARCHAR2 20 Foreign key
3. TRAlN_NAME VARCHAR2 50
4. SOURCE VARCHAR2 20
5. DESTlNATlON VARCHAR2 20
6. NAME VARCHAR2 20
7. AGE NUMBER (3)
l07
8. GENDER VARCHAR2 6
9. QUOTA VARCHAR2 20
l0. D_O_T DATE
ll. CONTACT_NO NUMBER (20) Foreign key
l2. ADDRESS VARCHAR2 50
l3. RETURN_FARE NUMBER (8,2)
l4. STATUS VARCHAR2 20
l5. DEPERTURE_TlM
E
VARCHAR2 20
l6. ARRlVAL_TlME VARCHAR2 20
l7. FROM_STATlON VARCHAR2 20
l8. TO_STATlON VARCHAR2 20
. PASSEN9ER IN3ORMATION
S.
NO.
FlELD NAME DATA TYPE WlDTH Constraints
l. PNR_NO. VARCHAR2 20 Primary key
2. TRAlN_NAME VARCHAR2 20
3. TRAlN_NO VARCHAR2 20 Foreign key
4. SOURCE VARCHAR2 20
5. DESTlNATlON VARCHAR2 20
6. NAME VARCHAR2 20
7. AGE NUMBER (3)
8. GENDER VARCHAR2 6
l08
9. QUOTA VARCHAR2 20
l0. D O T DATE
ll. CONTACT_NO NUMBER (20)
l2. ADDRESS VARCHAR2 50
l3. STATUS VARCHAR2 20
l4. SEAT_NO NUMBER (2)
l5. DEPERTURE_TlM
E
VARCHAR2 20
l6. ARRlVAL_TlME VARCHAR2 20
l7. FROM_STATlON VARCHAR2 20
l8. TO_STATlON VARCHAR2 20
l9. COACH_NO VARCHAR2 20
l09
, STA33 IN3ORMATION
S.
NO.
FlELD NAME DATA TYPE WlDTH Constraints
l. lD VARCHAR2 20 Primary key
2. NAME VARCHAR2 20
3. AGE Number 3
4. GENDER VARCHAR2 6
5. D_O_B DATE
6. D_O_J DATE
7. D_O_W DATE
8. POST VARCHAR2 20
9. DEPARTMENT VARCHAR2 20
l0. ADDRESS VARCHAR2 200
C ROOT IN3ORMATION

S.
NO.
FlELD NAME DATA TYPE WlDTH Constraints
l. TRAlN_NO VARCHAR2 20 Foreign key
2. TRAlN_NAME VARCHAR2 50
3. VlAl VARCHAR 20
ll0
4. VlA2 VARCHAR2 20
5. VlA3 VARCHAR2 20
6. VlA4 VARCHAR2 20
7. DlSTANCEl VARCHAR2 20
8. DlSTANCE2 VARCHAR2 20
9. DlSTANCE3 VARCHAR2 20
l0. DlSTANCE4 VARCHAR2 20
ll. DEPERTUREl_TlM
E
VARCHAR2 20
l2. DEPERTUREl_TlM
E
VARCHAR2 20
l3. DEPERTUREl_TlM
E
VARCHAR2 20
l4. DEPERTUREl_TlM
E
VARCHAR2 20
l5. ARRlVAL_TlME VARCHAR2 20
l6. ARRlVAL_TlME VARCHAR2 20
l7. ARRlVAL_TlME VARCHAR2 20
l8. ARRlVAL_TlME VARCHAR2 20
l9. SOURCE VARCHAR2 20
20. DESTlNATlON VARCHAR2 20
2l. S_DEPERTURE_Tl
ME
VARCHAR2 20
22. D_ARRlVAL_TlME VARCHAR2 20
&"! SC>E,:6E /20R4AT/0
lll
S.
NO.
FlELD NAME DATA TYPE WlDTH Constraints
l. TRAlN NO. VARCHAR2 20 Primary key
2. TRAlN NAME VARCHAR2 50
3. DEPERTURE
TlME
VARCHAR2 20
4. ARRlVAL TlME VARCHAR2 20
5. STOP TlME VARCHAR2 l0
6. DELAY TlME VARCHAR2 l0
ll2

ll3
)SER LO9IN TA(LE:+
ame ,ata Ty+e 6engt* Constraints descri+tion
CserBid +archar, (,-) &rimary key user id will store
the id of user
who can access
the pro1ect
CserBpassword +archar, (,-) 'ot null &assword
TRAIN IN3ORMATION TA(LE:+
ame ,ata Ty+e 6engt* Constraints ,escri+tion
TrainBno +archar, (,-) &rimary key This field is used
for store the
number of train.
TrainBname +archar, (.-) 'ot null This field is store
the name of train.
source +archar, (,-) 'ot null This field is store
the name of source
station of trains.
destination +archar, (,-) 'ot null This field is store
the name of
destination station
of trains.
"epertureBtime +archar, (,-) 'ot null This field is used
for store the
source6s departure
time of train.
ll4
ArrivalBtime +archar, (,-) 'ot null This field is used
for store the
destination6s arrival
time of train.
category +archar, (,-) 'ot null This field is store
the category of
train. (ex
express#superfast
etc.)
TotalBdistance +archar, (,-) 'ot null This field is store
the total distance
of train 1ourney in
km.
+iaB0 +archar, (,-) 'ot null This field is store
the name of first
via station of a
train 1ourney.
+iaB, +archar, (,-) 'ot null This field is store
the name of
second via station
of a train 1ourney.
+iaB< +archar, (,-) 'ot null This field is store
the name of third
via station of a
train 1ourney.
+iaB= +archar, (,-) 'ot null This field is store
the name of fourth
via station of a
train 1ourney.
ll5
3ARE IN3ORMATION:+
ame ,ata
Ty+e
6engt* Constraints ,escri+tion
TrainBno +archar, (,-) &rimary key This field is used for store
the number of train.
TrainBname +archar, (.-) 'ot null This field is store the name
of train.
%leeperBvia0 number (E#,) 'ot null This field is store the fare of
source to via0 of train
1ourney in sleeper class.
%leeperBvia, number (E#,) 'ot null This field is store the fare of
source to via, of train
1ourney in sleeper class.
%leeperBvia< number (E#,) 'ot null This field is store the fare of
source to via< of train
1ourney in sleeper class.
%leeperBvia= number (E#,) 'ot null This field is store the fare of
source to via= of train
1ourney in sleeper class.
Ac<Bvia0 number (E#,) 'ot null This field is store the fare of
source to via0 of train
Hourney in ac< class.
Ac<Bvia, number (E#,) 'ot null This field is store the fare of
source to via, of train
1ourney in ac< class.
Ac<Bvia< number (E#,) 'ot null This field is store the fare of
source to via< of train
1ourney in ac< class.
Ac<Bvia= number (E#,) 'ot null This field is store the fare of
ll6
source to via= of train
1ourney in ac< class.
Ac,Bvia0 number (E#,) 'ot null This field is store the fare of
source to via0 of train
1ourney in ac, class.
Ac,Bvia, number (E#,) 'ot null This field is store the fare of
source to via, of train
1ourney in ac, class.
Ac,Bvia< number (E#,) 'ot null This field is store the fare of
source to via< of train
1ourney in ac, class.
Ac,Bvia= number (E#,) 'ot null This field is store the fare of
source to via= of train
1ourney in ac, class.
Ac0Bvia0 number (E#,) 'ot null This field is store the fare of
source to via0 of train
Hourney in ac0 class.
Ac0Bvia, number (E#,) 'ot null This field is store the fare of
source to via, of train
1ourney in ac0 class.
Ac0Bvia< number (E#,) 'ot null This field is store the fare of
source to via< of train
1ourney in ac0 class.
Ac0Bvia= number (E#,) 'ot null This field is store the fare of
source to via= of train
1ourney in ac0 class.
%leeperBsBtoBd number (E#,) 'ot null This field is store the fare of
source to destination of
train
Hourney in sleeper class.
Ac<BsBtoBd number (E#,) 'ot null This field is store the fare of
source to destination of
ll7
train 1ourney in ac< class.
Ac,BsBtoBd number (E#,) 'ot null This field is store the fare of
source to destination of
train 1ourney in ac, class.
Ac0BsBtoBd number (E#,) 'ot null This field is store the fare of
source to destination of
train 1ourney in ac0 class.
TICHET RESERVATION TA(LE:+
ame ,ata Ty+e 6engt* Constraints ,escri+tion
TrainBno +archar, (,-) &rimary key This field is used
for store the
number of train.
TrainBname +archar, (.-) 'ot null This field is store
the name of
train.
source +archar, (,-) 'ot null This field is store
the name of
source station of
trains.
destination +archar, (,-) 'ot null This field is store
the name of
destination
station of trains.
name +archar, (,-) 'ot null 'ame of the
passenger.
age number (<) 'ot null Age of the
ll8
passenger
gender +archar, (F) 'ot null :ender
4uota +archar, (,-) 'ot null 9uota of the
passenger. (ex
general 4uota#
senior citizen
4uota etc)
"BoBt date 'ot null "ate of traveling.
$ontactBno number (,-) 'ot null $ontact number
of the passenger
address +archar, (.-) 'ot null Address of the
passenger.
%eatBno number (,) 'ot null This field is store
the seat number
in the train.
$oachBno +archar, (,-) 'ot null This field is store
the coach
number.
&nrBno +carchar, (,-) *oreign key This field is store
the pnr number.
&nr number is
used for identify
the passengers
tickets.
fare number (E#,) 'ot null This field is store
the *are which is
paid by the
passengers for
ticket
reservation.
status +archar, (,-) 'ot null This field is store
ll9
the status. (ex
sleeper#ac<#ac,#
ac0)
"epertureBtime +archar, (,-) 'ot null This field is used
for store the
source6s
departure time of
train.
ArrivalBtime +archar, (,-) 'ot null This field is used
for store the
destination6s
arrival time of
train.
*romBstation +archar, (,- 'ot null This field is store
the station name
where you want
to start the
1ourney in train.
ToBstation +archar, (,-) 'ot null This field is store
the station name
where you want
to end the
1ourney in the
train.
TICHET CANCELLATION:+
ame ,ata Ty+e 6engt* Constraints ,escri+tion
&nrBno +carchar, (,-) *oreign key This field is store
l20
the pnr number.
&nr number is
used for identify
the passengers
tickets.
TrainBno +archar, (,-) &rimary key This field is used
for store the
number of train.
TrainBname +archar, (.-) 'ot null This field is store
the name of
train.
source +archar, (,-) 'ot null This field is store
the name of
source station of
trains.
destination +archar, (,-) 'ot null This field is store
the name of
destination
station of trains.
name +archar, (,-) 'ot null 'ame of the
passenger.
age number (<) 'ot null Age of the
passenger
gender +archar, (F) 'ot null :ender
4uota +archar, (,-) 'ot null 9uota of the
passenger. (ex
general 4uota#
senior citizen
4uota etc)
"BoBt date 'ot null "ate of traveling.
$ontactBno number (,-) 'ot null $ontact number
of the passenger
l2l
address +archar, (.-) 'ot null Address of the
passenger.
!eturnBfare number (E#,) 'ot null This field is store
the return *are
which is returned
by the railway to
passenger for
ticket
cancellation.
status +archar, (,-) 'ot null This field is store
the status. (ex
sleeper#ac<#ac,#
ac0)
"epertureBtime +archar, (,-) 'ot null This field is used
for store the
source6s
departure time of
train.
ArrivalBtime +archar, (,-) 'ot null This field is used
for store the
destination6s
arrival time of
train.
*romBstation +archar, (,- 'ot null This field is store
the station name
where you want
to start the
1ourney in train.
ToBstation +archar, (,-) 'ot null This field is store
the station name
where you want
to end the
1ourney in the
train.
l22
PASSEN9ER IN3ORMATION:+
ame ,ata Ty+e 6engt* Constraints ,escri+tion
&nrBno +carchar, (,-) *oreign key This field is store
the pnr number.
&nr number is
used for identify
the passengers
tickets.
TrainBname +archar, (.-) 'ot null This field is store
the name of
train.
TrainBno +archar, (,-) &rimary key This field is used
for store the
number of train.
source +archar, (,-) 'ot null This field is store
the name of
source station of
trains.
destination +archar, (,-) 'ot null This field is store
the name of
destination
station of trains.
name +archar, (,-) 'ot null 'ame of the
passenger.
age number (<) 'ot null Age of the
passenger
gender +archar, (F) 'ot null :ender
l23
4uota +archar, (,-) 'ot null 9uota of the
passenger. (ex
general 4uota#
senior citizen
4uota etc)
"BoBt date 'ot null "ate of traveling.
$ontactBno number (,-) 'ot null $ontact number
of the passenger
address +archar, (.-) 'ot null Address of the
passenger.
status +archar, (,-) 'ot null This field is store
the status. (ex
sleeper#ac<#ac,#
ac0)
%eatBno number (,) 'ot null This field is store
the seat number
in the train.
"epertureBtime +archar, (,-) 'ot null This field is used
for store the
source6s
departure time of
train.
ArrivalBtime +archar, (,-) 'ot null This field is used
for store the
destination6s
arrival time of
train.
*romBstation +archar, (,- 'ot null This field is store
the station name
where you want
to start the
1ourney in train.
l24
ToBstation +archar, (,-) 'ot null This field is store
the station name
where you want
to end the
1ourney in the
train.
$oachBno +archar, (,-) 'ot null This field is store
the coach
number.
St'ff Inform'tion T';le:+
N'me 2't' T64e Len5th Constr'ints 2escri4tio
n
id +archar, (,-) &rimary key %taff
identification
number.
name +archar, (,-) 'ot null 'ame of the
staff member.
age 'umber (<) 'ot null %taff member
5s age
:ender +archar, (F) 'ot null :ender
(female>male)
"BoBb date 'ot null "tae of birth.
l25
"BoB1 date 'ot null "tae of 1oining.
"BoBw "ate 'ot null "ate of
writierment.
&ost +archar, (,-) 'ot null &ost of the
staff member.
"epartment +archar, (,-) 'ot null department of
the staff
member.
address +archar, (.-) 'ot null address of the
staff member.
l26
ROOT IN3ORMATION:+
l27
l28
*ield +ame Data !ype $engt, Constraint Des-ription
TrainBno +archar, (,-) &rimary key This field is used
for store the
number of train.
TrainBname +archar, (.-) 'ot null This field is store
the name of train.
+iaB0 +archar, (,-) 'ot null This field is store
the name of first
via station of a
train 1ourney.
+iaB, +archar, (,-) 'ot null This field is store
the name of
second via station
of a train 1ourney.
+iaB< +archar, (,-) 'ot null This field is store
the name of third
via station of a
train 1ourney.
+iaB= +archar, (,-) 'ot null This field is store
the name of fourth
via station of a
train 1ourney.
"istance0 +archar, (,-) 'ot null This field is store
the distance in km.
between source to
via0 of the train
1ourney.
"istance, +archar, (,-) 'ot null This field is store
the distance in km.
between source to
via, of the train
1ourney.
"istance< +archar, (,-) 'ot null This field is store
the distance in km.
between source to
via< of the train
1ourney.
"istance= +archar, (,-) 'ot null This field is store
the distance in km.
between source to
via= of the train
1ourney.
SC0E2)LE IN3ORMATION:+
*ield +ame Data !ype $engt, Constraints Description
TrainBno +archar, (,-) &rimary key This field is
used for store
the number of
train.
TrainBname +archar, (.-) 'ot null This field is
store the name
of train.
"epertureBtime +archar, (,-) 'ot null This field is
used for store
the sources
departure time
of train.
ArrivalBtime +archar, (,-) 'ot null This field is
used for store
the
destinations
arrival time of
train.
%topBtime +archar, (,-) not null This field store
l29
the stop time of
train journey.
Delay_time Varchar2 (20) not null This field store
the delay time
of train journey.
l30
SPLASE SCREEN

l3l
LOGlN FORM

l32
HOME PAGE
l33
HOME PAGE FlLE MENU

l34
HOME PAGE VlEW MENU

l35
HOME PAGE TOOLS MENU

l36
HOME PAGE HELP MENU
l37
ADDMlNlSTRATOR_LOGlN FORM



l38
TRAlN_lNFORMATlON lNPUT FORM


l39
TRAlN_lNFORMATlON OUTPUT FORM

l40

FARE_lNFORMATlON lNPUT FORM



FARE_lNFORMATlON OUTPUT FORM
l4l


l42
RESERVATlON lNPUT FORM



l43

l44
CANCELLATlON lNPUT FORM




l45
CANCELLATlON OUTPUT FORM



l46
PASSENGER_lNFORMATlON lNPUT FORM





l47
PASSENGER_lNFORMATlON OUTPUT FORM

l48
STAFF_lNFORMATlON lNPUT FORM



l49
STAFF_lNFORMATlON OUTPUT FORM


l50
ROOT_lNFORMATlON lNPUT FORM



l5l
ROOT_lNFORMATlON OUTPUT FORM


l52
SCHEDULE lNFORMATlOlN lNPUT FORM
l53
SCHEDULE lNFORMATlON OUTPUT FORM



l54
SEARCH TRAlN lNFORMATlON lNPUT FORM


l55
SEARCH TRAlN lNFORMATlON OUTPUT FORM



l56
SEARCH FARE lNFORMATlON lNPUT FORM

l57
SEARCH FARE lNFORMATlON OUTPUT FORM


l58
SEARCH RESERVATlON lNFORMATlON lNPUT
FORM



l59
SEARCH RESERVATlON lNFORMATlON
OUTPUT FORM

l60
SEARCH CANCELLATlON lNPUT FORM




l6l
SEARCH CANCELLATlON OUTPUT FORM



l62
Search passenger information input form


l63

l64
Search passenger information output form


l65

SEARCH STAFF lNFORMATlON lNPUT FORM

l66
SEARCH SCHEDULE lNFORMATlON lNPUT
FORM



l67
SEARCH SCHEDULE lNFORMATlON OUTPUT
FORM



l68
SEARCH ROOT lNFORMATlON lNPUT FORM


l69
SEARCH ROOT lNFORMATlON OUTPUT FORM





l70
SEARCH SCHEDULE lNFORMATlON lNPUT
FORM



l7l
SEARCH SCHEDULE lNFORMATlON OUTPUT
FORM


l72
CHANGE PASSWORD
l73
TRAlN lNFORMATlON REPORT

l74
RESERVATlON lNFORMATlON REPORT


l75
CANCELLATlON lNFORMATlON REPORT

l76
FARE lNFORMATlON REPORT


l77
ROOT lNFORMATlON REPORT
l78
ABOUT FORM
l79
l80
&)SERDLO9IN:+ This module includes the details about the user means
who use this software. And the details are like as user id and password.
<A2MINISTRATER LO9IN:+ This module includes the details about
administrator like administrator id and password. ;ecause a administrator
have all permission related to record like updation# deletion and etc.
# TRAIN IN3ORMATION:+ This module includes the details about the train
which is in running operation in the Indian railway having reservation
facility. And the details are train no# train name# source# destination# arrival
time# departure time and etc.
% 3ARE IN3ORMATION:+ This module includes the details about the fare
of train. The fare of ticket depends on the route# it means from source
station to route. *or this# this module includes the all basic information like
l8l
what is the fare of source to particular routeA. And the details are train no#
train name# class and etc.
$ RESERVATION:+ This module includes the details about the
reservation made by the passenger. And the details are pnr no# train no#
train name# source# destination# fare# paid fare# d o trav and etc.
" CANCELLATION:+ This module includes the details about the
cancellation of ticket which is issued by Indian railway. The details are pnr
no# train no# train name# source# destination# cancellation amount and
return amount and etc.
. PASSEN9ER IN3ORMATION:- This module includes the details about
the passenger who comes to make the reservation. And the details are like
as pnr no# name# address# tel no and etc.
, STA33 IN3ORMATION:+ This module includes the details about the
staff who is working in the reservation center and who make the
l82
reservation. And the details are like as staff id# staff name# staff address# d
o b# d o 1 and etc.
C ROOTS IN3ORMATION:+ this module includes the details about the
root on which any train of Indian rail runs. And for which a passenger can
make the reservation. And the details are like as train no# train name# root0#
root,# root<# fare0# fare,# fare<# class and etc.
&! TRAIN SC0E2)LE:+ this module includes the details of train
scheduling. And the details are like train no# train name# arrv time# dept
time# stop time# delay time and etc.
l83
T*is so-tware +rocesses in t*e -ollowing manner:
l84
The passenger will visit the reservation center for reserving the Ticket in
the train. *or this purpose he>she has to specify the source and the
destination and the date for which the reservation is re4uired. And also
he>she has to fill the passenger detail form like their name# address and
telephone number. The operator would check for the status of the train
re4uired by the passenger. If there are enough vacant seats available#
the reservation will be confirmed. A ticket for the train will be issued to
the passenger after accepting the fares for the train.
The fares are different for adult and child as well they also depend upon
the $lass of %eats e.g. for first class and for economy class there are
different fares. "epending upon passenger6s re4uirement appropriate
fares will be charged for traveling.

l85

l86
CODlNG OF SPLASH SCREEN
Public NotInheritable Class SplashScreen1
'TODO: This form can easily be set as the splash screen for the
application by going to the "pplication" tab
' of the Pro!ect Designer ""Properties" un#er the "Pro!ect" menu$%
Pri&ate Sub SplashScreen1'(oa#")y*al sen#er s Ob!ect+ )y*al e s
System%,&entrgs$ -an#les .e%(oa#
'Set up the #ialog te/t at runtime accor#ing to the application's
assembly information%
'TODO: Customi0e the application's assembly information in the
"pplication" pane of the pro!ect
' properties #ialog "un#er the "Pro!ect" menu$%
'pplication title
If .y%pplication%Info%Title 12 "" Then
pplicationTitle%Te/t 3 .y%pplication%Info%Title
,lse
l87
'If the application title is missing+ use the application name+
4ithout the e/tension
pplicationTitle%Te/t 3
System%IO%Path%5et6ileName7ithout,/tension".y%pplication%Info%ssemblyName$
,n# If
'6ormat the &ersion information using the te/t set into the *ersion
control at #esign time as the
' formatting string% This allo4s for effecti&e locali0ation if
#esire#%
' )uil# an# re&ision information coul# be inclu#e# by using the
follo4ing co#e an# changing the
' *ersion control's #esigntime te/t to "*ersion 89:%81:99:%8;:%8<:"
or something similar% See
' String%6ormat"$ in -elp for more information%
'
' *ersion%Te/t 3 System%String%6ormat"*ersion%Te/t+
.y%pplication%Info%*ersion%.a!or+ .y%pplication%Info%*ersion%.inor+
.y%pplication%Info%*ersion%)uil#+ .y%pplication%Info%*ersion%=e&ision$
*ersion%Te/t 3 System%String%6ormat"*ersion%Te/t+
.y%pplication%Info%*ersion%.a!or+ .y%pplication%Info%*ersion%.inor$
'Copyright info
l88
Copyright%Te/t 3 .y%pplication%Info%Copyright
Timer1%Start"$
,n# Sub
Pri&ate Sub Timer1'Tic>")y*al sen#er s System%Ob!ect+ )y*al e s
System%,&entrgs$ -an#les Timer1%Tic>
Progress)ar1%*alue"$ 3 Progress)ar1%*alue ? 19
If Progress)ar1%*alue Then
Timer1%Stop"$
login%Sho4"$
.e%-i#e"$
,n# If
,n# Sub
Pri&ate Sub .ain(ayoutPanel'Paint")y*al sen#er s System%Ob!ect+ )y*al e
s System%7in#o4s%6orms%Paint,&entrgs$ -an#les .ain(ayoutPanel%Paint
,n# Sub

,n# Class
l89
CODlNG OF LOGlN FORM
Public Class login
Dim =S s DOD)%=ecor#set
Pri&ate Sub )utton1'Clic>")y*al sen#er s System%Ob!ect+ )y*al e s
System%,&entrgs$ -an#les )utton1%Clic>
Call main"$
=S 3 Ne4 DOD)%=ecor#set
=S%Open""S,(,CT @ 6=O. (O5IN"+ con+
DOD)%CursorType,num%a#OpenDynamic+ DOD)%(oc>Type,num%a#(oc>Optimistic$
If Te/t)o/1%Te/t 3 "" Or Te/t)o/;%Te/t 3 "" Then
.sg)o/""P(A 6I(( IN T-, )(NBS"+ .sg)o/Style%Critical$
,lse
Dim 6 s )oolean
6 3 6alse
Do 7hile "=S%,O6 12 True$
If (Case"Te/t)o/1%Te/t$ 3 (Case"=S%6iel#s"9$%*alue$ n#
(Case"Te/t)o/;%Te/t$ 3 (Case"=S%6iel#s"1$%*alue$ Then
6 3 True
l90
,/it Do
,lse
=S%.o&eNe/t"$
,n# If
(oop
If 6 3 True Then
home'page%Sho4"$
.e%Close"$
,lse
.sg)o/""IN*(ID ID O= PSS7O=D"$
,n# If
,n# If
,n# Sub
Pri&ate Sub login'(oa#")y*al sen#er s System%Ob!ect+ )y*al e s
System%,&entrgs$ -an#les .y)ase%(oa#
,n# Sub
,n# Class
l9l
CODlNG OF HOME PAGE
Imports System%7in#o4s%6orms
Public Class home'page

Pri&ate Sub )OCTP=OD,CTToolStrip.enuItem'Clic>")y*al sen#er s
System%Ob!ect+ )y*al e s System%,&entrgs$ -an#les
)OCTP=OD,CTToolStrip.enuItem%Clic>
bout)o/1%Sho4"$
,n# Sub
Pri&ate Sub T=IND,TI(ToolStrip.enuItem'Clic>")y*al sen#er s
System%Ob!ect+ )y*al e s System%,&entrgs$ -an#les
T=IND,TI(ToolStrip.enuItem%Clic>
train'information%Sho4"$
,n# Sub
Pri&ate Sub =OCT,D,TI(ToolStrip.enuItem'Clic>")y*al sen#er s
System%Ob!ect+ )y*al e s System%,&entrgs$ -an#les
=OCT,D,TI(ToolStrip.enuItem%Clic>
6=,'IN6O=.TION%Sho4"$
,n# Sub
Pri&ate Sub =,S,=*TIOND,TI(ToolStrip.enuItem'Clic>")y*al sen#er s
System%Ob!ect+ )y*al e s System%,&entrgs$ -an#les
=,S,=*TIOND,TI(ToolStrip.enuItem%Clic>
=,S,=*TION%Sho4"$
,n# Sub
l92
Pri&ate Sub CNC,((TIOND,TI(ToolStrip.enuItem'Clic>")y*al sen#er s
System%Ob!ect+ )y*al e s System%,&entrgs$ -an#les
CNC,((TIOND,TI(ToolStrip.enuItem%Clic>
cancellation%Sho4"$
,n# Sub
Pri&ate Sub PSS,N5,=D,TI(ToolStrip.enuItem'Clic>")y*al sen#er s
System%Ob!ect+ )y*al e s System%,&entrgs$ -an#les
PSS,N5,=D,TI(ToolStrip.enuItem%Clic>
PSS,N5,='IN6O=.TION%Sho4"$
,n# Sub
Pri&ate Sub ST66D,TI(ToolStrip.enuItem'Clic>")y*al sen#er s
System%Ob!ect+ )y*al e s System%,&entrgs$ -an#les
ST66D,TI(ToolStrip.enuItem%Clic>
ST66'IN6O=.TION%Sho4"$
,n# Sub
Pri&ate Sub =OCT,D,TI(ToolStrip.enuItem1'Clic>")y*al sen#er s
System%Ob!ect+ )y*al e s System%,&entrgs$ -an#les
=OCT,D,TI(ToolStrip.enuItem1%Clic>
root'information%Sho4"$
l93
,n# Sub
Pri&ate Sub SC-,DC(,D,TI(ToolStrip.enuItem'Clic>")y*al sen#er s
System%Ob!ect+ )y*al e s System%,&entrgs$ -an#les
SC-,DC(,D,TI(ToolStrip.enuItem%Clic>
6orm<%Sho4"$
,n# Sub
Pri&ate Sub S,=C-ToolStrip.enuItem'Clic>")y*al sen#er s System%Ob!ect+
)y*al e s System%,&entrgs$ -an#les S,=C-ToolStrip.enuItem%Clic>
search'train'information%Sho4"$
,n# Sub
Pri&ate Sub C-N5,PSS7O=DToolStrip.enuItem'Clic>")y*al sen#er s
System%Ob!ect+ )y*al e s System%,&entrgs$ -an#les
C-N5,PSS7O=DToolStrip.enuItem%Clic>
C-N5,'PSS7O=D%Sho4"$
l94
,n# Sub
Pri&ate Sub -elp.enu'Clic>")y*al sen#er s System%Ob!ect+ )y*al e s
System%,&entrgs$ -an#les -elp.enu%Clic>
,n# Sub
Pri&ate Sub S,=C-ToolStrip.enuItem1'Clic>")y*al sen#er s System%Ob!ect+
)y*al e s System%,&entrgs$ -an#les S,=C-ToolStrip.enuItem1%Clic>
search'fare'information%Sho4"$
,n# Sub
Pri&ate Sub S,=C-=,S,=*TIONToolStrip.enuItem'Clic>")y*al sen#er s
System%Ob!ect+ )y*al e s System%,&entrgs$ -an#les
S,=C-=,S,=*TIONToolStrip.enuItem%Clic>
search'reser&ation%Sho4"$
,n# Sub
l95
Pri&ate Sub S,=C-CNC,((TIOND,TI(ToolStrip.enuItem'Clic>")y*al sen#er
s System%Ob!ect+ )y*al e s System%,&entrgs$ -an#les
S,=C-CNC,((TIOND,TI(ToolStrip.enuItem%Clic>
search'cancellation%Sho4"$
,n# Sub
Pri&ate Sub S,=C-PSS,N5,=D,TI(ToolStrip.enuItem'Clic>")y*al sen#er s
System%Ob!ect+ )y*al e s System%,&entrgs$ -an#les
S,=C-PSS,N5,=D,TI(ToolStrip.enuItem%Clic>
search'passenger'information%Sho4"$
,n# Sub
Pri&ate Sub S,=C-ST66D,TI(ToolStrip.enuItem'Clic>")y*al sen#er s
System%Ob!ect+ )y*al e s System%,&entrgs$ -an#les
S,=C-ST66D,TI(ToolStrip.enuItem%Clic>
search'staff'information%Sho4"$
,n# Sub
l96
Pri&ate Sub S,=C-=OCT,D,TI(ToolStrip.enuItem'Clic>")y*al sen#er s
System%Ob!ect+ )y*al e s System%,&entrgs$ -an#les
S,=C-=OCT,D,TI(ToolStrip.enuItem%Clic>
search'root'information%Sho4"$
,n# Sub
Pri&ate Sub S,=C-SC-,DC(,D,TI(ToolStrip.enuItem'Clic>")y*al sen#er s
System%Ob!ect+ )y*al e s System%,&entrgs$ -an#les
S,=C-SC-,DC(,D,TI(ToolStrip.enuItem%Clic>
search'sche#ule'information%Sho4"$
,n# Sub

,n# Class
l97
CODlNG OF LOGlN ADMlNlSTRATOR FORM
Public Class login'a#ministrator
Dim rs s DOD)%=ecor#set
Pri&ate Sub login'a#ministrator'(oa#")y*al sen#er s System%Ob!ect+ )y*al
e s System%,&entrgs$ -an#les .y)ase%(oa#
Call main"$
=S 3 Ne4 DOD)%=ecor#set
=S%Open""S,(,CT @ 6=O. D.INIST=TO='(O5IN"+ con+
DOD)%CursorType,num%a#OpenDynamic+ DOD)%(oc>Type,num%a#(oc>Optimistic$
Call sho4'#ata"$
,n# Sub
Pri&ate Sub sho4'#ata"$
If rs%,O6 n# rs%)O6 3 True Then
.sg)o/""there are no recor#s to sho4"+ .sg)o/Style%Critical$
,lse
Te/t)o/1%Te/t 3 rs%6iel#s"9$%*alue
Te/t)o/;%Te/t 3 rs%6iel#s"1$%*alue
l98
,n# If
,n# Sub

,n# Class
l99
CODING OF TRAIN INFORMATION FORM
Public Class train'information
Dim rs s DOD)%=ecor#set
Pri&ate Sub train'information'(oa#")y*al sen#er s
System%Ob!ect+ )y*al e s System%,&entrgs$ -an#les
.y)ase%(oa#
Call main"$
=S 3 Ne4 DOD)%=ecor#set
rs%Open""S,(,CT @ 6=O. train'IN6O=.TION"+
con+ DOD)%CursorType,num%a#OpenDynamic+
DOD)%(oc>Type,num%a#(oc>Optimistic$
Call sho4'#ata"$
,n# Sub
200
Pri&ate Sub sho4'#ata"$
If rs%,O6 n# rs%)O6 3 True Then
.sg)o/""there are no recor#s to sho4"+
.sg)o/Style%Critical$
,lse
Te/t)o/1%Te/t 3 rs%6iel#s"9$%*alue
Te/t)o/;%Te/t 3 rs%6iel#s"1$%*alue
Te/t)o/<%Te/t 3 rs%6iel#s";$%*alue
Te/t)o/E%Te/t 3 =S%6iel#s"<$%*alue
Te/t)o/F%Te/t 3 =S%6iel#s"E$%*alue
Te/t)o/G%Te/t 3 =S%6iel#s"F$%*alue
Te/t)o/H%Te/t 3 =S%6iel#s"G$%*alue
Te/t)o/I%Te/t 3 =S%6iel#s"H$%*alue
20l
,n# If
,n# Sub
Pri&ate Sub Ne/tToolStrip.enuItem'Clic>")y*al
sen#er s System%Ob!ect+ )y*al e s System%,&entrgs$
-an#les Ne/tToolStrip.enuItem%Clic>
rs%.o&eNe/t"$
If rs%,O6 3 True Then
rs%.o&ePre&ious"$
.sg)o/""this is a last recor#"+
.sg)o/Style%Information$
,n# If
Call sho4'#ata"$
,n# Sub
202
Pri&ate Sub
CloseThe7in#o4ToolStrip.enuItem;'Clic>")y*al sen#er s
System%Ob!ect+ )y*al e s System%,&entrgs$ -an#les
CloseThe7in#o4ToolStrip.enuItem;%Clic>
.e%Close"$
,n# Sub
Pri&ate Sub Ne4ToolStrip.enuItem<'Clic>")y*al
sen#er s System%Ob!ect+ )y*al e s System%,&entrgs$
-an#les Ne4ToolStrip.enuItem<%Clic>
rs%##Ne4"$
Te/t)o/1%Te/t 3 ""
Te/t)o/;%Te/t 3 ""
Te/t)o/<%Te/t 3 ""
Te/t)o/E%Te/t 3 ""
Te/t)o/F%Te/t 3 ""
Te/t)o/G%Te/t 3 ""
Te/t)o/H%Te/t 3 ""
203
Te/t)o/I%Te/t 3 ""
=ecor#ToolStrip.enuItem%,nable# 3 6alse
Ne4ToolStrip.enuItem%,nable# 3 6alse
DeleteToolStrip.enuItem%,nable# 3 6alse
,n# Sub
Pri&ate Sub Sa&eToolStrip.enuItem<'Clic>")y*al
sen#er s System%Ob!ect+ )y*al e s System%,&entrgs$
-an#les Sa&eToolStrip.enuItem<%Clic>
If Te/t)o/1%Te/t 3 "" Or Te/t)o/;%Te/t 3 "" Or
Te/t)o/<%Te/t 3 "" Or Te/t)o/E%Te/t 3 "" Or
Te/t)o/F%Te/t 3 "" Or Te/t)o/G%Te/t 3 "" Or
Te/t)o/H%Te/t 3 "" Or Te/t)o/I%Te/t 3 "" Then
204
.sg)o/""Pl0 6ill The )o/es )lan>"+
.sg)o/Style%Critical$
,lse
rs%6iel#s"9$%*alue 3 Te/t)o/1%Te/t
rs%6iel#s"1$%*alue 3 Te/t)o/;%Te/t
rs%6iel#s";$%*alue 3 Te/t)o/<%Te/t
rs%6iel#s"<$%*alue 3 Te/t)o/E%Te/t
rs%6iel#s"E$%*alue 3 Te/t)o/F%Te/t
rs%6iel#s"F$%*alue 3 Te/t)o/G%Te/t
rs%6iel#s"G$%*alue 3 Te/t)o/H%Te/t
rs%6iel#s"H$%*alue 3 Te/t)o/I%Te/t
rs%Cp#ate"$
.sg)o/""=ecor# Is Sa&e#"+
.sg)o/Style%Information$
rs%.o&e6irst"$
Call sho4'#ata"$
205
=ecor#ToolStrip.enuItem%,nable# 3 True
Ne4ToolStrip.enuItem%,nable# 3 True
DeleteToolStrip.enuItem%,nable# 3 True
,n# If
,n# Sub
Pri&ate Sub DeleteToolStrip.enuItem<'Clic>")y*al
sen#er s System%Ob!ect+ )y*al e s System%,&entrgs$
-an#les DeleteToolStrip.enuItem<%Clic>
rs%Delete"$
.sg)o/""=ecor# Is Delete#"+
.sg)o/Style%Information$
rs%.o&e6irst"$
Call sho4'#ata"$
206
,n# Sub
Pri&ate Sub CancelToolStrip.enuItem<'Clic>")y*al
sen#er s System%Ob!ect+ )y*al e s System%,&entrgs$
-an#les CancelToolStrip.enuItem<%Clic>
rs%CancelCp#ate"$
rs%.o&e6irst"$
Call sho4'#ata"$
=ecor#ToolStrip.enuItem%,nable# 3 True
Ne4ToolStrip.enuItem%,nable# 3 True
DeleteToolStrip.enuItem%,nable# 3 True
,n# Sub
207
Pri&ate Sub 6irstToolStrip.enuItem1'Clic>")y*al
sen#er s System%Ob!ect+ )y*al e s System%,&entrgs$
-an#les 6irstToolStrip.enuItem1%Clic>
rs%.o&e6irst"$
Call sho4'#ata"$
,n# Sub
Pri&ate Sub Pre&iousToolStrip.enuItem1'Clic>")y*al
sen#er s System%Ob!ect+ )y*al e s System%,&entrgs$
-an#les Pre&iousToolStrip.enuItem1%Clic>
rs%.o&ePre&ious"$
If rs%)O6 3 True Then
.sg)o/""this is first recor#"+
.sg)o/Style%Information$
rs%.o&eNe/t"$
,n# If
208
Call sho4'#ata"$
,n# Sub
Pri&ate Sub (astToolStrip.enuItem;'Clic>")y*al
sen#er s System%Ob!ect+ )y*al e s System%,&entrgs$
-an#les (astToolStrip.enuItem;%Clic>
rs%.o&e(ast"$
Call sho4'#ata"$
,n# Sub
Pri&ate Sub Te/t)o/1'(ost6ocus")y*al sen#er s
Ob!ect+ )y*al e s System%,&entrgs$ -an#les
Te/t)o/1%(ost6ocus
If (en"Te/t)o/1%Te/t$ 2 ;9 Then
.sg)o/""input #ata is too long"$
209
,n# If

,n# Sub
Pri&ate Sub Te/t)o/;'(ost6ocus")y*al sen#er s
Ob!ect+ )y*al e s System%,&entrgs$ -an#les
Te/t)o/;%(ost6ocus
If (en"Te/t)o/;%Te/t$ 2 ;9 Then
.sg)o/""input #ata is too long"$
,n# If
,n# Sub
2l0
Pri&ate Sub Te/t)o/<'(ost6ocus")y*al sen#er s
Ob!ect+ )y*al e s System%,&entrgs$ -an#les
Te/t)o/<%(ost6ocus
If (en"Te/t)o/<%Te/t$ 2 ;9 Then
.sg)o/""input #ata is too long"$
,n# If
,n# Sub
Pri&ate Sub Te/t)o/E'(ost6ocus")y*al sen#er s
Ob!ect+ )y*al e s System%,&entrgs$ -an#les
Te/t)o/E%(ost6ocus
If (en"Te/t)o/E%Te/t$ 2 ;9 Then
.sg)o/""input #ata is too long"$
,n# If
,n# Sub
2ll
Pri&ate Sub Te/t)o/F'(ost6ocus")y*al sen#er s
Ob!ect+ )y*al e s System%,&entrgs$ -an#les
Te/t)o/F%(ost6ocus
If (en"Te/t)o/F%Te/t$ 2 ;9 Then
.sg)o/""input #ata is too long"$
,n# If
,n# Sub
Pri&ate Sub Te/t)o/G'(ost6ocus")y*al sen#er s
Ob!ect+ )y*al e s System%,&entrgs$ -an#les
Te/t)o/G%(ost6ocus
If (en"Te/t)o/G%Te/t$ 2 ;9 Then
.sg)o/""input #ata is too long"$
,n# If
2l2
,n# Sub
Pri&ate Sub Te/t)o/H'(ost6ocus")y*al sen#er s
Ob!ect+ )y*al e s System%,&entrgs$ -an#les
Te/t)o/H%(ost6ocus
If (en"Te/t)o/H%Te/t$ 2 ;9 Then
.sg)o/""input #ata is too long"$
,n# If
,n# Sub
Pri&ate Sub Te/t)o/I'(ost6ocus")y*al sen#er s
Ob!ect+ )y*al e s System%,&entrgs$ -an#les
Te/t)o/I%(ost6ocus
If (en"Te/t)o/I%Te/t$ 2 ;9 Then
.sg)o/""input #ata is too long"$
2l3
,n# If
,n# Sub
,n# Class
2l4
CODING OF FARE INFORMATION FORM
Public Class 6=,'IN6O=.TION
Dim rs s DOD)%=ecor#set
Pri&ate Sub 6=,'IN6O=.TION'(oa#")y*al sen#er s System%Ob!ect+ )y*al e
s System%,&entrgs$ -an#les .y)ase%(oa#
Call main"$
rs 3 Ne4 DOD)%=ecor#set
rs%Open""S,(,CT @ 6=O. 6=,'IN6O=.TION"+ con+
DOD)%CursorType,num%a#OpenDynamic+ DOD)%(oc>Type,num%a#(oc>Optimistic$
Call sho4'#ata"$
,n# Sub
Pri&ate Sub sho4'#ata"$
If rs%,O6 n# rs%)O6 3 True Then
.sg)o/""there are no recor#s to sho4"+ .sg)o/Style%Critical$
,lse
Te/t)o/1%Te/t 3 rs%6iel#s"9$%*alue
Te/t)o/;%Te/t 3 rs%6iel#s"1$%*alue
2l5
Te/t)o/<%Te/t 3 rs%6iel#s";$%*alue
Te/t)o/E%Te/t 3 rs%6iel#s"<$%*alue
Te/t)o/F%Te/t 3 rs%6iel#s"E$%*alue
Te/t)o/G%Te/t 3 rs%6iel#s"F$%*alue
Te/t)o/H%Te/t 3 rs%6iel#s"G$%*alue
Te/t)o/I%Te/t 3 rs%6iel#s"H$%*alue
Te/t)o/J%Te/t 3 rs%6iel#s"I$%*alue
Te/t)o/19%Te/t 3 rs%6iel#s"J$%*alue
Te/t)o/11%Te/t 3 rs%6iel#s"19$%*alue
Te/t)o/1;%Te/t 3 rs%6iel#s"11$%*alue
Te/t)o/1<%Te/t 3 rs%6iel#s"1;$%*alue
Te/t)o/1E%Te/t 3 rs%6iel#s"1<$%*alue
Te/t)o/1F%Te/t 3 rs%6iel#s"1E$%*alue
Te/t)o/1G%Te/t 3 rs%6iel#s"1F$%*alue
Te/t)o/1H%Te/t 3 rs%6iel#s"1G$%*alue
Te/t)o/1I%Te/t 3 rs%6iel#s"1H$%*alue
,n# If
,n# Sub
2l6
Pri&ate Sub Ne/tToolStrip.enuItem'Clic>")y*al sen#er s System%Ob!ect+
)y*al e s System%,&entrgs$ -an#les Ne/tToolStrip.enuItem%Clic>
rs%.o&eNe/t"$
If rs%,O6 3 True Then
rs%.o&ePre&ious"$
.sg)o/""this is a last recor#"+ .sg)o/Style%Information$
,n# If
Call sho4'#ata"$
,n# Sub
Pri&ate Sub Pre&iousToolStrip.enuItem'Clic>")y*al sen#er s
System%Ob!ect+ )y*al e s System%,&entrgs$ -an#les
Pre&iousToolStrip.enuItem%Clic>
rs%.o&ePre&ious"$
If rs%)O6 3 True Then
.sg)o/""this is first recor#"+ .sg)o/Style%Information$
rs%.o&eNe/t"$
,n# If
Call sho4'#ata"$
2l7
,n# Sub
Pri&ate Sub 6irstToolStrip.enuItem'Clic>")y*al sen#er s System%Ob!ect+
)y*al e s System%,&entrgs$ -an#les 6irstToolStrip.enuItem%Clic>
rs%.o&e6irst"$
Call sho4'#ata"$
,n# Sub
Pri&ate Sub (astToolStrip.enuItem'Clic>")y*al sen#er s System%Ob!ect+
)y*al e s System%,&entrgs$ -an#les (astToolStrip.enuItem%Clic>
rs%.o&e(ast"$
Call sho4'#ata"$
,n# Sub
Pri&ate Sub Ne4ToolStrip.enuItem'Clic>")y*al sen#er s System%Ob!ect+
)y*al e s System%,&entrgs$ -an#les Ne4ToolStrip.enuItem%Clic>
=S%##Ne4"$
Te/t)o/1%Te/t 3 ""
Te/t)o/;%Te/t 3 ""
Te/t)o/<%Te/t 3 ""
Te/t)o/E%Te/t 3 ""
Te/t)o/F%Te/t 3 ""
2l8
Te/t)o/G%Te/t 3 ""
Te/t)o/H%Te/t 3 ""
Te/t)o/I%Te/t 3 ""
Te/t)o/J%Te/t 3 ""
Te/t)o/19%Te/t 3 ""
Te/t)o/11%Te/t 3 ""
Te/t)o/1;%Te/t 3 ""
Te/t)o/1<%Te/t 3 ""
Te/t)o/1E%Te/t 3 ""
Te/t)o/1F%Te/t 3 ""
Te/t)o/1G%Te/t 3 ""
Te/t)o/1H%Te/t 3 ""
Te/t)o/1I%Te/t 3 ""
=ecor#ToolStrip.enuItem%,nable# 3 6alse
Ne4ToolStrip.enuItem%,nable# 3 6alse
DeleteToolStrip.enuItem%,nable# 3 6alse
,n# Sub
2l9
Pri&ate Sub DeleteToolStrip.enuItem'Clic>")y*al sen#er s
System%Ob!ect+ )y*al e s System%,&entrgs$ -an#les
DeleteToolStrip.enuItem%Clic>
=S%Delete"$
.sg)o/""=ecor# Is Delete#"+ .sg)o/Style%Information$
=S%.o&e6irst"$
Call sho4'#ata"$
,n# Sub
Pri&ate Sub CloseThe7in#o4ToolStrip.enuItem'Clic>")y*al sen#er s
System%Ob!ect+ )y*al e s System%,&entrgs$ -an#les
CloseThe7in#o4ToolStrip.enuItem%Clic>
.e%Close"$
,n# Sub

Pri&ate Sub CancelToolStrip.enuItem'Clic>")y*al sen#er s System%Ob!ect+
)y*al e s System%,&entrgs$ -an#les CancelToolStrip.enuItem%Clic>
rs%CancelCp#ate"$
rs%.o&e6irst"$
Call sho4'#ata"$
220
=ecor#ToolStrip.enuItem%,nable# 3 True
Ne4ToolStrip.enuItem%,nable# 3 True
DeleteToolStrip.enuItem%,nable# 3 True
,n# Sub
Pri&ate Sub Sa&eToolStrip.enuItem'Clic>")y*al sen#er s System%Ob!ect+
)y*al e s System%,&entrgs$ -an#les Sa&eToolStrip.enuItem%Clic>
If Te/t)o/1%Te/t 3 "" Or Te/t)o/;%Te/t 3 "" Or Te/t)o/<%Te/t 3 "" Or
Te/t)o/E%Te/t 3 "" Or Te/t)o/F%Te/t 3 "" Or Te/t)o/G%Te/t 3 "" Or
Te/t)o/H%Te/t 3 "" Or Te/t)o/I%Te/t 3 "" Or Te/t)o/J%Te/t 3 "" Or
Te/t)o/19%Te/t 3 "" Or Te/t)o/11%Te/t 3 "" Or Te/t)o/1;%Te/t 3 "" Or
Te/t)o/1<%Te/t 3 "" Or Te/t)o/1E%Te/t 3 "" Or Te/t)o/1F%Te/t 3 "" Or
Te/t)o/1G%Te/t 3 "" Or Te/t)o/1H%Te/t 3 "" Or Te/t)o/1I%Te/t 3 "" Then
.sg)o/""Pl0 6ill The )o/es )lan>"+ .sg)o/Style%Critical$
,lse
rs%6iel#s"9$%*alue 3 Te/t)o/1%Te/t
rs%6iel#s"1$%*alue 3 Te/t)o/;%Te/t
rs%6iel#s";$%*alue 3 Te/t)o/<%Te/t
rs%6iel#s"<$%*alue 3 Te/t)o/E%Te/t
rs%6iel#s"E$%*alue 3 Te/t)o/F%Te/t
rs%6iel#s"F$%*alue 3 Te/t)o/G%Te/t
rs%6iel#s"G$%*alue 3 Te/t)o/H%Te/t"$
rs%6iel#s"H$%*alue 3 Te/t)o/I%Te/t
rs%6iel#s"I$%*alue 3 Te/t)o/J%Te/t
22l
rs%6iel#s"J$%*alue 3 Te/t)o/19%Te/t
rs%6iel#s"19$%*alue 3 Te/t)o/11%Te/t
rs%6iel#s"11$%*alue 3 Te/t)o/1;%Te/t
rs%6iel#s"1;$%*alue 3 Te/t)o/1<%Te/t
rs%6iel#s"1<$%*alue 3 Te/t)o/1E%Te/t
rs%6iel#s"1E$%*alue 3 Te/t)o/1F%Te/t
rs%6iel#s"1F$%*alue 3 Te/t)o/1G%Te/t
rs%6iel#s"1G$%*alue 3 Te/t)o/1H%Te/t
rs%6iel#s"1H$%*alue 3 Te/t)o/1I%Te/t
rs%Cp#ate"$
.sg)o/""=ecor# Is Sa&e#"+ .sg)o/Style%Information$
rs%.o&e6irst"$
Call sho4'#ata"$
=ecor#ToolStrip.enuItem%,nable# 3 True
Ne4ToolStrip.enuItem%,nable# 3 True
DeleteToolStrip.enuItem%,nable# 3 True
,n# If
,n# Sub
,n# Class
222
CODlNG OF RESERVATlON FORM
Public Class =,S,=*TION
Dim =S s DOD)%=ecor#set
Pri&ate Sub =,S,=*TION'(oa#")y*al sen#er s System%Ob!ect+ )y*al e s
System%,&entrgs$ -an#les .y)ase%(oa#
Call main"$
=S 3 Ne4 DOD)%=ecor#set
=S%Open""S,(,CT @ 6=O. =,S,=*TION"+ con+
DOD)%CursorType,num%a#OpenDynamic+ DOD)%(oc>Type,num%a#(oc>Optimistic$
Call sho4'#ata"$
,n# Sub
Pri&ate Sub sho4'#ata"$
If rs%,O6 n# rs%)O6 3 True Then
.sg)o/""there are no recor#s to sho4"+ .sg)o/Style%Critical$
,lse
Te/t)o/1%Te/t 3 rs%6iel#s"9$%*alue
Te/t)o/;%Te/t 3 rs%6iel#s"1$%*alue
Te/t)o/<%Te/t 3 rs%6iel#s";$%*alue
Te/t)o/E%Te/t 3 rs%6iel#s"<$%*alue
223
Te/t)o/F%Te/t 3 rs%6iel#s"E$%*alue
Te/t)o/G%Te/t 3 rs%6iel#s"F$%*alue
Te/t)o/H%Te/t 3 rs%6iel#s"G$%*alue
Te/t)o/I%Te/t 3 rs%6iel#s"H$%*alue
Te/t)o/J%Te/t 3 rs%6iel#s"I$%*alue
Te/t)o/19%Te/t 3 rs%6iel#s"J$%*alue
Te/t)o/11%Te/t 3 rs%6iel#s"19$%*alue
Te/t)o/1;%Te/t 3 =S%6iel#s"11$%*alue
Te/t)o/1<%Te/t 3 =S%6iel#s"1;$%*alue
Te/t)o/1E%Te/t 3 =S%6iel#s"1<$%*alue
Te/t)o/1F%Te/t 3 =S%6iel#s"1E$%*alue
,n# If
,n# Sub
Pri&ate Sub Ne/tToolStrip.enuItem'Clic>")y*al sen#er s System%Ob!ect+
)y*al e s System%,&entrgs$ -an#les Ne/tToolStrip.enuItem%Clic>
rs%.o&eNe/t"$
If rs%,O6 3 True Then
rs%.o&ePre&ious"$
.sg)o/""this is a last recor#"+ .sg)o/Style%Information$
,n# If
224
Call sho4'#ata"$
,n# Sub
Pri&ate Sub Pre&iousToolStrip.enuItem'Clic>")y*al sen#er s
System%Ob!ect+ )y*al e s System%,&entrgs$ -an#les
Pre&iousToolStrip.enuItem%Clic>
rs%.o&ePre&ious"$
If rs%)O6 3 True Then
.sg)o/""this is first recor#"+ .sg)o/Style%Information$
rs%.o&eNe/t"$
,n# If
Call sho4'#ata"$
,n# Sub
Pri&ate Sub 6irstToolStrip.enuItem'Clic>")y*al sen#er s System%Ob!ect+
)y*al e s System%,&entrgs$ -an#les 6irstToolStrip.enuItem%Clic>
rs%.o&e6irst"$
Call sho4'#ata"$
225
,n# Sub
Pri&ate Sub (astToolStrip.enuItem'Clic>")y*al sen#er s System%Ob!ect+
)y*al e s System%,&entrgs$ -an#les (astToolStrip.enuItem%Clic>
rs%.o&e(ast"$
Call sho4'#ata"$
,n# Sub
Pri&ate Sub Ne4ToolStrip.enuItem'Clic>")y*al sen#er s System%Ob!ect+
)y*al e s System%,&entrgs$ -an#les Ne4ToolStrip.enuItem%Clic>
=S%##Ne4"$
Te/t)o/1%Te/t 3 ""
Te/t)o/;%Te/t 3 ""
Te/t)o/<%Te/t 3 ""
Te/t)o/E%Te/t 3 ""
Te/t)o/F%Te/t 3 ""
Te/t)o/G%Te/t 3 ""
Te/t)o/H%Te/t 3 ""
Te/t)o/I%Te/t 3 ""
Te/t)o/J%Te/t 3 ""
Te/t)o/19%Te/t 3 ""
226
Te/t)o/11%Te/t 3 ""
Te/t)o/1;%Te/t 3 ""
Te/t)o/1<%Te/t 3 ""
Te/t)o/1E%Te/t 3 ""
Te/t)o/1F%Te/t 3 ""
=ecor#ToolStrip.enuItem%,nable# 3 6alse
Ne4ToolStrip.enuItem%,nable# 3 6alse
DeleteToolStrip.enuItem%,nable# 3 6alse
,n# Sub
Pri&ate Sub DeleteToolStrip.enuItem'Clic>")y*al sen#er s System%Ob!ect+
)y*al e s System%,&entrgs$ -an#les DeleteToolStrip.enuItem%Clic>
=S%Delete"$
.sg)o/""=ecor# Is Delete#"+ .sg)o/Style%Information$
=S%.o&e6irst"$
Call sho4'#ata"$
,n# Sub
Pri&ate Sub CloseThe7in#o4ToolStrip.enuItem'Clic>")y*al sen#er s
System%Ob!ect+ )y*al e s System%,&entrgs$ -an#les
CloseThe7in#o4ToolStrip.enuItem%Clic>
.e%Close"$
,n# Sub
227
Pri&ate Sub CancelToolStrip.enuItem'Clic>")y*al sen#er s System%Ob!ect+
)y*al e s System%,&entrgs$ -an#les CancelToolStrip.enuItem%Clic>
rs%CancelCp#ate"$
rs%.o&e6irst"$
Call sho4'#ata"$
=ecor#ToolStrip.enuItem%,nable# 3 True
Ne4ToolStrip.enuItem%,nable# 3 True
DeleteToolStrip.enuItem%,nable# 3 True
,n# Sub
Pri&ate Sub Sa&eToolStrip.enuItem'Clic>")y*al sen#er s System%Ob!ect+
)y*al e s System%,&entrgs$ -an#les Sa&eToolStrip.enuItem%Clic>
If Te/t)o/1%Te/t 3 "" Or Te/t)o/;%Te/t 3 "" Or Te/t)o/<%Te/t 3 "" Or
Te/t)o/E%Te/t 3 "" Or Te/t)o/F%Te/t 3 "" Or Te/t)o/G%Te/t 3 "" Or
Te/t)o/H%Te/t 3 "" Or Te/t)o/I%Te/t 3 "" Or Te/t)o/J%Te/t 3 "" Or
Te/t)o/19%Te/t 3 "" Or Te/t)o/11%Te/t 3 "" Or Te/t)o/1;%Te/t 3 "" Or
Te/t)o/1<%Te/t 3 "" Or Te/t)o/1E%Te/t 3 "" Or Te/t)o/1F%Te/t 3 "" Then
.sg)o/""Pl0 6ill The )o/es )lan>"+ .sg)o/Style%Critical$
,lse
=S%6iel#s"9$%*alue 3 Te/t)o/1%Te/t
=S%6iel#s"1$%*alue 3 Te/t)o/;%Te/t
=S%6iel#s";$%*alue 3 Te/t)o/<%Te/t
=S%6iel#s"<$%*alue 3 Te/t)o/E%Te/t
=S%6iel#s"E$%*alue 3 Te/t)o/F%Te/t
228
=S%6iel#s"F$%*alue 3 Te/t)o/G%Te/t
=S%6iel#s"G$%*alue 3 Te/t)o/H%Te/t
=S%6iel#s"H$%*alue 3 Te/t)o/I%Te/t
=S%6iel#s"I$%*alue 3 Te/t)o/J%Te/t
=S%6iel#s"J$%*alue 3 Te/t)o/19%Te/t
=S%6iel#s"19$%*alue 3 Te/t)o/11%Te/t
=S%6iel#s"11$%*alue 3 Te/t)o/1;%Te/t
=S%6iel#s"1;$%*alue 3 Te/t)o/1<%Te/t
=S%6iel#s"1<$%*alue 3 Te/t)o/1E%Te/t
=S%6iel#s"1E$%*alue 3 Te/t)o/1F%Te/t
=S%Cp#ate"$
.sg)o/""=ecor# Is Sa&e#"+ .sg)o/Style%Information$
=S%.o&e6irst"$
Call sho4'#ata"$
=ecor#ToolStrip.enuItem%,nable# 3 True
Ne4ToolStrip.enuItem%,nable# 3 True
DeleteToolStrip.enuItem%,nable# 3 True
,n# If
,n# Sub
,n# Class
229
CODING OF CANCELLATION FORM
Public Class cancellation
Dim rs s DOD)%=ecor#set
Pri&ate Sub cancellation'(oa#")y*al sen#er s System%Ob!ect+ )y*al e s
System%,&entrgs$ -an#les .y)ase%(oa#
Call main"$
rs 3 Ne4 DOD)%=ecor#set
rs%Open""S,(,CT @ 6=O. CNC,((TION"+ con+
DOD)%CursorType,num%a#OpenDynamic+ DOD)%(oc>Type,num%a#(oc>Optimistic$
Call sho4'#ata"$
,n# Sub
Pri&ate Sub sho4'#ata"$
If rs%,O6 n# rs%)O6 3 True Then
.sg)o/""there are no recor#s to sho4"+ .sg)o/Style%Critical$
,lse
Te/t)o/1%Te/t 3 rs%6iel#s"9$%*alue
Te/t)o/;%Te/t 3 rs%6iel#s"1$%*alue
Te/t)o/<%Te/t 3 rs%6iel#s";$%*alue
Te/t)o/E%Te/t 3 rs%6iel#s"<$%*alue
Te/t)o/F%Te/t 3 rs%6iel#s"E$%*alue
230
Te/t)o/G%Te/t 3 rs%6iel#s"F$%*alue
Te/t)o/H%Te/t 3 rs%6iel#s"G$%*alue
Te/t)o/I%Te/t 3 rs%6iel#s"H$%*alue
Te/t)o/J%Te/t 3 rs%6iel#s"I$%*alue
Te/t)o/19%Te/t 3 rs%6iel#s"J$%*alue
Te/t)o/11%Te/t 3 rs%6iel#s"19$%*alue
Te/t)o/1;%Te/t 3 rs%6iel#s"11$%*alue

,n# If
,n# Sub
Pri&ate Sub Ne/tToolStrip.enuItem'Clic>")y*al sen#er s System%Ob!ect+
)y*al e s System%,&entrgs$ -an#les Ne/tToolStrip.enuItem%Clic>
rs%.o&eNe/t"$
If rs%,O6 3 True Then
rs%.o&ePre&ious"$
.sg)o/""this is a last recor#"+ .sg)o/Style%Information$
,n# If
Call sho4'#ata"$
,n# Sub
23l
Pri&ate Sub Pre&iousToolStrip.enuItem'Clic>")y*al sen#er s
System%Ob!ect+ )y*al e s System%,&entrgs$ -an#les
Pre&iousToolStrip.enuItem%Clic>
rs%.o&ePre&ious"$
If rs%)O6 3 True Then
.sg)o/""this is first recor#"+ .sg)o/Style%Information$
rs%.o&eNe/t"$
,n# If
Call sho4'#ata"$
,n# Sub
Pri&ate Sub 6irstToolStrip.enuItem'Clic>")y*al sen#er s System%Ob!ect+
)y*al e s System%,&entrgs$ -an#les 6irstToolStrip.enuItem%Clic>
rs%.o&e6irst"$
Call sho4'#ata"$
,n# Sub
232
Pri&ate Sub (astToolStrip.enuItem'Clic>")y*al sen#er s System%Ob!ect+
)y*al e s System%,&entrgs$ -an#les (astToolStrip.enuItem%Clic>
rs%.o&e(ast"$
Call sho4'#ata"$
,n# Sub
Pri&ate Sub Ne4ToolStrip.enuItem'Clic>")y*al sen#er s System%Ob!ect+
)y*al e s System%,&entrgs$ -an#les Ne4ToolStrip.enuItem%Clic>
=S%##Ne4"$
Te/t)o/1%Te/t 3 ""
Te/t)o/;%Te/t 3 ""
Te/t)o/<%Te/t 3 ""
Te/t)o/E%Te/t 3 ""
Te/t)o/F%Te/t 3 ""
Te/t)o/G%Te/t 3 ""
Te/t)o/H%Te/t 3 ""
Te/t)o/I%Te/t 3 ""
Te/t)o/J%Te/t 3 ""
Te/t)o/19%Te/t 3 ""
Te/t)o/11%Te/t 3 ""
Te/t)o/1;%Te/t 3 ""
233
=ecor#ToolStrip.enuItem%,nable# 3 6alse
Ne4ToolStrip.enuItem%,nable# 3 6alse
DeleteToolStrip.enuItem%,nable# 3 6alse
,n# Sub
Pri&ate Sub DeleteToolStrip.enuItem'Clic>")y*al sen#er s System%Ob!ect+
)y*al e s System%,&entrgs$ -an#les DeleteToolStrip.enuItem%Clic>
=S%Delete"$
.sg)o/""=ecor# Is Delete#"+ .sg)o/Style%Information$
=S%.o&e6irst"$
Call sho4'#ata"$
,n# Sub
Pri&ate Sub CloseThe7in#o4ToolStrip.enuItem'Clic>")y*al sen#er s
System%Ob!ect+ )y*al e s System%,&entrgs$ -an#les
CloseThe7in#o4ToolStrip.enuItem%Clic>
.e%Close"$
,n# Sub
Pri&ate Sub Sa&eToolStrip.enuItem'Clic>")y*al sen#er s System%Ob!ect+
)y*al e s System%,&entrgs$ -an#les Sa&eToolStrip.enuItem%Clic>
If Te/t)o/1%Te/t 3 "" Or Te/t)o/;%Te/t 3 "" Or Te/t)o/<%Te/t 3 "" Or
Te/t)o/E%Te/t 3 "" Or Te/t)o/F%Te/t 3 "" Or Te/t)o/G%Te/t 3 "" Or
Te/t)o/H%Te/t 3 "" Or Te/t)o/I%Te/t 3 "" Or Te/t)o/J%Te/t 3 "" Or
Te/t)o/19%Te/t 3 "" Or Te/t)o/11%Te/t 3 "" Or Te/t)o/1;%Te/t 3 "" Then
.sg)o/""Pl0 6ill The )o/es )lan>"+ .sg)o/Style%Critical$
234
,lse
rs%6iel#s"9$%*alue 3 Te/t)o/1%Te/t
rs%6iel#s"1$%*alue 3 Te/t)o/;%Te/t
rs%6iel#s";$%*alue 3 Te/t)o/<%Te/t
rs%6iel#s"<$%*alue 3 Te/t)o/E%Te/t
rs%6iel#s"E$%*alue 3 Te/t)o/F%Te/t
rs%6iel#s"F$%*alue 3 Te/t)o/G%Te/t
rs%6iel#s"G$%*alue 3 Te/t)o/H%Te/t
rs%6iel#s"H$%*alue 3 Te/t)o/I%Te/t
rs%6iel#s"I$%*alue 3 Te/t)o/J%Te/t
rs%6iel#s"J$%*alue 3 Te/t)o/19%Te/t
rs%6iel#s"19$%*alue 3 Te/t)o/11%Te/t
rs%6iel#s"11$%*alue 3 Te/t)o/1;%Te/t
rs%Cp#ate"$
.sg)o/""=ecor# Is Sa&e#"+ .sg)o/Style%Information$
rs%.o&e6irst"$
Call sho4'#ata"$
=ecor#ToolStrip.enuItem%,nable# 3 True
Ne4ToolStrip.enuItem%,nable# 3 True
DeleteToolStrip.enuItem%,nable# 3 True
235
,n# If
,n# Sub
Pri&ate Sub CancelToolStrip.enuItem'Clic>")y*al sen#er s System%Ob!ect+
)y*al e s System%,&entrgs$ -an#les CancelToolStrip.enuItem%Clic>
rs%CancelCp#ate"$
rs%.o&e6irst"$
Call sho4'#ata"$
=ecor#ToolStrip.enuItem%,nable# 3 True
Ne4ToolStrip.enuItem%,nable# 3 True
DeleteToolStrip.enuItem%,nable# 3 True
,n# Sub
,n# Class
236
CODING OF PASSENGER INFORMATION
Coding of passenger information
Public Class PSS,N5,='IN6O=.TION
Dim =S s DOD)%=ecor#set
Pri&ate Sub PSS,N5,='IN6O=.TION'(oa#")y*al sen#er
s System%Ob!ect+ )y*al e s System%,&entrgs$ -an#les
.y)ase%(oa#
Call main"$
=S 3 Ne4 DOD)%=ecor#set
=S%Open""S,(,CT @ 6=O. PSS,N5,='IN6O=.TION"+
con+ DOD)%CursorType,num%a#OpenDynamic+
DOD)%(oc>Type,num%a#(oc>Optimistic$
Call sho4'#ata"$
,n# Sub
237

Pri&ate Sub sho4'#ata"$
If rs%,O6 n# rs%)O6 3 True Then
.sg)o/""there are no recor#s to sho4"+
.sg)o/Style%Critical$
,lse
Te/t)o/1%Te/t 3 rs%6iel#s"9$%*alue
Te/t)o/;%Te/t 3 rs%6iel#s"1$%*alue
Te/t)o/<%Te/t 3 rs%6iel#s";$%*alue
Te/t)o/E%Te/t 3 rs%6iel#s"<$%*alue
Te/t)o/F%Te/t 3 rs%6iel#s"E$%*alue
Te/t)o/G%Te/t 3 rs%6iel#s"F$%*alue
Te/t)o/H%Te/t 3 rs%6iel#s"G$%*alue
Te/t)o/I%Te/t 3 rs%6iel#s"H$%*alue
Te/t)o/J%Te/t 3 rs%6iel#s"I$%*alue


238
,n# If
,n# Sub
Pri&ate Sub Ne/tToolStrip.enuItem'Clic>")y*al
sen#er s System%Ob!ect+ )y*al e s System%,&entrgs$
-an#les Ne/tToolStrip.enuItem%Clic>
rs%.o&eNe/t"$
If rs%,O6 3 True Then
rs%.o&ePre&ious"$
.sg)o/""this is a last recor#"+
.sg)o/Style%Information$
,n# If
Call sho4'#ata"$
,n# Sub
239
Pri&ate Sub Pre&iousToolStrip.enuItem'Clic>")y*al
sen#er s System%Ob!ect+ )y*al e s System%,&entrgs$
-an#les Pre&iousToolStrip.enuItem%Clic>
rs%.o&ePre&ious"$
If rs%)O6 3 True Then
.sg)o/""this is first recor#"+
.sg)o/Style%Information$
rs%.o&eNe/t"$
,n# If
Call sho4'#ata"$
,n# Sub
Pri&ate Sub 6irstToolStrip.enuItem'Clic>")y*al
sen#er s System%Ob!ect+ )y*al e s System%,&entrgs$
-an#les 6irstToolStrip.enuItem%Clic>
rs%.o&e6irst"$
240
Call sho4'#ata"$
,n# Sub
Pri&ate Sub (astToolStrip.enuItem'Clic>")y*al
sen#er s System%Ob!ect+ )y*al e s System%,&entrgs$
-an#les (astToolStrip.enuItem%Clic>
rs%.o&e(ast"$
Call sho4'#ata"$
,n# Sub

Pri&ate Sub Ne4ToolStrip.enuItem'Clic>")y*al sen#er
s System%Ob!ect+ )y*al e s System%,&entrgs$ -an#les
Ne4ToolStrip.enuItem%Clic>
24l
=S%##Ne4"$
Te/t)o/1%Te/t 3 ""
Te/t)o/;%Te/t 3 ""
Te/t)o/<%Te/t 3 ""
Te/t)o/E%Te/t 3 ""
Te/t)o/F%Te/t 3 ""
Te/t)o/G%Te/t 3 ""
Te/t)o/H%Te/t 3 ""
Te/t)o/I%Te/t 3 ""
Te/t)o/J%Te/t 3 ""
=ecor#ToolStrip.enuItem%,nable# 3 6alse
Ne4ToolStrip.enuItem%,nable# 3 6alse
DeleteToolStrip.enuItem%,nable# 3 6alse
242
,n# Sub


Pri&ate Sub DeleteToolStrip.enuItem'Clic>")y*al
sen#er s System%Ob!ect+ )y*al e s System%,&entrgs$
-an#les DeleteToolStrip.enuItem%Clic>
=S%Delete"$
.sg)o/""=ecor# Is Delete#"+
.sg)o/Style%Information$
=S%.o&e6irst"$
Call sho4'#ata"$
,n# Sub
243
Pri&ate Sub
CloseThe7in#o4ToolStrip.enuItem'Clic>")y*al sen#er s
System%Ob!ect+ )y*al e s System%,&entrgs$ -an#les
CloseThe7in#o4ToolStrip.enuItem%Clic>
.e%Close"$
,n# Sub
Pri&ate Sub CancelToolStrip.enuItem'Clic>")y*al
sen#er s System%Ob!ect+ )y*al e s System%,&entrgs$
-an#les CancelToolStrip.enuItem%Clic>
rs%CancelCp#ate"$
rs%.o&e6irst"$
Call sho4'#ata"$
=ecor#ToolStrip.enuItem%,nable# 3 True
Ne4ToolStrip.enuItem%,nable# 3 True
DeleteToolStrip.enuItem%,nable# 3 True
,n# Sub
244
Pri&ate Sub Sa&eToolStrip.enuItem'Clic>")y*al
sen#er s System%Ob!ect+ )y*al e s System%,&entrgs$
-an#les Sa&eToolStrip.enuItem%Clic>
If Te/t)o/1%Te/t 3 "" Or Te/t)o/;%Te/t 3 "" Or
Te/t)o/<%Te/t 3 "" Or Te/t)o/E%Te/t 3 "" Or
Te/t)o/F%Te/t 3 "" Or Te/t)o/G%Te/t 3 "" Or
Te/t)o/H%Te/t 3 "" Or Te/t)o/I%Te/t 3 "" Or
Te/t)o/J%Te/t 3 "" Then
.sg)o/""Pl0 6ill The )o/es )lan>"+
.sg)o/Style%Critical$
,lse
=S%6iel#s"9$%*alue 3 Te/t)o/1%Te/t
=S%6iel#s"1$%*alue 3 Te/t)o/;%Te/t
=S%6iel#s";$%*alue 3 Te/t)o/<%Te/t
=S%6iel#s"<$%*alue 3 Te/t)o/E%Te/t
=S%6iel#s"E$%*alue 3 Te/t)o/F%Te/t
=S%6iel#s"F$%*alue 3 Te/t)o/G%Te/t
245
=S%6iel#s"G$%*alue 3 Te/t)o/H%Te/t
=S%6iel#s"H$%*alue 3 Te/t)o/I%Te/t
=S%6iel#s"I$%*alue 3 Te/t)o/J%Te/t
=S%Cp#ate"$
.sg)o/""=ecor# Is Sa&e#"+
.sg)o/Style%Information$
=S%.o&e6irst"$
Call sho4'#ata"$
=ecor#ToolStrip.enuItem%,nable# 3 True
Ne4ToolStrip.enuItem%,nable# 3 True
DeleteToolStrip.enuItem%,nable# 3 True
,n# If
,n# Sub
246
Pri&ate Sub Te/t)o/1'(ost6ocus")y*al sen#er s
Ob!ect+ )y*al e s System%,&entrgs$ -an#les
Te/t)o/1%(ost6ocus
If (en"Te/t)o/1%Te/t$ 2 ;9 Then
.sg)o/""input character is too long"$
,n# If
,n# Sub
Pri&ate Sub Te/t)o/;'(ost6ocus")y*al sen#er s
Ob!ect+ )y*al e s System%,&entrgs$ -an#les
Te/t)o/;%(ost6ocus
If (en"Te/t)o/;%Te/t$ 2 ;9 Then
.sg)o/""input character is too long"$
,n# If
247
,n# Sub
Pri&ate Sub Te/t)o/<'(ost6ocus")y*al sen#er s
Ob!ect+ )y*al e s System%,&entrgs$ -an#les
Te/t)o/<%(ost6ocus
If (en"Te/t)o/<%Te/t$ 2 ;9 Then
.sg)o/""input character is too long"$
,n# If
,n# Sub
Pri&ate Sub Te/t)o/E'(ost6ocus")y*al sen#er s
Ob!ect+ )y*al e s System%,&entrgs$ -an#les
Te/t)o/E%(ost6ocus
If (en"Te/t)o/E%Te/t$ 2 H Then
.sg)o/""input character is too long"$
,n# If
248
,n# Sub
Pri&ate Sub Te/t)o/F'(ost6ocus")y*al sen#er s
Ob!ect+ )y*al e s System%,&entrgs$ -an#les
Te/t)o/F%(ost6ocus
If (en"Te/t)o/F%Te/t$ 2 < Then
.sg)o/""in&ali# age"$
,n# If
,n# Sub
Pri&ate Sub Te/t)o/G'(ost6ocus")y*al sen#er s
Ob!ect+ )y*al e s System%,&entrgs$ -an#les
Te/t)o/G%(ost6ocus
If (en"Te/t)o/G%Te/t$ 2 ;9 Then
.sg)o/""input character is too long"$
249
,n# If
,n# Sub
Pri&ate Sub Te/t)o/H'(ost6ocus")y*al sen#er s
Ob!ect+ )y*al e s System%,&entrgs$ -an#les
Te/t)o/H%(ost6ocus
If (en"Te/t)o/H%Te/t$ 2 ;9 Then
.sg)o/""input character is too long"$
,n# If
,n# Sub
Pri&ate Sub Te/t)o/I'(ost6ocus")y*al sen#er s
Ob!ect+ )y*al e s System%,&entrgs$ -an#les
Te/t)o/I%(ost6ocus
If (en"Te/t)o/I%Te/t$ 2 ;9 Then
.sg)o/""input character is too long"$
250
,n# If
,n# Sub
Pri&ate Sub Te/t)o/J'(ost6ocus")y*al sen#er s
Ob!ect+ )y*al e s System%,&entrgs$ -an#les
Te/t)o/J%(ost6ocus
If IsDate"Te/t)o/J%Te/t$ 3 6alse Then
.sg)o/""pl0 enter correct #ate"$
,n# If
,n# Sub
,n# Class
25l
CODING OF STAFF INFORMATION
Public Class ST66'IN6O=.TION
Dim =S s DOD)%=ecor#set
Pri&ate Sub ST66'IN6O=.TION'(oa#")y*al sen#er s
System%Ob!ect+ )y*al e s System%,&entrgs$ -an#les
.y)ase%(oa#
Call main"$
=S 3 Ne4 DOD)%=ecor#set
=S%Open""S,(,CT @ 6=O. ST66'IN6O=.TION"+
con+ DOD)%CursorType,num%a#OpenDynamic+
DOD)%(oc>Type,num%a#(oc>Optimistic$
252
Call sho4'#ata"$
,n# Sub
Pri&ate Sub sho4'#ata"$
If rs%,O6 n# rs%)O6 3 True Then
.sg)o/""there are no recor#s to sho4"+
.sg)o/Style%Critical$
,lse
Te/t)o/1%Te/t 3 rs%6iel#s"9$%*alue
Te/t)o/;%Te/t 3 rs%6iel#s"1$%*alue
Te/t)o/<%Te/t 3 rs%6iel#s";$%*alue
Te/t)o/E%Te/t 3 =S%6iel#s"<$%*alue
Te/t)o/F%Te/t 3 =S%6iel#s"E$%*alue
Te/t)o/G%Te/t 3 =S%6iel#s"F$%*alue
Te/t)o/H%Te/t 3 =S%6iel#s"G$%*alue
Te/t)o/I%Te/t 3 =S%6iel#s"H$%*alue
253
,n# If
,n# Sub
Pri&ate Sub Ne/tToolStrip.enuItem'Clic>")y*al
sen#er s System%Ob!ect+ )y*al e s System%,&entrgs$
-an#les Ne/tToolStrip.enuItem%Clic>
rs%.o&eNe/t"$
If rs%,O6 3 True Then
rs%.o&ePre&ious"$
.sg)o/""this is a last recor#"+
.sg)o/Style%Information$
,n# If
Call sho4'#ata"$
254
,n# Sub
Pri&ate Sub Pre&iousToolStrip.enuItem'Clic>")y*al
sen#er s System%Ob!ect+ )y*al e s System%,&entrgs$
-an#les Pre&iousToolStrip.enuItem%Clic>
rs%.o&ePre&ious"$
If rs%)O6 3 True Then
.sg)o/""this is first recor#"+
.sg)o/Style%Information$
rs%.o&eNe/t"$
,n# If
Call sho4'#ata"$
,n# Sub
255
Pri&ate Sub 6irstToolStrip.enuItem'Clic>")y*al
sen#er s System%Ob!ect+ )y*al e s System%,&entrgs$
-an#les 6irstToolStrip.enuItem%Clic>
rs%.o&e6irst"$
Call sho4'#ata"$
,n# Sub
Pri&ate Sub (astToolStrip.enuItem'Clic>")y*al
sen#er s System%Ob!ect+ )y*al e s System%,&entrgs$
-an#les (astToolStrip.enuItem%Clic>
rs%.o&e(ast"$
Call sho4'#ata"$
,n# Sub
256
Pri&ate Sub Ne4ToolStrip.enuItem'Clic>")y*al sen#er
s System%Ob!ect+ )y*al e s System%,&entrgs$ -an#les
Ne4ToolStrip.enuItem%Clic>
=S%##Ne4"$
Te/t)o/1%Te/t 3 ""
Te/t)o/;%Te/t 3 ""
Te/t)o/<%Te/t 3 ""
Te/t)o/E%Te/t 3 ""
Te/t)o/F%Te/t 3 ""
Te/t)o/G%Te/t 3 ""
Te/t)o/H%Te/t 3 ""
Te/t)o/I%Te/t 3 ""
=ecor#ToolStrip.enuItem%,nable# 3 6alse
257
Ne4ToolStrip.enuItem%,nable# 3 6alse
DeleteToolStrip.enuItem%,nable# 3 6alse
,n# Sub
Pri&ate Sub DeleteToolStrip.enuItem'Clic>")y*al
sen#er s System%Ob!ect+ )y*al e s System%,&entrgs$
-an#les DeleteToolStrip.enuItem%Clic>
=S%Delete"$
.sg)o/""=ecor# Is Delete#"+
.sg)o/Style%Information$
=S%.o&e6irst"$
Call sho4'#ata"$
258
,n# Sub
Pri&ate Sub
CloseThe7in#o4ToolStrip.enuItem'Clic>")y*al sen#er s
System%Ob!ect+ )y*al e s System%,&entrgs$ -an#les
CloseThe7in#o4ToolStrip.enuItem%Clic>
.e%Close"$
,n# Sub
Pri&ate Sub CancelToolStrip.enuItem'Clic>")y*al
sen#er s System%Ob!ect+ )y*al e s System%,&entrgs$
-an#les CancelToolStrip.enuItem%Clic>
rs%CancelCp#ate"$
rs%.o&e6irst"$
Call sho4'#ata"$
=ecor#ToolStrip.enuItem%,nable# 3 True
Ne4ToolStrip.enuItem%,nable# 3 True
DeleteToolStrip.enuItem%,nable# 3 True
259
,n# Sub
Pri&ate Sub Sa&eToolStrip.enuItem'Clic>")y*al
sen#er s System%Ob!ect+ )y*al e s System%,&entrgs$
-an#les Sa&eToolStrip.enuItem%Clic>
If Te/t)o/1%Te/t 3 "" Or Te/t)o/;%Te/t 3 "" Or
Te/t)o/<%Te/t 3 "" Or Te/t)o/E%Te/t 3 "" Or
Te/t)o/F%Te/t 3 "" Or Te/t)o/G%Te/t 3 "" Or
Te/t)o/H%Te/t 3 "" Or Te/t)o/I%Te/t 3 "" Then
.sg)o/""Pl0 6ill The )o/es )lan>"+
.sg)o/Style%Critical$
,lse
=S%6iel#s"9$%*alue 3 Te/t)o/1%Te/t
=S%6iel#s"1$%*alue 3 Te/t)o/;%Te/t
=S%6iel#s";$%*alue 3 Te/t)o/<%Te/t
=S%6iel#s"<$%*alue 3 Te/t)o/E%Te/t
260
=S%6iel#s"E$%*alue 3 Te/t)o/F%Te/t
=S%6iel#s"F$%*alue 3 Te/t)o/G%Te/t
=S%6iel#s"G$%*alue 3 Te/t)o/H%Te/t
=S%6iel#s"H$%*alue 3 Te/t)o/I%Te/t

=S%Cp#ate"$
.sg)o/""=ecor# Is Sa&e#"+
.sg)o/Style%Information$
=S%.o&e6irst"$
Call sho4'#ata"$
=ecor#ToolStrip.enuItem%,nable# 3 True
Ne4ToolStrip.enuItem%,nable# 3 True
DeleteToolStrip.enuItem%,nable# 3 True
,n# If
26l
,n# Sub
Pri&ate Sub Te/t)o/1'(ost6ocus")y*al sen#er s
Ob!ect+ )y*al e s System%,&entrgs$ -an#les
Te/t)o/1%(ost6ocus
If (en"Te/t)o/1%Te/t$ 2 ;9 Then
.sg)o/""input #ata is too long"$
,n# If
,n# Sub
Pri&ate Sub Te/t)o/;'(ost6ocus")y*al sen#er s
Ob!ect+ )y*al e s System%,&entrgs$ -an#les
Te/t)o/;%(ost6ocus
If (en"Te/t)o/;%Te/t$ 2 ;9 Then
.sg)o/""input #ata is too long"$
262
,n# If
,n# Sub
Pri&ate Sub Te/t)o/<'(ost6ocus")y*al sen#er s
Ob!ect+ )y*al e s System%,&entrgs$ -an#les
Te/t)o/<%(ost6ocus
If (en"Te/t)o/<%Te/t$ 2 < Then
.sg)o/""input #ata is too long"$
,n# If
If IsNumeric"Te/t)o/<%Te/t$ 3 6alse Then
.sg)o/""pl0 enter numeric #ata"$
,n# If
,n# Sub
263
Pri&ate Sub Te/t)o/E'(ost6ocus")y*al sen#er s
Ob!ect+ )y*al e s System%,&entrgs$ -an#les
Te/t)o/E%(ost6ocus
If (en"Te/t)o/E%Te/t$ 2 ;99 Then
.sg)o/""input #ata is too long"$
,n# If
,n# Sub
Pri&ate Sub Te/t)o/F'(ost6ocus")y*al sen#er s
Ob!ect+ )y*al e s System%,&entrgs$ -an#les
Te/t)o/F%(ost6ocus
If IsDate"Te/t)o/F%Te/t$ 3 6alse Then
.sg)o/""pl0 enter correct #ate"$
,n# If
,n# Sub
264
Pri&ate Sub Te/t)o/G'(ost6ocus")y*al sen#er s
Ob!ect+ )y*al e s System%,&entrgs$ -an#les
Te/t)o/G%(ost6ocus
If IsDate"Te/t)o/G%Te/t$ 3 6alse Then
.sg)o/""pl0 enter correct #ate"$
,n# If
,n# Sub
Pri&ate Sub Te/t)o/H'(ost6ocus")y*al sen#er s
Ob!ect+ )y*al e s System%,&entrgs$ -an#les
Te/t)o/H%(ost6ocus
If (en"Te/t)o/H%Te/t$ 2 ;9 Then
.sg)o/""input #ata is too long"$
,n# If
,n# Sub
265
Pri&ate Sub Te/t)o/I'(ost6ocus")y*al sen#er s
Ob!ect+ )y*al e s System%,&entrgs$ -an#les
Te/t)o/I%(ost6ocus
If (en"Te/t)o/I%Te/t$ 2 ;9 Then
.sg)o/""input #ata is too long"$
,n# If
,n# Sub

,n# Class
266
CODING OF ROOT INFORMATION
Public Class root'information
Dim =S s DOD)%=ecor#set
Pri&ate Sub root'information'(oa#")y*al sen#er s System%Ob!ect+ )y*al e
s System%,&entrgs$ -an#les .y)ase%(oa#
Call main"$
=S 3 Ne4 DOD)%=ecor#set
=S%Open""S,(,CT @ 6=O. =OOT'IN6O=.TION"+ con+
DOD)%CursorType,num%a#OpenDynamic+ DOD)%(oc>Type,num%a#(oc>Optimistic$
Call sho4'#ata"$
,n# Sub
Pri&ate Sub sho4'#ata"$
If =S%,O6 n# =S%)O6 3 True Then
.sg)o/""there are no recor#s to sho4"+ .sg)o/Style%Critical$
,lse
Te/t)o/1%Te/t 3 =S%6iel#s"9$%*alue
Te/t)o/;%Te/t 3 =S%6iel#s"1$%*alue
Te/t)o/<%Te/t 3 =S%6iel#s";$%*alue
Te/t)o/E%Te/t 3 =S%6iel#s"<$%*alue
267
Te/t)o/F%Te/t 3 =S%6iel#s"E$%*alue
Te/t)o/G%Te/t 3 =S%6iel#s"F$%*alue
Te/t)o/H%Te/t 3 =S%6iel#s"G$%*alue
Te/t)o/I%Te/t 3 =S%6iel#s"H$%*alue
Te/t)o/J%Te/t 3 =S%6iel#s"I$%*alue
Te/t)o/19%Te/t 3 =S%6iel#s"J$%*alue
Te/t)o/11%Te/t 3 =S%6iel#s"19$%*alue
Te/t)o/1;%Te/t 3 =S%6iel#s"11$%*alue
Te/t)o/1<%Te/t 3 =S%6iel#s"1;$%*alue
Te/t)o/1E%Te/t 3 =S%6iel#s"1<$%*alue
Te/t)o/1F%Te/t 3 =S%6iel#s"1E$%*alue
Te/t)o/1G%Te/t 3 =S%6iel#s"1F$%*alue
Te/t)o/1H%Te/t 3 =S%6iel#s"1G$%*alue
Te/t)o/1I%Te/t 3 =S%6iel#s"1H$%*alue
,n# If
,n# Sub
Pri&ate Sub Ne/tToolStrip.enuItem'Clic>")y*al sen#er s System%Ob!ect+
)y*al e s System%,&entrgs$ -an#les Ne/tToolStrip.enuItem%Clic>
=S%.o&eNe/t"$
If =S%,O6 3 True Then
268
=S%.o&ePre&ious"$
.sg)o/""this is a last recor#"+ .sg)o/Style%Information$
,n# If
Call sho4'#ata"$
,n# Sub
Pri&ate Sub Pre&iousToolStrip.enuItem'Clic>")y*al sen#er s
System%Ob!ect+ )y*al e s System%,&entrgs$ -an#les
Pre&iousToolStrip.enuItem%Clic>
=S%.o&ePre&ious"$
If =S%)O6 3 True Then
.sg)o/""this is first recor#"+ .sg)o/Style%Information$
=S%.o&eNe/t"$
,n# If
Call sho4'#ata"$
,n# Sub
Pri&ate Sub 6irstToolStrip.enuItem'Clic>")y*al sen#er s System%Ob!ect+
)y*al e s System%,&entrgs$ -an#les 6irstToolStrip.enuItem%Clic>
269
=S%.o&e6irst"$
Call sho4'#ata"$
,n# Sub
Pri&ate Sub (astToolStrip.enuItem'Clic>")y*al sen#er s System%Ob!ect+
)y*al e s System%,&entrgs$ -an#les (astToolStrip.enuItem%Clic>
=S%.o&e(ast"$
Call sho4'#ata"$
,n# Sub
Pri&ate Sub Ne4ToolStrip.enuItem'Clic>")y*al sen#er s System%Ob!ect+
)y*al e s System%,&entrgs$ -an#les Ne4ToolStrip.enuItem%Clic>
=S%##Ne4"$
Te/t)o/1%Te/t 3 ""
Te/t)o/;%Te/t 3 ""
Te/t)o/<%Te/t 3 ""
Te/t)o/E%Te/t 3 ""
Te/t)o/F%Te/t 3 ""
Te/t)o/G%Te/t 3 ""
Te/t)o/H%Te/t 3 ""
270
Te/t)o/I%Te/t 3 ""
Te/t)o/J%Te/t 3 ""
Te/t)o/E%Te/t 3 ""
Te/t)o/19%Te/t 3 ""
Te/t)o/11%Te/t 3 ""
Te/t)o/1;%Te/t 3 ""
Te/t)o/1<%Te/t 3 ""
Te/t)o/1E%Te/t 3 ""
Te/t)o/1F%Te/t 3 ""
Te/t)o/1G%Te/t 3 ""
Te/t)o/1H%Te/t 3 ""
Te/t)o/1I%Te/t 3 ""
=ecor#ToolStrip.enuItem%,nable# 3 6alse
Ne4ToolStrip.enuItem%,nable# 3 6alse
DeleteToolStrip.enuItem%,nable# 3 6alse
,n# Sub
27l
Pri&ate Sub DeleteToolStrip.enuItem'Clic>")y*al sen#er s System%Ob!ect+
)y*al e s System%,&entrgs$ -an#les DeleteToolStrip.enuItem%Clic>
=S%Delete"$
.sg)o/""=ecor# Is Delete#"+ .sg)o/Style%Information$
=S%.o&e6irst"$
Call sho4'#ata"$
,n# Sub
Pri&ate Sub CloseThe7in#o4ToolStrip.enuItem'Clic>")y*al sen#er s
System%Ob!ect+ )y*al e s System%,&entrgs$ -an#les
CloseThe7in#o4ToolStrip.enuItem%Clic>
.e%Close"$
,n# Sub
Pri&ate Sub CancelToolStrip.enuItem'Clic>")y*al sen#er s System%Ob!ect+
)y*al e s System%,&entrgs$ -an#les CancelToolStrip.enuItem%Clic>
rs%CancelCp#ate"$
rs%.o&e6irst"$
Call sho4'#ata"$
=ecor#ToolStrip.enuItem%,nable# 3 True
Ne4ToolStrip.enuItem%,nable# 3 True
DeleteToolStrip.enuItem%,nable# 3 True
272
,n# Sub
Pri&ate Sub Sa&eToolStrip.enuItem'Clic>")y*al sen#er s System%Ob!ect+
)y*al e s System%,&entrgs$ -an#les Sa&eToolStrip.enuItem%Clic>
If Te/t)o/1%Te/t 3 "" Or Te/t)o/;%Te/t 3 "" Or Te/t)o/<%Te/t 3 "" Or
Te/t)o/E%Te/t 3 "" Or Te/t)o/F%Te/t 3 "" Or Te/t)o/G%Te/t 3 "" Or
Te/t)o/H%Te/t 3 "" Or Te/t)o/I%Te/t 3 "" Or Te/t)o/J%Te/t 3 "" Or
Te/t)o/19%Te/t 3 "" Or Te/t)o/11%Te/t 3 "" Or Te/t)o/1;%Te/t 3 "" Or
Te/t)o/1<%Te/t 3 "" Or Te/t)o/1E%Te/t 3 "" Or Te/t)o/1F%Te/t 3 "" Or
Te/t)o/1G%Te/t 3 "" Or Te/t)o/1H%Te/t 3 "" Or Te/t)o/1I%Te/t 3 "" Then
.sg)o/""Pl0 6ill The )o/es )lan>"+ .sg)o/Style%Critical$
,lse
=S%6iel#s"9$%*alue 3 Te/t)o/1%Te/t
=S%6iel#s"1$%*alue 3 Te/t)o/;%Te/t
=S%6iel#s";$%*alue 3 Te/t)o/<%Te/t
=S%6iel#s"<$%*alue 3 Te/t)o/E%Te/t
=S%6iel#s"E$%*alue 3 Te/t)o/F%Te/t
=S%6iel#s"F$%*alue 3 Te/t)o/G%Te/t
=S%6iel#s"G$%*alue 3 Te/t)o/H%Te/t
=S%6iel#s"H$%*alue 3 Te/t)o/I%Te/t
=S%6iel#s"I$%*alue 3 Te/t)o/J%Te/t
=S%6iel#s"J$%*alue 3 Te/t)o/19%Te/t
=S%6iel#s"19$%*alue 3 Te/t)o/11%Te/t
273
=S%6iel#s"11$%*alue 3 Te/t)o/1;%Te/t
=S%6iel#s"1;$%*alue 3 Te/t)o/1<%Te/t
=S%6iel#s"1<$%*alue 3 Te/t)o/1E%Te/t
=S%6iel#s"1E$%*alue 3 Te/t)o/1F%Te/t
=S%6iel#s"1F$%*alue 3 Te/t)o/1G%Te/t
=S%6iel#s"1G$%*alue 3 Te/t)o/1H%Te/t
=S%6iel#s"1H$%*alue 3 Te/t)o/1I%Te/t
=S%Cp#ate"$
.sg)o/""=ecor# Is Sa&e#"+ .sg)o/Style%Information$
=S%.o&e6irst"$
Call sho4'#ata"$
=ecor#ToolStrip.enuItem%,nable# 3 True
Ne4ToolStrip.enuItem%,nable# 3 True
DeleteToolStrip.enuItem%,nable# 3 True
,n# If
,n# Sub
,n# Class
274
CODING OF SCHEDULE FORM
Public Class 6orm<
Dim rs s DOD)%=ecor#set
Pri&ate Sub 6orm<'(oa#")y*al sen#er s System%Ob!ect+ )y*al e s
System%,&entrgs$ -an#les .y)ase%(oa#
Call main"$
=S 3 Ne4 DOD)%=ecor#set
rs%Open""S,(,CT @ 6=O. SC-,DC(,'IN6O=.TION"+ con+
DOD)%CursorType,num%a#OpenDynamic+ DOD)%(oc>Type,num%a#(oc>Optimistic$
Call sho4'#ata"$
,n# Sub
Pri&ate Sub sho4'#ata"$
If rs%,O6 n# rs%)O6 3 True Then
.sg)o/""there are no recor#s to sho4"+ .sg)o/Style%Critical$
,lse
Te/t)o/1%Te/t 3 rs%6iel#s"9$%*alue
Te/t)o/;%Te/t 3 rs%6iel#s"1$%*alue
Te/t)o/<%Te/t 3 rs%6iel#s";$%*alue
Te/t)o/E%Te/t 3 rs%6iel#s"<$%*alue
Te/t)o/F%Te/t 3 rs%6iel#s"E$%*alue
Te/t)o/G%Te/t 3 rs%6iel#s"F$%*alue
275
,n# If
,n# Sub
Pri&ate Sub Ne/tToolStrip.enuItem'Clic>")y*al sen#er s System%Ob!ect+
)y*al e s System%,&entrgs$ -an#les Ne/tToolStrip.enuItem%Clic>
rs%.o&eNe/t"$
If rs%,O6 3 True Then
rs%.o&ePre&ious"$
.sg)o/""this is a last recor#"+ .sg)o/Style%Information$
,n# If
Call sho4'#ata"$
,n# Sub
Pri&ate Sub Pre&iousToolStrip.enuItem'Clic>")y*al sen#er s
System%Ob!ect+ )y*al e s System%,&entrgs$ -an#les
Pre&iousToolStrip.enuItem%Clic>
rs%.o&ePre&ious"$
If rs%)O6 3 True Then
.sg)o/""this is first recor#"+ .sg)o/Style%Information$
rs%.o&eNe/t"$
,n# If
Call sho4'#ata"$
276
,n# Sub
Pri&ate Sub 6irstToolStrip.enuItem'Clic>")y*al sen#er s System%Ob!ect+
)y*al e s System%,&entrgs$ -an#les 6irstToolStrip.enuItem%Clic>
rs%.o&e6irst"$
Call sho4'#ata"$
,n# Sub
Pri&ate Sub (astToolStrip.enuItem'Clic>")y*al sen#er s System%Ob!ect+
)y*al e s System%,&entrgs$ -an#les (astToolStrip.enuItem%Clic>
rs%.o&e(ast"$
Call sho4'#ata"$
,n# Sub
Pri&ate Sub Ne4ToolStrip.enuItem'Clic>")y*al sen#er s System%Ob!ect+
)y*al e s System%,&entrgs$ -an#les Ne4ToolStrip.enuItem%Clic>
=S%##Ne4"$
Te/t)o/1%Te/t 3 ""
Te/t)o/;%Te/t 3 ""
Te/t)o/<%Te/t 3 ""
Te/t)o/E%Te/t 3 ""
Te/t)o/F%Te/t 3 ""
Te/t)o/G%Te/t 3 ""

277
=ecor#ToolStrip.enuItem%,nable# 3 6alse
Ne4ToolStrip.enuItem%,nable# 3 6alse
DeleteToolStrip.enuItem%,nable# 3 6alse
,n# Sub
Pri&ate Sub DeleteToolStrip.enuItem'Clic>")y*al sen#er s System%Ob!ect+
)y*al e s System%,&entrgs$ -an#les DeleteToolStrip.enuItem%Clic>
=S%Delete"$
.sg)o/""=ecor# Is Delete#"+ .sg)o/Style%Information$
=S%.o&e6irst"$
Call sho4'#ata"$
,n# Sub
Pri&ate Sub CloseThe7in#o4ToolStrip.enuItem'Clic>")y*al sen#er s
System%Ob!ect+ )y*al e s System%,&entrgs$ -an#les
CloseThe7in#o4ToolStrip.enuItem%Clic>
.e%Close"$
,n# Sub
Pri&ate Sub CancelToolStrip.enuItem'Clic>")y*al sen#er s System%Ob!ect+
)y*al e s System%,&entrgs$ -an#les CancelToolStrip.enuItem%Clic>
rs%CancelCp#ate"$
rs%.o&e6irst"$
Call sho4'#ata"$
278
=ecor#ToolStrip.enuItem%,nable# 3 True
Ne4ToolStrip.enuItem%,nable# 3 True
DeleteToolStrip.enuItem%,nable# 3 True
,n# Sub
Pri&ate Sub Sa&eToolStrip.enuItem'Clic>")y*al sen#er s System%Ob!ect+
)y*al e s System%,&entrgs$ -an#les Sa&eToolStrip.enuItem%Clic>
If Te/t)o/1%Te/t 3 "" Or Te/t)o/;%Te/t 3 "" Or Te/t)o/<%Te/t 3 "" Or
Te/t)o/E%Te/t 3 "" Or Te/t)o/F%Te/t 3 "" Or Te/t)o/G%Te/t 3 "" Then
.sg)o/""Pl0 6ill The )o/es )lan>"+ .sg)o/Style%Critical$
,lse
rs%6iel#s"9$%*alue 3 Te/t)o/1%Te/t
rs%6iel#s"1$%*alue 3 Te/t)o/;%Te/t
rs%6iel#s";$%*alue 3 Te/t)o/<%Te/t
rs%6iel#s"<$%*alue 3 Te/t)o/E%Te/t
rs%6iel#s"E$%*alue 3 Te/t)o/F%Te/t
rs%6iel#s"F$%*alue 3 Te/t)o/G%Te/t
rs%Cp#ate"$
.sg)o/""=ecor# Is Sa&e#"+ .sg)o/Style%Information$
rs%.o&e6irst"$
Call sho4'#ata"$
=ecor#ToolStrip.enuItem%,nable# 3 True
Ne4ToolStrip.enuItem%,nable# 3 True
279
DeleteToolStrip.enuItem%,nable# 3 True
,n# If
,n# Sub
,n# Class
280
CODING OF SEARCH TRAIN INFORMATION
Public Class search'train'information
Dim rs s DOD)%=ecor#set
Pri&ate Sub search'train'information'(oa#")y*al sen#er s System%Ob!ect+
)y*al e s System%,&entrgs$ -an#les .y)ase%(oa#
Call main"$
rs 3 Ne4 DOD)%=ecor#set
rs%Open""select @ from train'information"+ con+
DOD)%CursorType,num%a#OpenDynamic+ DOD)%(oc>Type,num%a#(oc>Optimistic$
Do 7hile "rs%,O6 12 True$
Combo)o/1%Items%##"rs%6iel#s"9$%*alue$
rs%.o&eNe/t"$
(oop
,n# Sub
Pri&ate Sub Combo)o/1'Selecte#In#e/Change#")y*al sen#er s System%Ob!ect+
)y*al e s System%,&entrgs$ -an#les Combo)o/1%Selecte#In#e/Change#
rs%.o&e6irst"$
Do 7hile "rs%,O6 12 True$
28l
If (Case"rs%6iel#s"9$%*alue$ 3 (Case"Combo)o/1%Te/t$ Then
Te/t)o/1%Te/t 3 rs%6iel#s"9$%*alue
Te/t)o/;%Te/t 3 rs%6iel#s"1$%*alue
Te/t)o/<%Te/t 3 rs%6iel#s";$%*alue
Te/t)o/E%Te/t 3 rs%6iel#s"<$%*alue
Te/t)o/F%Te/t 3 rs%6iel#s"E$%*alue
Te/t)o/G%Te/t 3 rs%6iel#s"F$%*alue
Te/t)o/H%Te/t 3 rs%6iel#s"G$%*alue
Te/t)o/I%Te/t 3 rs%6iel#s"H$%*alue

,/it Do
,lse
rs%.o&eNe/t"$
,n# If
(oop
,n# Sub
Pri&ate Sub CloseThe7in#o4ToolStrip.enuItem'Clic>")y*al sen#er s
System%Ob!ect+ )y*al e s System%,&entrgs$ -an#les
CloseThe7in#o4ToolStrip.enuItem%Clic>
282
.e%Close"$
,n# Sub
,n# Class
283
CODING OF SEARCH FARE INFORMATION FORM
Public Class search'fare'information
Dim rs s DOD)%=ecor#set

Pri&ate Sub search'fare'information'(oa#")y*al sen#er s System%Ob!ect+
)y*al e s System%,&entrgs$ -an#les .y)ase%(oa#
Call main"$
rs 3 Ne4 DOD)%=ecor#set
rs%Open""select @ from fare'information"+ con+
DOD)%CursorType,num%a#OpenDynamic+ DOD)%(oc>Type,num%a#(oc>Optimistic$
Do 7hile "rs%,O6 12 True$
Combo)o/1%Items%##"rs%6iel#s"9$%*alue$
rs%.o&eNe/t"$
(oop
,n# Sub
Pri&ate Sub Combo)o/1'Selecte#In#e/Change#")y*al sen#er s System%Ob!ect+
)y*al e s System%,&entrgs$ -an#les Combo)o/1%Selecte#In#e/Change#
rs%.o&e6irst"$
284
Do 7hile "rs%,O6 12 True$
If (Case"rs%6iel#s"9$%*alue$ 3 (Case"Combo)o/1%Te/t$ Then
Te/t)o/1%Te/t 3 rs%6iel#s"9$%*alue
Te/t)o/;%Te/t 3 rs%6iel#s"1$%*alue
Te/t)o/<%Te/t 3 rs%6iel#s";$%*alue
Te/t)o/E%Te/t 3 rs%6iel#s"<$%*alue
Te/t)o/F%Te/t 3 rs%6iel#s"E$%*alue
Te/t)o/G%Te/t 3 rs%6iel#s"F$%*alue
Te/t)o/H%Te/t 3 rs%6iel#s"G$%*alue
Te/t)o/I%Te/t 3 rs%6iel#s"H$%*alue
Te/t)o/J%Te/t 3 rs%6iel#s"I$%*alue
Te/t)o/19%Te/t 3 rs%6iel#s"J$%*alue
Te/t)o/11%Te/t 3 rs%6iel#s"19$%*alue
Te/t)o/1;%Te/t 3 rs%6iel#s"11$%*alue
Te/t)o/1<%Te/t 3 rs%6iel#s"1;$%*alue
Te/t)o/1E%Te/t 3 rs%6iel#s"1<$%*alue
Te/t)o/1F%Te/t 3 rs%6iel#s"1E$%*alue
Te/t)o/1G%Te/t 3 rs%6iel#s"1F$%*alue
Te/t)o/1H%Te/t 3 rs%6iel#s"1G$%*alue
Te/t)o/1I%Te/t 3 rs%6iel#s"1H$%*alue
285
,/it Do
,lse
rs%.o&eNe/t"$
,n# If
(oop
,n# Sub
Pri&ate Sub CloseThe7in#o4ToolStrip.enuItem'Clic>")y*al sen#er s
System%Ob!ect+ )y*al e s System%,&entrgs$
.e%Close"$
,n# Sub
,n# Class
286
CODlNG OF SEARCH RESERVATlON FORM
Public Class search'reser&ation
Dim rs s DOD)%=ecor#set
Pri&ate Sub search'reser&ation'(oa#")y*al sen#er s System%Ob!ect+ )y*al
e s System%,&entrgs$ -an#les .y)ase%(oa#
Call main"$
rs 3 Ne4 DOD)%=ecor#set
rs%Open""select @ from reser&ation"+ con+
DOD)%CursorType,num%a#OpenDynamic+ DOD)%(oc>Type,num%a#(oc>Optimistic$
Do 7hile "rs%,O6 12 True$
Combo)o/1%Items%##"rs%6iel#s"9$%*alue$
rs%.o&eNe/t"$
(oop
,n# Sub
Pri&ate Sub Combo)o/1'Selecte#In#e/Change#")y*al sen#er s System%Ob!ect+
)y*al e s System%,&entrgs$ -an#les Combo)o/1%Selecte#In#e/Change#
rs%.o&e6irst"$
Do 7hile "rs%,O6 12 True$
If (Case"rs%6iel#s"9$%*alue$ 3 (Case"Combo)o/1%Te/t$ Then
287
Te/t)o/1%Te/t 3 rs%6iel#s"9$%*alue
Te/t)o/;%Te/t 3 rs%6iel#s"1$%*alue
Te/t)o/<%Te/t 3 rs%6iel#s";$%*alue
Te/t)o/E%Te/t 3 rs%6iel#s"<$%*alue
Te/t)o/F%Te/t 3 rs%6iel#s"E$%*alue
Te/t)o/G%Te/t 3 rs%6iel#s"F$%*alue
Te/t)o/H%Te/t 3 rs%6iel#s"G$%*alue
Te/t)o/I%Te/t 3 rs%6iel#s"H$%*alue
Te/t)o/J%Te/t 3 rs%6iel#s"I$%*alue
Te/t)o/19%Te/t 3 rs%6iel#s"J$%*alue
Te/t)o/11%Te/t 3 rs%6iel#s"19$%*alue
Te/t)o/1;%Te/t 3 rs%6iel#s"11$%*alue
Te/t)o/1<%Te/t 3 rs%6iel#s"1;$%*alue
Te/t)o/1E%Te/t 3 rs%6iel#s"1<$%*alue
Te/t)o/1F%Te/t 3 rs%6iel#s"1E$%*alue
,/it Do
,lse
rs%.o&eNe/t"$
,n# If
288
(oop
,n# Sub
Pri&ate Sub CloseThe7in#o4ToolStrip.enuItem'Clic>")y*al sen#er s
System%Ob!ect+ )y*al e s System%,&entrgs$ -an#les
CloseThe7in#o4ToolStrip.enuItem%Clic>
.e%Close"$
,n# Sub
,n# Class
289
CODING OF SEARCH CANCELLATION FORM
Public Class search'cancellation
Dim rs s DOD)%=ecor#set
Pri&ate Sub search'cancellation'(oa#")y*al sen#er s System%Ob!ect+ )y*al
e s System%,&entrgs$ -an#les .y)ase%(oa#
Call main"$
rs 3 Ne4 DOD)%=ecor#set
rs%Open""select @ from cancellation"+ con+
DOD)%CursorType,num%a#OpenDynamic+ DOD)%(oc>Type,num%a#(oc>Optimistic$
Do 7hile "rs%,O6 12 True$
Combo)o/1%Items%##"rs%6iel#s"9$%*alue$
rs%.o&eNe/t"$
(oop
,n# Sub
Pri&ate Sub Combo)o/1'Selecte#In#e/Change#")y*al sen#er s System%Ob!ect+
)y*al e s System%,&entrgs$ -an#les Combo)o/1%Selecte#In#e/Change#
rs%.o&e6irst"$
290
Do 7hile "rs%,O6 12 True$
If (Case"rs%6iel#s"9$%*alue$ 3 (Case"Combo)o/1%Te/t$ Then
Te/t)o/1%Te/t 3 rs%6iel#s"9$%*alue
Te/t)o/;%Te/t 3 rs%6iel#s"1$%*alue
Te/t)o/<%Te/t 3 rs%6iel#s";$%*alue
Te/t)o/E%Te/t 3 rs%6iel#s"<$%*alue
Te/t)o/F%Te/t 3 rs%6iel#s"E$%*alue
Te/t)o/G%Te/t 3 rs%6iel#s"F$%*alue
Te/t)o/H%Te/t 3 rs%6iel#s"G$%*alue
Te/t)o/I%Te/t 3 rs%6iel#s"H$%*alue
Te/t)o/J%Te/t 3 rs%6iel#s"I$%*alue
Te/t)o/19%Te/t 3 rs%6iel#s"J$%*alue
Te/t)o/11%Te/t 3 rs%6iel#s"19$%*alue
Te/t)o/1;%Te/t 3 rs%6iel#s"11$%*alue
,/it Do
,lse
rs%.o&eNe/t"$
29l
,n# If
(oop
,n# Sub
Pri&ate Sub CloseThe7in#o4ToolStrip.enuItem'Clic>")y*al sen#er s
System%Ob!ect+ )y*al e s System%,&entrgs$ -an#les
CloseThe7in#o4ToolStrip.enuItem%Clic>
.e%Close"$
,n# Sub
,n# Class
292
CODING OF SEARCH PASSENGER INFORMATION FORM
Public Class search'passenger'information
Dim rs s DOD)%=ecor#set
Pri&ate Sub search'passenger'information'(oa#")y*al sen#er s
System%Ob!ect+ )y*al e s System%,&entrgs$ -an#les .y)ase%(oa#
Call main"$
rs 3 Ne4 DOD)%=ecor#set
rs%Open""select @ from passenger'information"+ con+
DOD)%CursorType,num%a#OpenDynamic+ DOD)%(oc>Type,num%a#(oc>Optimistic$
Do 7hile "rs%,O6 12 True$
Combo)o/1%Items%##"rs%6iel#s"9$%*alue$
rs%.o&eNe/t"$
(oop
,n# Sub
Pri&ate Sub Combo)o/1'Selecte#In#e/Change#")y*al sen#er s System%Ob!ect+
)y*al e s System%,&entrgs$ -an#les Combo)o/1%Selecte#In#e/Change#
rs%.o&e6irst"$
293
Do 7hile "rs%,O6 12 True$
If (Case"rs%6iel#s"9$%*alue$ 3 (Case"Combo)o/1%Te/t$ Then
Te/t)o/1%Te/t 3 rs%6iel#s"9$%*alue
Te/t)o/;%Te/t 3 rs%6iel#s"1$%*alue
Te/t)o/<%Te/t 3 rs%6iel#s";$%*alue
Te/t)o/E%Te/t 3 rs%6iel#s"<$%*alue
Te/t)o/F%Te/t 3 rs%6iel#s"E$%*alue
Te/t)o/G%Te/t 3 rs%6iel#s"F$%*alue
Te/t)o/H%Te/t 3 rs%6iel#s"G$%*alue
Te/t)o/I%Te/t 3 rs%6iel#s"H$%*alue
Te/t)o/J%Te/t 3 rs%6iel#s"I$%*alue

,/it Do
,lse
rs%.o&eNe/t"$
,n# If
(oop
,n# Sub
294
Pri&ate Sub CloseThe7in#o4ToolStrip.enuItem'Clic>")y*al sen#er s
System%Ob!ect+ )y*al e s System%,&entrgs$ -an#les
CloseThe7in#o4ToolStrip.enuItem%Clic>
.e%Close"$
,n# Sub
,n# Class
295
CODING OF SEARCH STAFF INFORMATION FORM
Public Class search'staff'information
Dim rs s DOD)%=ecor#set
Pri&ate Sub search'staff'information'(oa#")y*al sen#er s System%Ob!ect+
)y*al e s System%,&entrgs$ -an#les .y)ase%(oa#
Call main"$
rs 3 Ne4 DOD)%=ecor#set
rs%Open""select @ from staff'information"+ con+
DOD)%CursorType,num%a#OpenDynamic+ DOD)%(oc>Type,num%a#(oc>Optimistic$
Do 7hile "rs%,O6 12 True$
Combo)o/1%Items%##"rs%6iel#s"9$%*alue$
rs%.o&eNe/t"$
(oop
,n# Sub
Pri&ate Sub Combo)o/1'Selecte#In#e/Change#")y*al sen#er s System%Ob!ect+
)y*al e s System%,&entrgs$ -an#les Combo)o/1%Selecte#In#e/Change#
rs%.o&e6irst"$
Do 7hile "rs%,O6 12 True$
If (Case"rs%6iel#s"9$%*alue$ 3 (Case"Combo)o/1%Te/t$ Then
296
Te/t)o/1%Te/t 3 rs%6iel#s"9$%*alue
Te/t)o/;%Te/t 3 rs%6iel#s"1$%*alue
Te/t)o/<%Te/t 3 rs%6iel#s";$%*alue
Te/t)o/E%Te/t 3 rs%6iel#s"<$%*alue
Te/t)o/F%Te/t 3 rs%6iel#s"E$%*alue
Te/t)o/G%Te/t 3 rs%6iel#s"F$%*alue
Te/t)o/H%Te/t 3 rs%6iel#s"G$%*alue
te/tbo/I%Te/t 3 rs%6iel#s"H$%*alue
,/it Do
,lse
rs%.o&eNe/t"$
,n# If
(oop
,n# Sub
Pri&ate Sub CloseThe7in#o4ToolStrip.enuItem'Clic>")y*al sen#er s
System%Ob!ect+ )y*al e s System%,&entrgs$ -an#les
CloseThe7in#o4ToolStrip.enuItem%Clic>
.e%Close"$
,n# Sub
,n# Class
297
CODING OF SEARCH ROOT INFORMATION FORM
Public Class search'root'information
Dim rs s DOD)%=ecor#set
Pri&ate Sub search'root'information'(oa#")y*al sen#er s System%Ob!ect+
)y*al e s System%,&entrgs$ -an#les .y)ase%(oa#
Call main"$
rs 3 Ne4 DOD)%=ecor#set
rs%Open""select @ from root'information"+ con+
DOD)%CursorType,num%a#OpenDynamic+ DOD)%(oc>Type,num%a#(oc>Optimistic$
Do 7hile "rs%,O6 12 True$
Combo)o/1%Items%##"rs%6iel#s"9$%*alue$
rs%.o&eNe/t"$
(oop
,n# Sub
Pri&ate Sub Combo)o/1'Selecte#In#e/Change#")y*al sen#er s System%Ob!ect+
)y*al e s System%,&entrgs$ -an#les Combo)o/1%Selecte#In#e/Change#
rs%.o&e6irst"$
Do 7hile "rs%,O6 12 True$
If (Case"rs%6iel#s"9$%*alue$ 3 (Case"Combo)o/1%Te/t$ Then
298
Te/t)o/1%Te/t 3 rs%6iel#s"9$%*alue
Te/t)o/;%Te/t 3 rs%6iel#s"1$%*alue
Te/t)o/<%Te/t 3 rs%6iel#s";$%*alue
Te/t)o/E%Te/t 3 rs%6iel#s"<$%*alue
Te/t)o/F%Te/t 3 rs%6iel#s"E$%*alue
Te/t)o/G%Te/t 3 rs%6iel#s"F$%*alue
Te/t)o/H%Te/t 3 rs%6iel#s"G$%*alue
Te/t)o/I%Te/t 3 rs%6iel#s"H$%*alue
Te/t)o/J%Te/t 3 rs%6iel#s"I$%*alue
Te/t)o/19%Te/t 3 rs%6iel#s"J$%*alue
Te/t)o/11%Te/t 3 rs%6iel#s"19$%*alue
Te/t)o/1;%Te/t 3 rs%6iel#s"11$%*alue
Te/t)o/1<%Te/t 3 rs%6iel#s"1;$%*alue
Te/t)o/1E%Te/t 3 rs%6iel#s"1<$%*alue
Te/t)o/1F%Te/t 3 rs%6iel#s"1E$%*alue
Te/t)o/1G%Te/t 3 rs%6iel#s"1F$%*alue
Te/t)o/1H%Te/t 3 rs%6iel#s"1G$%*alue
Te/t)o/1I%Te/t 3 rs%6iel#s"1H$%*alue
,/it Do
,lse
299
rs%.o&eNe/t"$
,n# If
(oop
,n# Sub
Pri&ate Sub CloseThe7in#o4ToolStrip.enuItem'Clic>")y*al sen#er s
System%Ob!ect+ )y*al e s System%,&entrgs$ -an#les
CloseThe7in#o4ToolStrip.enuItem%Clic>
.e%Close"$
,n# Sub
,n# Class
300
CODING OF SEARCH SCHEDULE INFORMATION FORM
Public Class search'sche#ule'information
Dim rs s DOD)%=ecor#set
Pri&ate Sub search'sche#ule'information'(oa#")y*al sen#er s
System%Ob!ect+ )y*al e s System%,&entrgs$ -an#les .y)ase%(oa#
Call main"$
rs 3 Ne4 DOD)%=ecor#set
rs%Open""select @ from sche#ule'information"+ con+
DOD)%CursorType,num%a#OpenDynamic+ DOD)%(oc>Type,num%a#(oc>Optimistic$
Do 7hile "rs%,O6 12 True$
Combo)o/1%Items%##"rs%6iel#s"9$%*alue$
rs%.o&eNe/t"$
(oop
,n# Sub
Pri&ate Sub Combo)o/1'Selecte#In#e/Change#")y*al sen#er s System%Ob!ect+
)y*al e s System%,&entrgs$ -an#les Combo)o/1%Selecte#In#e/Change#
rs%.o&e6irst"$
Do 7hile "rs%,O6 12 True$
If (Case"rs%6iel#s"9$%*alue$ 3 (Case"Combo)o/1%Te/t$ Then
30l
Te/t)o/1%Te/t 3 rs%6iel#s"9$%*alue
Te/t)o/;%Te/t 3 rs%6iel#s"1$%*alue
Te/t)o/<%Te/t 3 rs%6iel#s";$%*alue
Te/t)o/E%Te/t 3 rs%6iel#s"<$%*alue
Te/t)o/F%Te/t 3 rs%6iel#s"E$%*alue
Te/t)o/G%Te/t 3 rs%6iel#s"F$%*alue

,/it Do
,lse
rs%.o&eNe/t"$
,n# If
(oop
,n# Sub
Pri&ate Sub CloseThe7in#o4ToolStrip.enuItem'Clic>")y*al sen#er s
System%Ob!ect+ )y*al e s System%,&entrgs$ -an#les
CloseThe7in#o4ToolStrip.enuItem%Clic>
.e%Close"$
,n# Sub
,n# Class
302
CODING OF CHANGE PASSWORD FORM
Public Class C-N5,'PSS7O=D

Pri&ate Sub )utton1'Clic>")y*al sen#er s System%Ob!ect+ )y*al e s
System%,&entrgs$ -an#les )utton1%Clic>
Dim =S s DOD)%=ecor#set
Call main"$
=S 3 Ne4 DOD)%=ecor#set
=S%Open""S,(,CT @ 6=O. (O5IN"+ con+
DOD)%CursorType,num%a#OpenDynamic+ DOD)%(oc>Type,num%a#(oc>Optimistic$
If Te/t)o/1%Te/t 3 "" Or Te/t)o/;%Te/t 3 "" Or Te/t)o/<%Te/t 3 "" Or
Te/t)o/E%Te/t 3 KK Then
.sg)o/""P(A 6I(( IN T-, )(NBS"+ .sg)o/Style%Critical$
,lse
Dim 6 s )oolean
303
6 3 6alse
Do 7hile "=S%,O6 12 True$
If (Case"Te/t)o/1%Te/t$ 3 (Case"=S%6iel#s"9$%*alue$ n#
(Case"Te/t)o/;%Te/t$ 3 (Case"=S%6iel#s"1$%*alue$ Then
6 3 True
,/it Do
,lse
=S%.o&eNe/t"$
,n# If
(oop
If 6 3 True Then
If Te/t)o/<%Te/t 3 Te/t)o/E%Te/t Then
=S%6iel#s"1$%*alue 3 Te/t)o/<%Te/t
=S%Cp#ate"$
.sg)o/""(O5IN IS C-N5, SCCC,SS6C((L"$
.e%Close"$
,lse
.sg)o/""P(S ,NT,= CO==,CT PSS7O=D"$
,n# If
304
,lse
.sg)o/""IN*(ID ID O= PSS7O=D"$
,n# If
,n# If
,n# Sub
Pri&ate Sub )utton;'Clic>")y*al sen#er s System%Ob!ect+ )y*al e s
System%,&entrgs$ -an#les )utton;%Clic>
.e%Close"$
,n# Sub
,n# Class
305
CODIN5 O6 =,PO=TS 6O=.
Imports CrystalDecisions%Crystal=eports%,ngine
Imports CrystalDecisions%Share#
Public Class all'report
Pri&ate Sub )utton1'Clic>")y*al sen#er s System%Ob!ect+ )y*al e s
System%,&entrgs$ -an#les )utton1%Clic>
Dim crpt s Ne4 trainreport
Crystal=eport*ie4er1%=eportSource 3 crpt
Crystal=eport*ie4er1%=efresh"$
,n# Sub
Pri&ate Sub )utton;'Clic>")y*al sen#er s System%Ob!ect+ )y*al e s
System%,&entrgs$ -an#les )utton;%Clic>
Dim crpt s Ne4 reser&ationreport
Crystal=eport*ie4er1%=eportSource 3 crpt
Crystal=eport*ie4er1%=efresh"$
306
,n# Sub
Pri&ate Sub )utton<'Clic>")y*al sen#er s System%Ob!ect+ )y*al e s
System%,&entrgs$ -an#les )utton<%Clic>
Dim crpt s Ne4 cancellation'report
Crystal=eport*ie4er1%=eportSource 3 crpt
Crystal=eport*ie4er1%=efresh"$
,n# Sub
Pri&ate Sub )uttonE'Clic>")y*al sen#er s System%Ob!ect+ )y*al e s
System%,&entrgs$ -an#les )uttonE%Clic>
Dim crpt s Ne4 fare'report
Crystal=eport*ie4er1%=eportSource 3 crpt
Crystal=eport*ie4er1%=efresh"$
,n# Sub
Pri&ate Sub )uttonF'Clic>")y*al sen#er s System%Ob!ect+ )y*al e s
System%,&entrgs$ -an#les )uttonF%Clic>
Dim crpt s Ne4 root'report
307
Crystal=eport*ie4er1%=eportSource 3 crpt
Crystal=eport*ie4er1%=efresh"$
,n# Sub
Pri&ate Sub )uttonG'Clic>")y*al sen#er s System%Ob!ect+ )y*al e s
System%,&entrgs$ -an#les )uttonG%Clic>
Dim crpt s Ne4 passengerreport
Crystal=eport*ie4er1%=eportSource 3 crpt
Crystal=eport*ie4er1%=efresh"$
,n# Sub
,n# Class
308
CODIN5 O6 )OCT 6O=.
Public NotInheritable Class bout)o/1
Pri&ate Sub bout)o/1'(oa#")y*al sen#er s System%Ob!ect+ )y*al e s
System%,&entrgs$ -an#les .y)ase%(oa#
' Set the title of the form%
Dim pplicationTitle s String
If .y%pplication%Info%Title 12 "" Then
pplicationTitle 3 .y%pplication%Info%Title
,lse
pplicationTitle 3
System%IO%Path%5et6ileName7ithout,/tension".y%pplication%Info%ssemblyName$
,n# If
.e%Te/t 3 String%6ormat""bout 89:"+ pplicationTitle$
' Initiali0e all of the te/t #isplaye# on the bout )o/%
' TODO: Customi0e the application's assembly information in the
"pplication" pane of the pro!ect
' properties #ialog "un#er the "Pro!ect" menu$%
.e%(abelPro#uctName%Te/t 3 .y%pplication%Info%Pro#uctName
.e%(abel*ersion%Te/t 3 String%6ormat""*ersion 89:"+
.y%pplication%Info%*ersion%ToString$
.e%(abelCopyright%Te/t 3 .y%pplication%Info%Copyright
309
.e%(abelCompanyName%Te/t 3 .y%pplication%Info%CompanyName
.e%Te/t)o/Description%Te/t 3 .y%pplication%Info%Description
,n# Sub
Pri&ate Sub OB)utton'Clic>")y*al sen#er s System%Ob!ect+ )y*al e s
System%,&entrgs$ -an#les OB)utton%Clic>
.e%Close"$
,n# Sub

,n# Class
3l0
Co#ing of mo#ule
.o#ule .o#ule1
Public con s DOD)%Connection
Public Sub main"$
con 3 Ne4 DOD)%Connection
con%Open""#ri&er38microsoft o#bc for
oracle:Mui#3poo!aMp4#3sainiM"$
,n# Sub
,n# .o#ule
3ll
Co*e Efficienc6 - O4timis'tion of Co*e
The input to the coding phase of the "Railway Reservation System" was it
design. During the coding phase, different modules identified in the design
are coded according to the modules specification. At the end of the design
phase, we have not only the module structure.
(e.g. structure chart ) of the system but also the module specification where
the data structure and algorithms for each module are specific. The
objectives of coding phase is to transform the design of the system, as
given by its module specification, into high-level language code and then to
unit test this code.
Adherence to some will-defined and standard style of coding called 'coding
standards' increase the code efficiency. The reasons for adhering to a
standard coding style are the following:
lt gives a uniform appearance to the codes written by different engineers.
lt enhances code understanding and
lt encourage good programming practices
A coding standard sets out standards ways of doing several things such as
the way variables are to be names, the code is to be laid out, maximum
3l2
number of source lines that can be allowed per function ,etc. Besides the
coding standard
Several coding guidelines are also suggested which provide some general
suggestions regarding the coding style to be followed.
Following are the coding standards and guidelines adopted during the
development of "Railway Reservation System".
Naming variables: consistency has been maintained for naming the variables in
project.
Error return conventions and exception handling mechanism: A standardized way
is used for reporting the error conditions by different functions of the software and
handling the common exception coding.
A too clever and difficult to understand coding style has not been used during the
coding phase of this software. Coding style has been kept simple and easy to
understand, because clever coding can obscure the meaning of the code and
hamper understanding. Due to the simplicity of coding style, the maintenance is
also easier.
Well document code: appropriate components lines are inserted, wherever found
necessary , so that the purpose of the function, loop or variable etc. can be
easier understood.
3l3
V'li*'tions ChecBs
Validation is the process of determining whether a fully developed system
conforms to its requirements specification. The aim of validation is to make
the final product error free. At present, as for as the validation is concern,
the "Railway Reservation System" has fully conformed to all type of
validations as per the requirements.
All the validations, which may terminate the application or give unwanted
results, have been handled in various modules of project. An interactive
message box will appear on the screen for all the validations.
Validations: common to all Modules
Duplicate records can not stored
User can not cross the limit of any field specified in the data structures of various
tables.
Those fields which are only displayed on screens by retrieving data from other
tables can not be modified by the user.
Those fields which are in number data type, user can not insert text or character or
string value in this field.
User can't enter incorrect date in date data type field.
3l4
TESTIN9
Software testing is a critical element of software quantity assurance and
represents the ultimate review of specification, design and code generation.
The increasing visibility of software as a system elements and the
attendant "costs" associated with a software failure are motivating for well
planned, thorough testing.
Testin5 o;jecti7es:
The following are the testing objectives :
Testing is a process of executing a program with the intent of finding an error.
A good test case is one that has a high probability of finding an as-yet-
undiscovered error.
A successful test is one that uncovers an as yet undiscovered error.
Testin5 Princi4les
The ;'sic 4rinci4le th't 5ui*e soft='re testin5 're 's follo=s:
All tests should be traceable to customer requirements.
Tests should be planned long before testing begins.
The parato principle applies to software testing.
3l5
Para to principle states that 80 percent of all errors uncovered during
testing will likely be traceable to 20 percent of all program components.
Testing should begin "in the small" and progress toward testing "in the
large".
Exhaustive testing is not possible.
To be most effective, testing should be conducted by an independent third
party.
Test';ilit6:
Software testability is simply how easily (a computer program can be
tested). The following characteristics are considered that lead to testable
software.
Operability : "The better it more efficiently it can be tested".
Observability: "What you see is what you test."
Controllability : "The better we can control the software, the more the testing can
be automated and optimized."
Decomposability : "By controlling the scope of testing, we can more quickly isolate
problems and perform smarter resting."
Simplicity : "The less there is to test, the more quickly we can test it".
3l6
Stability : "The fewer the changes, the fewer the disruptions to testing".
Understandability : "The more information we have, the smarter we will test".
Test C'se 2esi5n :
The design of testing can be divided into two broad categories:
Black Box testing:
White Box testing:
(l'cB (oF testin5:
When computer software is considered, black-box testing alludes to tests
that are conducted at the software interface. Although they are designed to
uncover errors, black box tests are used to demonstrate that software
functions are operational, that input is properly accepted and output is
correctly produced , and the integrity of external information(e.g. A
database) is maintained.
White (oF testin5:
White box testing of software is predicated on close examination of
procedural detail. Logical paths through the software are tested by
3l7
providing test cases that exercise specific sets of conditions and loops. The
main disadvantage with white
box testing is even for smaller programs the number of possible logical
paths can be very large. ln the present project Black box testing is used.
Soft='re testin5 Str'te5ies:
Software testing is one element of a broader topic that is often referred to
as verification and validation (v &v).Verification refers to the set of activities
that ensure that software correctly implements a specific functions.
Validation refers to a different set of activities that ensure that the software
that has been built is traceable to customer requirements. ln other words v
&v can be stated as Verification : "Are we building the product right."
The following issue were considered for a successful software testing
strategy is to be implemented.
Specific product requirements in a quantifiable manner long before testing
commence.
State testing objectives explicitly.
Understand the users of the software and develop a profile for each user
category.
Develop a testing plan that emphasizes "rapid cycle testing".
3l8
Build "robust" software that is designed to test itself.
Use effective formal technical reviews to assess the test strategy and test cases
them selves.
Develop a continuous improvement approach for the testing.
)nit Test Proce*ures:
Unit testing is normally considered as an adjusted to the coding step. After
source code is developed, reviewed and test cases were established.
Functional behavioral were tested for each module. Each test case is
coupled with a set of expected results. Because a module is not a stand
alone program, driver and/or sub software must be developed for each unit
test. Driver is nothing more than "a main program" that accepts test case
data, passed such data to the module.
Unit testing is simplified when a module with high cohesion is designed.
When Only one function is addressed by a module, the number of test
cases are reduced and errors can be more easily predicted and uncovered.
3l9
320
Securit6 Me'sure T'Ben
As far as the security is concern, "Railway Reservation System" will provide
a reliable security system for protecting the Railway Reservation System
database from unauthorized access. One module (i.e. LOGlN ) will take
care of the security of the project database. To implement the LOGlN
modules, one table has been included into the project database called
LOGlN, which will store information about various users who will interact
with the project. Details like USERlD, PASSWARD will be stored in this
Table. Users will be allowed to access project database only after feeding
their LOGlN and PASSWARD correctly. LOGlN module and accordingly
the access right to Railway Reservation System database will be given to
the user.
ln this project, user means employee and administrator can also access the
project.
32l
WorB Sche*ule An* Cost Estim'te
WorB Sche*ule
Scheduling is an important activity of project Managers. ln order to
schedule a project, a software project manager to do the following:
ldentify the tasks needed to complete the project
Determine the dependency among different tasks
Establish the most likely estimates for the duration of the identified tasks.
Plan the starting and ending dates for various tasks
Determine the critical path (i.e. the chain of tasks that determine the duration of the
project).
As for as the "Railway Reservation System" is concern, the whole system
was divided into main activities shown in *f*. Dependencies between
these activities; duration of each activity, its starting and ending dates; and
total duration of the project can be easily identified by going through these
charts.
322
COST ESTIMATION
Project Cost Estimation is an important task of the Software Project
Management. During project planning, project manager estimates the
following parameters: Project size, Effort required to develop the software,
project duration and cost. These estimates help not only in quoting the
project cost to the customer, but also in resource planning and scheduling.
ln this project l used the two software are ORACLE l0g & VB.net and l
had done expenseon printing and stationary.
323
324
TRAlN lNFORMATlON REPORT

325
RESERVATlON lNFORMATlON REPORT


326
CANCELLATlON lNFORMATlON REPORT

327
FARE lNFORMATlON REPORT


328
ROOT lNFORMATlON REPORT
329
LIMITATIONS O3 T0E PRO1ECT
Though this project Railway Reservation System is very useful and has several
advantages over a manual system. Use of this no doubt will result in faster
processing and a better service but it has some limitations also. These limitations
include
The software does not allow the online implementation of the project
and it is only available for a single system.
Payment can be done only through cheque or dd, as it does not hold
credit card system.
Any features or forms can't be added.
330
SCOPE O3 3)T)RE APPLICATION
.
33l
(I(LO9RAP0Y
The main books, which were consulted for the project development, are:
Guide to Visual Studio Peter Norton

Oracle Developer 2000 lvon Bayros
MSDN Library
Software Engineering Roger S. Pressman
Mastering Visual Studio.NET BPB Publication
Oracle the complete References Kevin Loney, George Koch

332

Anda mungkin juga menyukai