Railway Ticket System

1

ACKNOWLEDGEMENT

We express our sincere gratitude to Prof. N Gopalakrishnan, (HOD) who granted the permission to do this project. We are also thankful to Ms. Sreelekshmi S. (our project guide) for her constant support in the Design, Implementation and Evaluation of this project. She helped a lot with her constructive criticism and invaluable suggestions, which benefited us a lot. We are also thankful to Prof. M R Sarathchandradas, the Principal, who provided us the infrastructure to carry out the project including the lab facilities, and to all the staff members who were directly and indirectly instrumental in enabling us to stay committed for the project.

Dept of Computer Science & Engg MGCE

Railway Ticket System

2

ABSTRACT

INTRODUCTION

Railway Ticket System (RTS) is interactive software, which is developed for the issuing of a railway ticket. It is developed while keeping in mind the need of an updated ticket issuing software for the Southern Railways (Southern Zone of Indian Railways). The project is designed for the Windows-based platform.

Microsoft Visual Basic 6.0 Enterprise Edition is used as the front-end software and Microsoft Access 2003 as back-end for the development of the software.

The software includes options for checking the status of a railway ticket and retrieves the information required, especially when the ticket is a RAC or in waiting list, so that the passenger can know his ticket priority in the lists. The software provides easy and faster searching options and generation of the ticket that increases the efficiency of the Southern Wing of Indian Railways, if this software is implemented.

Dept of Computer Science & Engg MGCE

Railway Ticket System

3

OBJECTIVES The main objective of this project is to study the manual procedure carried out for the issuing of a railway ticket to senior citizens and non-senior citizens by the Indian Railways and to develop management software that would simplify the existing process. Designing user-friendly GUI screens, being specific in generating the output to the user of the system (operator), generating reports related to the specification of the user and that would simplify the manual task, creation of new train routes, eventually creating databases of new trains and so on, add to the list of objectives.

To achieve all these objectives effectively and efficiently, more care has been given to the data collected, stored, retrieved, displayed, updated and manipulated within a short time and a little effort. The proposed system is found to be efficient and accurate and also it checks the reliability of data entered.

Dept of Computer Science & Engg MGCE

Railway Ticket System

4

DESCRIPTION RTS is fully customizable with a number of options. The software is capable of searching the database for available seats, and then accordingly reserves the seat for the passenger. The operator can then check for the status of the passenger seat, whether it is reserved, in waiting list or in RAC (Reservation Against Cancellation). Also, if the passenger wishes to cancel the ticket, he can do so. Using RTS, the operator can easily cancel a ticket. According the date reserved and the date, on which the ticket is cancelled, certain percentage of the ticket fare is refunded. The railway ticket is issued with a unique number which is only valid for the particular ticket. Its’ called PNR (Passenger Name Record). This code is used to track the record of the passenger in the database. The RTS also allow the passenger to use the Journey Planner. This is one of the innovative ideas that are introduced in this project. It enables the easy selection of direct and connection trains easily. This feature is big relief to the existing system as the passenger can plan his journey according to his needs very easily. Tool Used • • • • • Adobe PhotoShop Creative Suite 2 Macromedia Flash v8.0 GIMP v2.0 GIF 89a http://www.myspacegens.com/handler.php?gen=animatedimage – Free animated GIF creator

Dept of Computer Science & Engg MGCE

Railway Ticket System

5

SYSTEM SPECIFICATION

HARDWARE SPECIFICATION The software requires IBM compatible machines with the following recommended specification. Processor RAM Hard Disk Drive Monitor Mouse Keyboard Optical Drive Removable Device (Optional) : : : : : : : : Pentium III / AMD Atlon or higher 128 MB or higher 20 GB or higher 15” SVGA Colour Standard 3 button scroll mouse Standard 101/102-Key keyboard 52X CD-ROM Drive 512 MB USB 2.0 Pen Drive

SOFTWARE REQUIREMENT

Operating System

:

Microsoft Windows XP SP2

Dept of Computer Science & Engg MGCE

Railway Ticket System

6

SOFTWARE DESCRIPTION

Microsoft Windows: -

Microsoft Windows is a graphical user interface. It uses graphics to organize the user’s workplace. Users can select and execute programs with the help of a mouse. The program that runs from within Windows also has a graphical user interface; for example, MS Excel, MS Word etc. Windows provides a broad range of graphical functions for drawing lines and geometric shapes and changing colour. It also provides library functions for accessing screen, printers, keyboard, mouse and functions for working with various other types of objects like menus, bitmaps, icons etc. These libraries are a part of operating system. The system-defined functions that an application can call are provided by an interface known as the Application Programming Interface, or API. It is the interface between an application and Windows environment. Every Windows environment has its unique API. The API that supports Windows 95, 98, 2000, XP are 32 bits API that is, all the functions supported by the API can work with 32 bits of information. The API of Windows 2000, XP has some special features for file security and support for multiple processors. This collection of working functions is maintained in files stored in the SYSTEM32 directory in the hard disk drive. This is created when the Windows is installed.

Dept of Computer Science & Engg MGCE

Railway Ticket System

7

The three primary files are: GDI.DLL – It is a Windows 32-bit graphics driver interface API library and is a core Windows component. It contains functions for drawing graphics, accessing hardware, displaying output etc. USER32.DLL – It is a Windows user library used to provide support for user interface routines. It contains functions that deal with the user interface, like creating and managing Windows. KERNEL32.DLL – It provides Windows 32-bit API support and is the core Windows component. It contains functions, which deal with critical system resources, like functions for allocating memory, accessing files etc. Windows applications are, very often large in size, larger than the amount of physical memory installed in the system. To get around this problem, Windows only loads those modules of an application, which are needed. Using this technique, Windows also greatly reduces memory consumption.

Dept of Computer Science & Engg MGCE

Railway Ticket System

8

Microsoft Visual Basic: The newer programming languages like C++ and Visual Basic follow a different programming approach: Object-Oriented Programming (OOPs) and Event driven programming. Microsoft refers Visual Basic as an event-driven programming language. Visual Basic has many elements of an object-oriented language such as Java. Each release of Visual Basic moves it a little closer to a true object-oriented language. In event driven model each user action can cause an event to occur, which triggers a basic procedure. The Object Model Programming in Visual Basic deals working with objects, which have properties and methods. Object is a thing or noun while properties represents data about an object and method represents actions an object can take. Editions of Visual Basic Microsoft Visual Basic for Windows is marketed as a Working Model, Learning edition, Professional edition and an Enterprise edition. To develop professional applications that include the advanced features of database management, the Professional or Enterprise edition should be used. The Visual Basic Environment The Visual Basic Environment, generally known as Integrated Development Environment (IDE), consists of various customizable Windows like: • • • • • Form Window Project Explorer Window Properties Window Form Layout Windows Toolbox Dept of Computer Science & Engg MGCE

Railway Ticket System A standard application in Visual Basic consists of the following objects: Forms Forms are individual Windows used in the application. Normally forms are the interface of the application. In forms we can place data, graphics and controls. Visual Basic supports to create two types of interfaces – Single Document Interface (SDI) and Multiple Document Interface (MDI). Controls Controls are objects that are put into the form, to display information or get a response from the user. All of the usual Windows features are classes as controls. There are three broad categories of controls in Visual Basic: Intrinsic Control These are the controls that are included in the Toolbox of Visual Basic. Examples: Textbox, Command button, Label box. Objects that can be added to the Toolbox

9

