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