The Microsoft Excel worksheet object, Microsoft Project calendar object, etc can be added to the Toolbox. So they also can be considered as controls. Some of these controls allow automation, which allows programming another application objects from within a Visual Basic Application. Modules A module is like a normal basic program but it does not have the power to create display or get input from the user; the forms control all this. Modules are stored in files with .BAS extensions. Microsoft Access: Microsoft Access is a relational database management system from Microsoft that combines the relational Microsoft Jet Database Engine with a graphical user interface and software development tools. It is a member of the 2007 Microsoft Office system. Access can use data stored in Access/Jet, Microsoft SQL Server, Oracle, or any ODBCcompliant data container (including MySQL and PostgreSQL).

Dept of Computer Science & Engg MGCE

Railway Ticket System

10

Uses Some professional application developers use Access for rapid application development, especially for the creation of prototypes and standalone applications that serve as tools for on-the-road salespeople. Access does not scale well if data access is via a network, so applications that are used by more than a handful of people tend to rely on Client-Server based solutions. However, an Access “front end” (the forms, reports, queries and VB code) can be used against a host of database back-ends, including JET (file-based database engine, used in Access by default), Microsoft SQL Server, Oracle, and all other ODBC-compliant product. In addition to traditional ODBC methods, Access also offers “Access Data Projects” for accessing SQL Server data, which provides a number of advantages over linked tables. Features One of the benefits of Access from a programmer’s perspective is its relative compatibility with SQL (structured query language) – queries may be viewed graphically or edited as SQL statements, and SQL statements can be used directly in Macros and VBA Modules to manipulate Access tables. Users may mix and use both VBA and “Macros” for programming forms and logic and offers object-oriented possibilities. MSDE 2000 (Microsoft SQL Server Desktop Engine), a scaled down version of Microsoft SQL Server 2000, has been a free download for a decade and may be used with Access as an alternative to the Jet Database Engine. Unlike other RDBMS, Microsoft Access does not implement database triggers or stored procedures. Starting in Access 2000 (Jet 2.0), there is a new syntax for creating queries with parameters, in a way that looks like creating stored procedures, but these procedures are still limited to one statement per procedure.

Dept of Computer Science & Engg MGCE

Railway Ticket System In ADP files (supported in Access 2000 and later), the database-related features are

11

geared more towards a client-server architectures with MSDE or Microsoft SQL Server serving as the Back-end instead of using the Jet Engine. Thus, it supports the creation of nearly all objects in the underlying server (tables with constraints and triggers, views, stored procedures and UDF-s). However, only forms, reports, macros and modules are stored in the ADP file (the other objects are stored in the back-end database). This centralization of queries and tables in the database server provide a more reliable development environment for most businesses. Microsoft Access can be applied to small projects (the Access 97 speed characterization was done for 32-bit users) but scales poorly to larger projects with more than several 10MB of data of many users because of the way indexing and locking are handled. As a Microsoft Access database can be cached locally when used on network, processing speed may be substantially better when there is only a single use. Because of the effect of packet latency on the record locking system, Access databases are effectively too slow to be used on a Virtual Private Network or a Wide Area Network. Access Data Projects work great over VPN and WAN. Access includes an Upsizing Wizard that allows users to upsize their database to Microsoft SQL Server if they want to move to an ODBC client-server database. One recommended technique is to migrate from SQL Server and utilize Access Data Projects. This allows stored procedures, views, and constraints using standard SQL. Additionally this full client-server significantly reduces maintenance and availability problems. Access allows no relative paths when linking, so the development environment should have the same path as the production environment (though it is possible to write a “dynamic-linker” routine in VBA). This technique also allows the developer to divide the application among different files.

Dept of Computer Science & Engg MGCE

Railway Ticket System PROJECT DESCRIPTION

12

Rail transport is a commonly used mode of long-distance transportation in India. Almost all rail operations in India are handled by a state-owned company, Indian Railways, under the federal Ministry of Railways. The Indian Railways issues railway tickets for the citizens, so that they can use the rail transport facility. There are many categories of classes, for example, air-conditioned class, first class, sleeper class and general class. Each has its own features. Sleeper class is used for traveling more than a day. Reservation For long-distance travel, reservation of a berth can be done for comfortable travel up to two months prior to the date of intended travel. Details such as the name, age and concession (if eligible) are required and are recorded on the ticket. The ticket price usually includes the base fare which depends on the classification of the train (example: super-fast surcharge if the train is classified as a super-fast), the class in which one wishes to travel and the reservation charge for overnight journeys. Fare Calculation:The fare is calculated on the basis of the distance (in km) and the class Fare in A.C. Class Fare in First Class Rs. (70% of the distance) Rs. (60% of the distance) Rs. (50% of the distance) Rs. (40% of the distance)

Fare in Sleeper Class Fare in General Class -

The above is for persons less than 60 years of age. The senior citizens (persons of 60 years and above) can avail of a reduction of 15% in all the above classes.

Dept of Computer Science & Engg MGCE

Railway Ticket System

13

Confirmed List If a seat is not available, then the ticket is given a wait listed number; else the ticket is confirmed, and a berth number is printed on the ticket. RAC Some of the tickets are assigned to the RAC or Reservation against Cancellation which is between the waiting list and the confirmed list. These allow the ticket holder to board the train and obtain an allotted seat decided by a ticket collector, after the ticket collector has ascertained that there is a vacant (absentee) seat. It is a way of maximizing the number of wait-listed passengers to be accommodated in case of a cancellation. Wait-Listed Ticket A person receiving a wait listed ticket will have to wait until there are enough cancellations to enable him to move up the list and obtain a confirmed ticket. If his ticket is not confirmed on the day of departure, he may not board the train. Our project deals with the automation of the most of the processes involved in the issue of a railway ticket. These procedures are done by a ticket issuing operator. The main steps of reservation of a ticket are as follows:  Checking for availability.  Inputting details.  Processing the data.  Allotting a seat along with a class.  A PNR is formulated.  Calculation of ticket fare and printing of the ticket.

Dept of Computer Science & Engg MGCE

Railway Ticket System

14

Status In this phase, a passenger can get to know his ticket details. Most of the time, the passengers in the RAC list and the waiting list avail of this facility often, so that they can understand their priority in these lists. An additional feature is the “emergency tab” in the status page. Here any person can request the operator to type in the PNR code of any passenger, who is under serious medical condition. The emergency tab gives the contact number of this person (this is input in the reservation phase) using which the relatives or other concerned persons can be informed about the current condition of the passenger.

Cancellation In this phase, a passenger can cancel his/her ticket before 24 hours of the travel time, so as to get 85% refund. Thus, this available seat is now allotted to the passenger with the priority number 1 on the RAC list. All other priority numbers are decremented by one.

Dept of Computer Science & Engg MGCE

Railway Ticket System Journey Planner

15

It is one of the innovative ideas in this project. The journey planner usually means planning the journey. In Indian Railways, there is a journey planner entitled “Trains between stations”. But our project is aimed for a better journey planner. The connection trains provides an alternative solution, especially in the cases of festival seasons Consider an example. A person wants to go from Thiruvananthapuram to New Delhi. He can either travel in a direct train. But if there are no available seats, then he/she can opt for connection trains. That is, trains from Thiruvananthapuram to Mumbai, and then another train from Mumbai to New Delhi. Another possibility is to travel from Thiruvananthapuram to Kolkata and then Kolkata to New Delhi. Even though he/she might arrive at his/her destination some hours later, he/she will be able to travel comfortably. The passenger is asked for the starting and destination stations and the operator then display the currently available routes and trains. The passenger can choose the routes and the available trains accordingly. In the intermediate station(s), the passenger will only have to wait for 30mins-60mins in between from getting down from one train and boarding the next train. This feature can be best utilized by the government diplomats, who have to use the rail transport to attend the meetings and conferences where they have to meet on that day itself, with the tolerance of some hours. Thus, the Journey Planner is found to be very efficient.

Dept of Computer Science & Engg MGCE

Railway Ticket System SYSTEM DESIGN • • • • • Data Flow Diagram ER diagram Database Design Input Design Output Design

16

Data Flow Design (DFD): As information move through software it is modifies by a series of transformations. A data flow diagram (DFD) is a graphical technique that depicts information flow and transformations that applied as data moves from input to output. The DFD is also called Dataflow Graph or Bubble Chart. The DFD may be used to represent a system or software at any level of abstraction. DFDs may be portioned into levels that represent increasing information flow and functional details. Therefore DFD provides a mechanism for functional modeling as well as information flow modeling. A Level 0 data flow diagram, also called a fundamental system model or a context model represents the entire software as a single bubble with input and output data indicated by incoming and outgoing arrows respectively. Additional process and information flow path are represented on the level 0 data flow diagram is portioned to reveal more details.

Dept of Computer Science & Engg MGCE

Railway Ticket System

17

Context Level DFD

Choice entered by Option Select user to login as an Operator Admin /

Enter intern al

Logge d in as

Reservation /Cancellatio n /Status Edit structure of database

Logged in as Operator

Reservation
Is e su PN R

User Input

Process Request

Data Store

Chec k
If appropriate

Add to data store

Reservatio n Done

Dept of Computer Science & Engg MGCE

Railway Ticket System

18

Cancellation

User Input

Proces s Reque

Check

Delete if appropriate, else send ERROR message

Cancellation Done

Status

Data Store User Input

Chec k

Display Status

Dept of Computer Science & Engg MGCE

Railway Ticket System ENTITY RELATIONSHIP DIAGRAM (ERD)

19

PNR

i/p to new trains status

train data

cancellation

added to

Administrator

Controls

Operator

new routes

station data PNR

reservation journey planner

data fed

ticket + editing in database

stations

Train no & routes

Dept of Computer Science & Engg MGCE

Railway Ticket System Database Design:-

20

A database is an integrated collection of data files/tables related to one another in support of a common purpose. Each file in a database is made up of records, which in turn made of data elements. A database provides a working environment where we store tables/files; establish relationship between tables, set properties and data validation rules that control how the related tables work together. The database files in this program provide effective storage capacities and contribute to the overall efficiency of the program.

1. Database Name: - RTS-RESERVATION.mdb Field Name PNR User_Name Age Sex Starting_Station Destination_Station Fare Phone_Number Status Data Type Text Text Number Text Text Text Number Text AutoNumber

2. Database Name: - RTS-Station Details.mdb Field Name Station_Name Time Data Type Text Date/Time Dept of Computer Science & Engg MGCE

Railway Ticket System Kilometers Number

21

3. Database Name : - Station Index.mdb Field Name Index Station Name Station Code Data Type AutoNumber Text Text

Dept of Computer Science & Engg MGCE

Railway Ticket System

22

Input Design:Proposed software uses user-friendly graphical user interface for input purpose. Data can be easily input by the user through this screen. Repetition is avoided in data entry screen. Whenever data, which is already input, is entered again, the system alerts you with error messages. The operator can easily enter the data flexibly, thus is the striking feature of the proposed system. The beaming features of VB forms are used in the design and hence the design stands one step forward of others. The following are the various input forms.

Reservation

Dept of Computer Science & Engg MGCE

Railway Ticket System

23

Cancellation

Dept of Computer Science & Engg MGCE

Railway Ticket System

24

Status

Dept of Computer Science & Engg MGCE

Railway Ticket System

25

Journey planner

Dept of Computer Science & Engg MGCE

Railway Ticket System

26

Output Design:The Computer output is the most important of information to the user. Efficient intelligence output design would improve the system relationship with the user and help in decision making. In online applications the information is displayed on the screen. A major form of output is hard copy from the printer. Printout should be designed around the output requirement of user.

TICKET

Dept of Computer Science & Engg MGCE

Railway Ticket System

27

Journey planner

Dept of Computer Science & Engg MGCE

Railway Ticket System

28

SYSTEM IMPLEMENTATION Implementation means converting a new system into operation. The source code that is actual program is developed in this phase. In the proposed system, the source code is written in Visual Basic 6.0. The installation of the software is also done in this phase.

Testing and Modification System testing is the stages of implementation, which is aimed at ensuring that the system works accurately and efficiently before line operation commences. The following types of tests were performed after developing a test plan. The approach was to test each entity with successively large ones, up to the system level.

Program Testing A program represents the logical elements of the system. With program testing, the actual output was compared with the expected output. This test checks for syntax errors and logical errors. When there was an error, the sequence of instructions was traced and the problem was determined.

String Testing The individual program modules that work perfectly when tested alone were integrated with the related program modules to test how they interact with the total system. Dept of Computer Science & Engg MGCE

Railway Ticket System

29

System Testing System testing was designed to uncover weakness that was not found in the earlier tests. The total system was validated, as the users in the operational environment would implement it.

User Acceptance Testing This testing was performed with the objective of testing the users on the validity and reliability of the system. It was verified that the procedure operate to the specifications and also that vital data integrity was maintained.

Dept of Computer Science & Engg MGCE

Railway Ticket System

30

Administrator screenshots Login

Dept of Computer Science & Engg MGCE

Railway Ticket System

31

Add new train 1

Dept of Computer Science & Engg MGCE

Railway Ticket System

32

Add new train 2

Dept of Computer Science & Engg MGCE

Railway Ticket System

33

Add new station

Dept of Computer Science & Engg MGCE

Railway Ticket System

34

View train data

Dept of Computer Science & Engg MGCE

Railway Ticket System View train data 2

35

Dept of Computer Science & Engg MGCE

Railway Ticket System Delete Train 1

36

Dept of Computer Science & Engg MGCE

Railway Ticket System

37

Delete Train 2

Dept of Computer Science & Engg MGCE

Railway Ticket System

38

View Stations

Dept of Computer Science & Engg MGCE

Railway Ticket System

39

Edit Stations

Dept of Computer Science & Engg MGCE

Railway Ticket System SAMPLE CODE Reservation Private Sub search3() ' Checks whether source & destn are same If (txtSource = txtDestn) Then err = 1 End If End Sub Private Sub search1() ' Checks whether source is valid TrainNo = cmbTrainno Set rs1 = db1.OpenRecordset(TrainNo) rs1.MoveFirst Do Until rs1.EOF If rs1.fields(0) = txtSource.Text Then a1 = rs1.fields(2) Exit Sub Else rs1.MoveNext End If Loop err = 1 Exit Sub End Sub Private Sub search2() ' Checks whether destination is valid TrainNo = cmbTrainno Set rs2 = db1.OpenRecordset(TrainNo) rs2.MoveFirst Do Until rs2.EOF

40

Dept of Computer Science & Engg MGCE

Railway Ticket System If rs2.fields(0) = txtDestn.Text Then a2 = rs2.fields(2) Exit Sub Else rs2.MoveNext End If Loop 'MsgBox "Invalid Entry", vbOKOnly + vbCritical, "ERROR" err = 1 Exit Sub End Sub Private Sub cmdHelp_Click() TrainNo = cmbTrainno Set db2 = OpenDatabase(App.Path + "\Station Index.mdb") Set rs4 = db2.OpenRecordset("Station Index") If (cmbTrainno = "") Then MsgBox "Please Check Train Number !!!", vbOKOnly + vbCritical, "RETRY" Else frmOprOptions.Hide frmHelpReservation1.Show End If End Sub Private Sub cmdSubmit_Click() err = 0 On Error GoTo Errorhandler1 Set rs = db.OpenRecordset(cmbTrainno + cmbClass) On Error GoTo Errorhandler1

41

Dept of Computer Science & Engg MGCE

Railway Ticket System Call search1 If (err = 1) Then MsgBox "Invalid Source", vbOKOnly + vbCritical, "RETRY" Exit Sub End If Call search2 If (err = 1) Then MsgBox "Invalid Destination Entry", vbOKOnly + vbCritical, "RETRY" Exit Sub End If Call search3 If (err = 1) Then MsgBox "Source & Destination can't be same", vbOKOnly + vbCritical, "RETRY" Exit Sub End If If ((txtAge < 0) Or (txtAge > 105)) Then GoTo Errorhandler1 End If If (rs.RecordCount > -1 And rs.RecordCount < 12) Then On Error GoTo Errorhandler1 rs.AddNew

42

PNRReserve = cmbTrainno.Text + cmbClass.Text + Format(Now, "hhmmss") + Format(Now, "ddmm") rs.fields(0) = PNRReserve rs.fields(1) = txtName.Text rs.fields(2) = txtAge.Text rs.fields(3) = sx rs.fields(4) = txtSource.Text rs.fields(5) = txtDestn.Text Dept of Computer Science & Engg MGCE

Railway Ticket System If (txtPhoneNumber.Text = "") Then rs.fields(7) = "0" Else rs.fields(7) = txtPhoneNumber.Text End If Call search1 Call search2 If (cmbClass.Text = "GN") Then If (txtAge.Text < 60) Then rate = (a2 - a1) * (40 / 100) Else rate = (a2 - a1) * (40 / 100) * (85 / 100) End If If (rate < 0) Then rate = -(rate) End If rs.fields(6) = rate End If If (cmbClass.Text = "SC") Then If (txtAge.Text < 60) Then rate = (a2 - a1) * (50 / 100) Else rate = (a2 - a1) * (50 / 100) * (85 / 100) End If If (rate < 0) Then rate = -(rate) End If rs.fields(6) = rate End If If (cmbClass.Text = "FC") Then If (txtAge.Text < 60) Then

43

Dept of Computer Science & Engg MGCE

Railway Ticket System rate = (a2 - a1) * (60 / 100) Else rate = (a2 - a1) * (60 / 100) * (85 / 100) End If If (rate < 0) Then rate = -(rate) End If rs.fields(6) = rate End If If (cmbClass.Text = "AC") Then If (txtAge.Text < 60) Then rate = (a2 - a1) * (70 / 100) Else rate = (a2 - a1) * (70 / 100) * (85 / 100) End If If (rate < 0) Then rate = -(rate) End If rs.fields(6) = rate End If rs.Update NameReserve = txtName.Text AgeReserve = txtAge.Text SexReserve = sx StReserve = txtSource.Text DestReserve = txtDestn.Text classReserve = cmbClass.Text StatusReserve = "Confirmed" iResponse = MsgBox(StatusReserve, vbOKOnly + vbInformation, "SUCCESS") If (iResponse = vbOK) Then frmRESERVATION.Hide

44

Dept of Computer Science & Engg MGCE

Railway Ticket System frmTicket.Show End If Exit Sub ElseIf (rs.RecordCount > 11 And rs.RecordCount < 17) Then On Error GoTo Errorhandler1 rs.AddNew

45

PNRReserve = cmbTrainno.Text + cmbClass.Text + Format(Now, "hhmmss") + Format(Now, "ddmm") rs.fields(0) = PNRReserve rs.fields(1) = txtName.Text rs.fields(2) = txtAge.Text rs.fields(3) = sx rs.fields(4) = txtSource.Text rs.fields(5) = txtDestn.Text If (txtPhoneNumber.Text = "") Then rs.fields(7) = "0" Else rs.fields(7) = txtPhoneNumber.Text End If Call search1 Call search2 If (cmbClass.Text = "GN") Then If (txtAge.Text < 60) Then rate = (a2 - a1) * (40 / 100) Else rate = (a2 - a1) * (40 / 100) * (85 / 100) End If If (rate < 0) Then rate = -(rate) End If Dept of Computer Science & Engg MGCE

Railway Ticket System rs.fields(6) = rate ElseIf (cmbClass.Text = "SC") Then If (txtAge.Text < 60) Then rate = (a2 - a1) * (50 / 100) Else rate = (a2 - a1) * (50 / 100) * (85 / 100) End If If (rate < 0) Then rate = -(rate) End If rs.fields(6) = rate ElseIf (cmbClass.Text = "FC") Then If (txtAge.Text < 60) Then rate = (a2 - a1) * (60 / 100) Else rate = (a2 - a1) * (60 / 100) * (85 / 100) End If If (rate < 0) Then rate = -(rate) End If rs.fields(6) = rate ElseIf (cmbClass.Text = "AC") Then If (txtAge.Text < 60) Then rate = (a2 - a1) * (70 / 100) Else rate = (a2 - a1) * (70 / 100) * (85 / 100) End If If (rate < 0) Then rate = -(rate) End If rs.fields(6) = rate

46

Dept of Computer Science & Engg MGCE

Railway Ticket System Else MsgBox "Wrong Entry", vbOKOnly + vbCritical, "RETRY" End If rs.Update NameReserve = txtName.Text AgeReserve = txtAge.Text SexReserve = sx StReserve = txtSource.Text DestReserve = txtDestn.Text classReserve = cmbClass.Text StatusReserve = "RAC" iResponse = MsgBox(StatusReserve, vbOKOnly + vbInformation, "SUCCESS") If (iResponse = vbOK) Then frmRESERVATION.Hide frmTicket.Show End If Exit Sub ElseIf (rs.RecordCount > 16 And rs.RecordCount < 25) Then On Error GoTo Errorhandler1 rs.AddNew

47

PNRReserve = cmbTrainno.Text + cmbClass.Text + Format(Now, "hhmmss") + Format(Now, "ddmm") rs.fields(0) = PNRReserve rs.fields(1) = txtName.Text rs.fields(2) = txtAge.Text rs.fields(3) = sx rs.fields(4) = txtSource.Text rs.fields(5) = txtDestn.Text rs.fields(6) = "20" If (txtPhoneNumber.Text = "") Then Dept of Computer Science & Engg MGCE

Railway Ticket System rs.fields(7) = "0" Else rs.fields(7) = txtPhoneNumber.Text End If Call search1 Call search2 If (cmbClass.Text = "GN") Then If (txtAge.Text < 60) Then rate = (a2 - a1) * (40 / 100) Else rate = (a2 - a1) * (40 / 100) * (85 / 100) End If If (rate < 0) Then rate = -(rate) End If rs.fields(6) = rate End If If (cmbClass.Text = "SC") Then If (txtAge.Text < 60) Then rate = (a2 - a1) * (50 / 100) Else rate = (a2 - a1) * (50 / 100) * (85 / 100) End If If (rate < 0) Then rate = -(rate) End If rs.fields(6) = rate End If If (cmbClass.Text = "FC") Then If (txtAge.Text < 60) Then rate = (a2 - a1) * (60 / 100)

48

Dept of Computer Science & Engg MGCE

Railway Ticket System Else rate = (a2 - a1) * (60 / 100) * (85 / 100) End If If (rate < 0) Then rate = -(rate) End If rs.fields(6) = rate End If If (cmbClass.Text = "AC") Then If (txtAge.Text < 60) Then rate = (a2 - a1) * (70 / 100) Else rate = (a2 - a1) * (70 / 100) * (85 / 100) End If If (rate < 0) Then rate = -(rate) End If rs.fields(6) = rate End If rs.Update NameReserve = txtName.Text AgeReserve = txtAge.Text SexReserve = sx StReserve = txtSource.Text DestReserve = txtDestn.Text classReserve = cmbClass.Text StatusReserve = "Waiting List" iResponse = MsgBox(StatusReserve, vbOKOnly + vbInformation, "WAIT") If (iResponse = vbOK) Then frmRESERVATION.Hide frmTicket.Show

49

Dept of Computer Science & Engg MGCE

Railway Ticket System End If Exit Sub Else

50

MsgBox "Sorry ! ! ! No Reservation Available ", vbOKOnly + vbCritical, "TRY LATER" Exit Sub End If Exit Sub Exit Sub Exit Sub Exit Sub Exit Sub Errorhandler1: MsgBox "Enter Proper Data", vbOKOnly + vbCritical, "IMPROPER DATA" End Sub

Dept of Computer Science & Engg MGCE

Railway Ticket System

51

Cancellation
Private Sub approve1() 'Checks first 4 characters leftpnr1 = Left(txtPNR1.Text, 4) Set rs1 = db1.OpenRecordset("TrainDetails") rs1.MoveFirst Do Until rs1.EOF If rs1.fields(0) = leftpnr1 Then x=1 Exit Sub Else rs1.MoveNext End If Loop End Sub Private Sub approve2() 'Checks 5th & 6th characters rightpnr1 = Right(txtPNR1.Text, 2) If ((rightpnr1 = "AC") Or (rightpnr1 = "FC") Or (rightpnr1 = "SC") Or (rightpnr1 = "GN")) Then x1 = 1 End If End Sub Private Sub approve3() 'Entire PNR Check Set rs = db.OpenRecordset(txtPNR1) On Error GoTo z ' newly added rs.MoveFirst Do Until rs.EOF If rs.fields(0) = (txtPNR1.Text + txtPNR2.Text) Then x2 = 1 Dept of Computer Science & Engg MGCE

Railway Ticket System fine = (85 / 100) * (rs.fields(6)) Exit Sub Else rs.MoveNext End If Loop Exit Sub ' newly added z: MsgBox "Enter proper data", vbOKOnly + vbCritical, "RETRY" End Sub Private Sub cmdSubmit_Click() x2 = 0 x1 = 0 x=0 If (txtPNR1.Text = "" Or txtPNR2.Text = "") Then MsgBox "Enter Complete PNR ", vbOKOnly + vbCritical, "RETRY" Exit Sub Else Call approve1 If (x = 1) Then Call approve2 Else

52

MsgBox "Enter valid PNR - Check first 4 chars or afterwards", vbOKOnly + vbCritical, "RETRY" Exit Sub End If If (x1 = 1) Then Call approve3 Else MsgBox "Enter valid PNR - Check characters 5 & 6 or afterwards", vbOKOnly + vbCritical, "RETRY" Dept of Computer Science & Engg MGCE

Railway Ticket System Exit Sub End If If (x2 = 1) Then

53

Response = MsgBox("Valid PNR - Are you sure to Cancel Ticket ?", vbYesNo + vbInformation + vbDefaultButton1, "SUCCESS") Else MsgBox "Enter valid PNR - Check characters 7 to 12 ", vbOKOnly + vbCritical, "RETRY" Exit Sub End If If (Response = vbYes) Then finestring = fine finestring = "Cash Refund = " + finestring Response = MsgBox((finestring), vbOKOnly + vbInformation, "REFUND") End If If (Response = vbOK) Then rs.Delete rs.MoveNext Response = MsgBox("TICKET CANCELLED SUCCESSFULLY !!!", vbOKOnly + vbInformation + vbDefaultButton1, "SUCCESS") End If If (Response = vbOK) Then txtPNR1.Text = "" txtPNR2.Text = "" txtPNR1.SetFocus End If End If End Sub

Dept of Computer Science & Engg MGCE

Railway Ticket System Status Private Sub approve1() 'Checks first 4 characters leftpnr1 = Left(txtPNR1.Text, 4) Set rs1 = db1.OpenRecordset("TrainDetails") rs1.MoveFirst Do Until rs1.EOF If rs1.fields(0) = leftpnr1 Then x=1 Exit Sub Else rs1.MoveNext End If Loop End Sub Private Sub approve2() 'Checks 5th & 6th characters rightpnr1 = Right(txtPNR1.Text, 2)

54

If ((rightpnr1 = "AC") Or (rightpnr1 = "FC") Or (rightpnr1 = "SC") Or (rightpnr1 = "GN")) Then x1 = 1 End If End Sub Private Sub approve3() Set rs2 = db.OpenRecordset(txtPNR1) On Error GoTo z ' newly added rs2.MoveFirst Do Until rs2.EOF If rs2.fields(0) = (txtPNR1.Text + txtPNR2.Text) Then flag = 1 status = status + 1 Dept of Computer Science & Engg MGCE

Railway Ticket System statname = rs2.fields(1) statage = rs2.fields(2) statsex = rs2.fields(3) statstart = rs2.fields(4) statdestn = rs2.fields(5) stattrainno = Left(txtPNR1, 4) statPNR = rs2.fields(0) Exit Sub Else flag = 0 status = status + 1 rs2.MoveNext End If Loop Exit Sub z: MsgBox "Enter proper data", vbOKOnly + vbCritical, "RETRY" End Sub Private Sub cmdEmergency_Click() inp = InputBox("Enter Your PNR", "RTS", "", 512, 350) a = Left(inp, 6) b = Right(a, 2) a = Left(a, 4) On Error GoTo z Set rs3 = db1.OpenRecordset("TrainDetails") rs3.MoveFirst Do Until (rs3.EOF) If (rs3.fields(0) = a) Then On Error GoTo z If ((b = "AC") Or (b = "FC") Or (b = "SC") Or (b = "GN")) Then Set rs4 = db.OpenRecordset(a + b)

55

Dept of Computer Science & Engg MGCE

Railway Ticket System rs4.MoveFirst Do Until (rs4.EOF) If (rs4.fields(0) = inp) Then c = rs4.fields(7) Exit Do Else rs4.MoveNext End If Loop End If Else rs3.MoveNext End If Loop If (c = "0") Then

56

MsgBox "Sorry No Phone-number entered", vbOKOnly + vbCritical, "NOT FOUND" Else MsgBox c c = "Phone Number is " + c MsgBox c, vbOKOnly, vbInformation, "FOUND" End If Exit Sub Exit Sub z: MsgBox "Invalid PNR", vbOKOnly + vbCritical, "ERROR" End Sub Private Sub cmdSubmit_Click() flag = 0 status = 0 x=0 x1 = 0 Dept of Computer Science & Engg MGCE

Railway Ticket System If (txtPNR1.Text = "" Or txtPNR2.Text = "") Then MsgBox "Enter Complete PNR ", vbOKOnly + vbCritical, "RETRY" Exit Sub Else Call approve1 If (x = 1) Then Call approve2 Else

57

MsgBox "Enter valid PNR - Check first 4 chars or afterwards", vbOKOnly + vbCritical, "RETRY" Exit Sub End If If (x1 = 1) Then Call approve3 Else MsgBox "Enter valid PNR - Check characters 5 & 6 or afterwards", vbOKOnly + vbCritical, "RETRY" Exit Sub End If If (flag = 0) Then MsgBox "Enter proper data - Check characters 7 to 16", vbOKOnly + vbCritical, "ERROR" Exit Sub End If If ((status > 0) And (status < 13)) Then statpass = "CONFIRMED" Response = MsgBox("CONFIRMED - Do You Want to see more Details?", vbYesNo + vbInformation, "SUCCESS") ElseIf ((status > 12) And (status < 18)) Then statpass = "RAC"

Dept of Computer Science & Engg MGCE

Railway Ticket System

58

Response = MsgBox("RAC - Do You Want to see more Details?", vbYesNo + vbInformation, "SUCCESS") ElseIf ((status > 17) And (status < 26)) Then statpass = "WAITING LIST" Response = MsgBox("WAITING LIST - Do You Want to see more Details?", vbYesNo + vbInformation, "SUCCESS") Else MsgBox "Improper Data", vbOKOnly + vbCritical, "RETRY" Exit Sub End If If (Response = vbYes) Then Unload frmSTATUS Load frmSTATUS1 frmSTATUS1.Show End If If (Response = vbNo) Then Unload frmSTATUS frmOprOptions.Show End If End If End Sub

Dept of Computer Science & Engg MGCE

Railway Ticket System Administrator Coding Add Train Private Sub cmdCheck_Click() flag = 0 flag1 = 0 Set rs = db.OpenRecordset("TrainDetails") If (txtTrainno = "") Then MsgBox "Enter Train number ", vbOKOnly + vbCritical, "RETRY" Exit Sub End If If (txttrainname = "") Then MsgBox "Enter Train name ", vbOKOnly + vbCritical, "RETRY" Exit Sub End If k = txtTrainno k1 = txttrainname rs.MoveFirst Do Until rs.EOF If (txtTrainno = rs.fields(0)) Then flag = 1 End If If (txttrainname = rs.fields(1)) Then flag1 = 1 End If

59

Dept of Computer Science & Engg MGCE

Railway Ticket System

60

rs.MoveNext Loop

If (flag = 1) Then MsgBox "The Train Number already exists ! Please specify another ", vbOKOnly + vbCritical, "RETRY" Exit Sub ElseIf (flag1 = 1) Then MsgBox "The Train Name already exists ! Please specify another ", vbOKOnly + vbCritical, "RETRY" Exit Sub Else p = MsgBox("Availability Check Successful - Want to create table ", vbYesNo + vbInformation, "SUCCESS") End If Set rs = Nothing If (p = vbYes) Then cmdEnter1.Visible = True lblStstn.Visible = True txtststn.Visible = True txtsttime.Visible = True cmdHelp.Visible = True txttrainname.Locked = True txtTrainno.Locked = True txtststn.SetFocus

Dept of Computer Science & Engg MGCE

Railway Ticket System

61

Else MsgBox "No table will be created", vbOKOnly + vbCritical, "RETRY" Exit Sub End If If (Len(txtTrainno) < 5) Then ' Code for combining zeros start here zeros = Len(txtTrainno) End If If (zeros = 1) Then k2 = "000" + txtTrainno End If If (zeros = 2) Then k2 = "00" + txtTrainno End If If (zeros = 3) Then k2 = "0" + txtTrainno End If If (zeros = 4) Then k2 = txtTrainno End If ' Code for combining zeros ends here

Call addtraindetails Set rs = Nothing

Set td = db.CreateTableDef(k2) Set fields(0) = td.CreateField("Station_Name", dbText) Dept of Computer Science & Engg MGCE

Railway Ticket System Set fields(1) = td.CreateField("Time", dbDate) Set fields(2) = td.CreateField("Kilometres", dbInteger) td.fields.Append fields(0) td.fields.Append fields(1) td.fields.Append fields(2) Set oindex = td.CreateIndex With oindex .Name = "KilometresIndex" .fields.Append .CreateField("Kilometres") .Primary = True End With td.Indexes.Append oindex

62

Set rs = Nothing Set td = Nothing Set oindex = Nothing Set dbindex = Nothing Call adduserdata End Sub Private Sub addtraindetails() ' Add data in a row to TrainDetails (No+Name) Set rs = db.OpenRecordset("TrainDetails") Dept of Computer Science & Engg MGCE

Railway Ticket System On Error GoTo z1 rs.AddNew rs.fields(0) = k2 rs.fields(1) = k1 rs.Update Exit Sub z1: MsgBox "Enter proper data ", vbOKOnly + vbCritical, "RETRY" End Sub Private Sub cmdEnter1_Click() Set rs = db.OpenRecordset(nw) If (Len(txtststn) < 3) Then GoTo z2 End If On Error GoTo z2 rs.AddNew rs.fields(0) = txtststn rs.fields(1) = txtsttime rs.fields(2) = 0 rs.Update cmdEnter1.Visible = False lblStstn.Visible = False txtststn.Visible = False txtsttime.Visible = False lblEnterStation.Visible = True lblEnterTime.Visible = True lblEnterDistance.Visible = True txtStnname.Visible = True

63

Dept of Computer Science & Engg MGCE

Railway Ticket System txtTime.Visible = True txtDistance.Visible = True cmdviewdata.Visible = True cmdNext.Visible = True txttrainname.Locked = True txtTrainno.Locked = True txtStnname.SetFocus Set rs = Nothing Exit Sub z2: MsgBox "Enter proper data ", vbOKOnly + vbCritical, "RETRY" End Sub Private Sub adduserdata() nw = k2 k2 = k2 + "AC" 'Train's AC table construction starts Set td = db1.CreateTableDef(k2) Set fields(0) = td.CreateField("PNR", dbText) td.fields.Append fields(0) Set fields(1) = td.CreateField("User_Name", dbText) td.fields.Append fields(1) Set fields(2) = td.CreateField("Age", dbInteger) td.fields.Append fields(2) Set fields(3) = td.CreateField("Sex", dbText) td.fields.Append fields(3) Set fields(4) = td.CreateField("Starting_Station", dbText) td.fields.Append fields(4) Set fields(5) = td.CreateField("Destination_Station", dbText) td.fields.Append fields(5) Set fields(6) = td.CreateField("Fare", dbInteger)

64

Dept of Computer Science & Engg MGCE

Railway Ticket System td.fields.Append fields(6) Set fields(7) = td.CreateField("Phone_Number", dbText) td.fields.Append fields(7) Set fields(8) = td.CreateField("Status", dbLong) With fields(8) .Attributes = .Attributes Or dbAutoIncrField End With td.fields.Append fields(8)

65

Set oindex = td.CreateIndex With oindex .Name = "StatusIndex" .fields.Append .CreateField("Status") .Primary = True End With td.Indexes.Append oindex db1.TableDefs.Append td Set td = Nothing Set oindex = Nothing Set dbindex = Nothing 'Train's AC table construction ends k2 = nw 'restore value of k2 Dept of Computer Science & Engg MGCE

Railway Ticket System

66

k2 = k2 + "FC" 'Train's FC table construction starts Set td = db1.CreateTableDef(k2) Set fields(0) = td.CreateField("PNR", dbText) td.fields.Append fields(0) Set fields(1) = td.CreateField("User_Name", dbText) td.fields.Append fields(1) Set fields(2) = td.CreateField("Age", dbInteger) td.fields.Append fields(2) Set fields(3) = td.CreateField("Sex", dbText) td.fields.Append fields(3) Set fields(4) = td.CreateField("Starting_Station", dbText) td.fields.Append fields(4) Set fields(5) = td.CreateField("Destination_Station", dbText) td.fields.Append fields(5) Set fields(6) = td.CreateField("Fare", dbInteger) td.fields.Append fields(6) Set fields(7) = td.CreateField("Phone_Number", dbText) td.fields.Append fields(7) Set fields(8) = td.CreateField("Status", dbLong) With fields(8) .Attributes = .Attributes Or dbAutoIncrField End With td.fields.Append fields(8)

Set oindex = td.CreateIndex Dept of Computer Science & Engg MGCE

Railway Ticket System

67

With oindex .Name = "StatusIndex" .fields.Append .CreateField("Status") .Primary = True End With td.Indexes.Append oindex db1.TableDefs.Append td Set td = Nothing Set oindex = Nothing Set dbindex = Nothing 'Train's FC table construction ends k2 = nw 'restore value of k2 k2 = k2 + "SC" 'Train's SC table construction starts Set td = db1.CreateTableDef(k2) Set fields(0) = td.CreateField("PNR", dbText) td.fields.Append fields(0) Set fields(1) = td.CreateField("User_Name", dbText) td.fields.Append fields(1) Set fields(2) = td.CreateField("Age", dbInteger) td.fields.Append fields(2) Set fields(3) = td.CreateField("Sex", dbText) td.fields.Append fields(3) Set fields(4) = td.CreateField("Starting_Station", dbText) td.fields.Append fields(4) Dept of Computer Science & Engg MGCE

Railway Ticket System Set fields(5) = td.CreateField("Destination_Station", dbText) td.fields.Append fields(5) Set fields(6) = td.CreateField("Fare", dbInteger) td.fields.Append fields(6) Set fields(7) = td.CreateField("Phone_Number", dbText) td.fields.Append fields(7) Set fields(8) = td.CreateField("Status", dbLong) With fields(8) .Attributes = .Attributes Or dbAutoIncrField End With td.fields.Append fields(8)

68

Set oindex = td.CreateIndex With oindex .Name = "StatusIndex" .fields.Append .CreateField("Status") .Primary = True End With td.Indexes.Append oindex db1.TableDefs.Append td Set td = Nothing Set oindex = Nothing Dept of Computer Science & Engg MGCE

Railway Ticket System Set dbindex = Nothing 'Train's SC table construction ends k2 = nw 'restore value of k2 k2 = k2 + "GN" 'Train's GN table construction starts Set td = db1.CreateTableDef(k2) Set fields(0) = td.CreateField("PNR", dbText) td.fields.Append fields(0) Set fields(1) = td.CreateField("User_Name", dbText) td.fields.Append fields(1) Set fields(2) = td.CreateField("Age", dbInteger) td.fields.Append fields(2) Set fields(3) = td.CreateField("Sex", dbText) td.fields.Append fields(3) Set fields(4) = td.CreateField("Starting_Station", dbText) td.fields.Append fields(4) Set fields(5) = td.CreateField("Destination_Station", dbText) td.fields.Append fields(5) Set fields(6) = td.CreateField("Fare", dbInteger) td.fields.Append fields(6) Set fields(7) = td.CreateField("Phone_Number", dbText) td.fields.Append fields(7) Set fields(8) = td.CreateField("Status", dbLong) With fields(8) .Attributes = .Attributes Or dbAutoIncrField End With td.fields.Append fields(8)

69

Dept of Computer Science & Engg MGCE

Railway Ticket System

70

Set oindex = td.CreateIndex With oindex .Name = "StatusIndex" .fields.Append .CreateField("Status") .Primary = True End With td.Indexes.Append oindex db1.TableDefs.Append td Set td = Nothing Set oindex = Nothing Set dbindex = Nothing 'Train's GN table construction ends End Sub Private Sub cmdHelp_Click() Load frmHelpReservation2 frmHelpReservation2.Show End Sub Private Sub cmdNext_Click() Set rs = db.OpenRecordset(nw) If (Len(txtStnname) < 3) Then GoTo z End If On Error GoTo z rs.AddNew rs.fields(0) = txtStnname Dept of Computer Science & Engg MGCE

Railway Ticket System rs.fields(1) = txtTime rs.fields(2) = txtDistance rs.Update txtStnname = "" txtTime = "" txtDistance = "" txtStnname.SetFocus Exit Sub z: MsgBox "Enter proper data ", vbOKOnly + vbCritical, "RETRY" End Sub

71

Dept of Computer Science & Engg MGCE

Railway Ticket System

72

Delete Train
Private Sub check1() Set rs = db.OpenRecordset("TrainDetails") rs.MoveFirst Do Until rs.EOF If (p = rs.fields(0)) Then flag = 1 Exit Sub End If rs.MoveNext Loop End Sub Private Sub cmdCheck_Click() flag = 0 If (Len(txttrainno) < 4) Then MsgBox "Enter proper Train number ", vbOKOnly + vbCritical, "RETRY" Exit Sub End If p = txttrainno Set rs = db.OpenRecordset("TrainDetails") Call check1

Dept of Computer Science & Engg MGCE

Railway Ticket System

73

If (flag = 1) Then b = MsgBox("Train number found ! Want to continue?", vbYesNo + vbInformation, "FOUND") Else MsgBox "Enter proper Train number ", vbOKOnly + vbCritical, "RETRY" Exit Sub End If If (b = vbYes) Then rs.MoveFirst Do Until rs.EOF If (rs.fields(0) = p) Then rs.Delete rs.MoveNext Else rs.MoveNext End If Loop

db.TableDefs.Delete p a = p + "AC" db1.TableDefs.Delete a a = p + "FC" db1.TableDefs.Delete a a = p + "SC" db1.TableDefs.Delete a a = p + "GN" db1.TableDefs.Delete a Dept of Computer Science & Engg MGCE

Railway Ticket System

74

MsgBox "DELETED all related tables", vbOKOnly + vbInformation, "SUCCESS" Else MsgBox "No table will be deleted", vbOKOnly + vbCritical, "RETRY" End If End Sub

Dept of Computer Science & Engg MGCE

Railway Ticket System

75

Edit Train
Private Sub cmdCheck_Click() flag = 0 If (Len(txttrainno) < 4) Then MsgBox "Enter proper Train number ", vbOKOnly + vbCritical, "RETRY" Exit Sub End If p = txttrainno Set rs = db.OpenRecordset("TrainDetails") rs.MoveFirst Do Until rs.EOF If (p = rs.fields(0)) Then flag = 1 End If rs.MoveNext Loop If (flag = 1) Then b = MsgBox("Train number found ! Want to continue?", vbYesNo + vbInformation, "FOUND") Else MsgBox "Enter proper Train number ", vbOKOnly + vbCritical, "RETRY" Exit Sub End If If (b = vbYes) Then lblstncd.Visible = True txtstncd.Visible = True Dept of Computer Science & Engg MGCE

Railway Ticket System cmdEnter.Visible = True txtstncd.SetFocus txttrainno.Locked = True End If End Sub Private Sub cmdEnter_Click() z = txtstncd flag = 0 If (Len(z) < 3) Then MsgBox "Enter proper Station Code ", vbOKOnly + vbCritical, "RETRY" Exit Sub End If Set rs = db.OpenRecordset(p) rs.MoveFirst Do Until rs.EOF If (rs.fields(0) = z) Then flag = 1 End If rs.MoveNext Loop If (flag = 0) Then MsgBox "Enter proper Station Code ", vbOKOnly + vbCritical, "RETRY" Exit Sub Else

76

b = MsgBox("Station Code Matches !!! - Want to continue ?", vbYesNo + vbInformation, "SUCCESS") End If If (b = vbYes) Then lbltimeupd.Visible = True Dept of Computer Science & Engg MGCE

Railway Ticket System txtTimeupd.Visible = True lblDistupd.Visible = True txtDistupd.Visible = True lblStnupd.Visible = True txtstnupd.Visible = True cmdGenerate.Visible = True txtstnupd.SetFocus txtstncd.Locked = True End If End Sub Private Sub cmdGenerate_Click() If (Len(txtstnupd) < 3) Then GoTo z1 End If On Error GoTo z1 Set rs1 = db.OpenRecordset(p) rs1.MoveFirst Do Until rs1.EOF If (rs1.fields(0) = z) Then rs1.Edit rs1.fields(0) = txtstnupd rs1.fields(1) = txtTimeupd rs1.fields(2) = txtDistupd rs1.Update Else rs1.MoveNext End If Loop

77

Dept of Computer Science & Engg MGCE

Railway Ticket System Set rs1 = Nothing Set rs = Nothing

78

w = MsgBox("Train Time Table Updated!!! - Want to view Table ?", vbYesNo + vbInformation, "SUCCESS") If (w = vbYes) Then Set rs = db.OpenRecordset("TrainDetails") rs.MoveFirst Do Until rs.EOF If (rs.fields(0) = p) Then x = rs.fields(1) Exit Do Else rs.MoveNext End If Loop lblTrainname.Caption = x lblStncode.Visible = True lblTime.Visible = True lblDistance.Visible = True cmdGenerate.Visible = False Set rs = Nothing Set rs = db.OpenRecordset(p) rs.MoveFirst Do Until rs.EOF LstStationIndex.AddItem (((rs.fields(0) & " ---------> rs.MoveNext Loop LstStationIndex.Visible = True lblTrainname.Visible = True Dept of Computer Science & Engg MGCE ")) & (rs.fields(2)) --------> ")) & (rs.fields(1) & "

Railway Ticket System lblStnDetails.Visible = True lblTrainnumber.Visible = True lblTrainnumber.Caption = p Else MsgBox "Train Time Table Updated", vbOKOnly + vbInformation, "RTS" cmdGenerate.Visible = False End If Exit Sub z1: MsgBox "Enter proper data ", vbOKOnly + vbCritical, "RETRY" End Sub

79

Dept of Computer Science & Engg MGCE

Railway Ticket System

80

Edit Station
Private Sub cmdCheck_Click() flag = 0 If (Len(txtstncd) < 3) Then MsgBox "Enter proper Station Code ", vbOKOnly + vbCritical, "RETRY" Exit Sub End If p = txtstncd rs.MoveFirst Do Until rs.EOF If (rs.fields(2) = p) Then flag = 1 Exit Do Else rs.MoveNext End If Loop If (flag = 1) Then b = MsgBox("Station Code found ! Want to continue?", vbYesNo + vbInformation, "FOUND") Else MsgBox "Enter proper Station Code ", vbOKOnly + vbCritical, "RETRY" Exit Sub End If If (b = vbYes) Then txtstncd.Locked = True lblstncode.Visible = True lblstnname.Visible = True Dept of Computer Science & Engg MGCE

Railway Ticket System txtstnname.Visible = True txtstncode.Visible = True cmdEnter.Visible = True txtstncode.SetFocus End If End Sub Private Sub cmdEnter_Click() If (Len(txtstncode) < 3) Then GoTo z1 End If On Error GoTo z1 rs.MoveFirst Do Until rs.EOF If (rs.fields(2) = p) Then rs.Edit rs.fields(2) = txtstncode rs.fields(1) = txtstnname rs.Update Exit Do Else rs.MoveNext End If Loop

81

b = MsgBox("Station Data Updated!!! - Want to view ", vbYesNo + vbInformation, "SUCCESS") If (b = vbYes) Then txtstncode.Locked = True txtstnname.Locked = True Dept of Computer Science & Engg MGCE

Railway Ticket System cmdEnter.Visible = False lblstncde.Visible = True lblstnnme.Visible = True LstEditStations.Visible = True rs.MoveFirst Do Until rs.EOF LstEditStations.AddItem (((rs.fields(1) & " rs.MoveNext Loop Else MsgBox "No View will be displayed ", vbOKOnly + vbCritical, "RTS" txtstncode.Locked = True txtstnname.Locked = True cmdEnter.Visible = False End If Exit Sub z1: MsgBox "Enter proper Data ", vbOKOnly + vbCritical, "RETRY" End Sub -----> ")) & rs.fields(2))

82

Dept of Computer Science & Engg MGCE

Railway Ticket System

83

View Stations
Private Sub Form_Load()

Set db = OpenDatabase(App.Path + "\Station Index.mdb") Set rs = db.OpenRecordset("Station Index") rs.MoveFirst Do Until rs.EOF LstViewStations.AddItem (((rs.fields(1) & " rs.MoveNext Loop End Sub -----> ")) & rs.fields(2))

Dept of Computer Science & Engg MGCE

Railway Ticket System

84

View Train
Private Sub cmdCheck_Click() flag = 0 If (Len(txttrainno) < 4) Then MsgBox "Enter proper Train number ", vbOKOnly + vbCritical, "RETRY" Exit Sub End If p = txttrainno Set rs = db.OpenRecordset("TrainDetails") Do Until rs.EOF If (p = rs.fields(0)) Then flag = 1 x = rs.fields(0) y = rs.fields(1) End If rs.MoveNext Loop If (flag = 1) Then b = MsgBox("Train number found ! Want to continue?", vbYesNo + vbInformation, "FOUND") Else MsgBox "Enter proper Train number ", vbOKOnly + vbCritical, "RETRY" Exit Sub End If

Dept of Computer Science & Engg MGCE

Railway Ticket System If (b = vbYes) Then LstStationIndex.Visible = True lblTrainname.Visible = True lblStnDetails.Visible = True lblTrainnumber.Visible = True txttrainno.Locked = True lblStncode.Visible = True lblTime.Visible = True lblDistance.Visible = True cmdEdit.Visible = True cmdCheck.Visible = False lblTrainnumber.Caption = x lblTrainname.Caption = y Set rs1 = db.OpenRecordset(p) rs1.MoveFirst Do Until rs1.EOF LstStationIndex.AddItem (((rs1.fields(0) & " ---------> ")) & (rs1.fields(2)) rs1.MoveNext Loop Else MsgBox "No View will be displayed ", vbOKOnly + vbCritical, "RETRY" End If rs.Close Set rs = Nothing End Sub Account Status Private Sub cmdCheck_Click() -------->

85

")) & (rs1.fields(1) & "

Dept of Computer Science & Engg MGCE

Railway Ticket System t = txtpass If (Len(txtpass) < 4) Then MsgBox "Enter proper password ", vbOKOnly + vbCritical, "RETRY" Exit Sub Else

86

z = MsgBox("Are you sure ,you want to edit operator password? ", vbOKCancel + vbInformation, "RTS") End If If (z = vbOK) Then s = ((Len(t) / 2)) pk = CInt(s) pk1 = Len(t) - pk t1 = Left(t, pk) t2 = Right(t, pk1) rs.MoveFirst rs.Edit rs.fields(0) = t2 rs.fields(1) = t1 rs.Update MsgBox "Operator Password Successfully Edited ", vbOKOnly + vbInformation, "SUCCESS" Else MsgBox "Operator Password Not Edited ", vbOKOnly + vbCritical, "RETRY" End If End Sub

Dept of Computer Science & Engg MGCE

Railway Ticket System

87

DFD SYMBOLS
A procedure or information that resides outsides the boundary of system to be modified

External Entity

Proces s

A transformer of information that resides within the bounds of system to be modified

A data object, the arrowhead indicates the direction of dataflow A repository of data that’s to be stored for use by one or more processor ; may be as simple as a buffer or queue or as sophisticated as a relational database .

Data Store

Output

Symbol to denote output state

Dept of Computer Science & Engg MGCE

Railway Ticket System

88

REFERENCES
• • • • • • • Microsoft Developer Network Visual Basic 6 Black Book http://www.wikipedia.com – Free Online Encyclopedia http://www.southernrailway.org http://www.indianrailways.gov.in http://www.irctc.com Southern Railway Time-Tables

Dept of Computer Science & Engg MGCE

Railway Ticket System

89

CONCLUSION

The project entitled “Railway Ticket System” has been developed to maintain and manage all the reservation procedures include in the generation of a railway ticket for senior and non-senior citizens. We believe that, this project will help the computer operator of Indian Railways (South Zone) to carry out the railway ticket reservation, to cancel tickets and to implement the newly proposed journey planner without any difficulties, if this project is implemented in Indian Railways (South Zone). We had tried our level best to produce the project in its present form.

During the course of the project work, it was found to be very user interactive and effective than the existing system. The flexible attitude of Visual Basic helps to maintain the “Railway Ticket System” more effectively.

Dept of Computer Science & Engg MGCE

Sign up to vote on this title
UsefulNot useful