BRIGHT MINDS VIDYODAYA-CBSE
Senior secondary school
Walajapet-sholinghur Road
Keelpudupet
Walajah-632513
ACADEMIC SESSION: 2022-2023
AISSCE COMPUTER SCIENCE
INVESTIGATORY PROJECT
TOPIC:RAILWAY RESERVATION SYSTEM
Submitted by:
Mr.E. Akash samuel
Class:XII
Reg.No:
Bright Minds Vidyodaya
Walajah
Submitted to:
Mrs.S.Mahalakshmi
PGT in Computer Science
Bright Minds Vidyodaya
Walajah
BRIGHT MINDS VIDYODAYA-CBSE
Senior secondary school
Walajapet-sholinghur Road
Keelpudupet
Walajah-632513
BONAFIDE CERTIFICATE
REGISTER NO:
This is to certify that …………………………………………..
has successfully carried out the project titled
………………………………………………………………………………………, in fulfillment of
his/her investigatory Project in Computer Science during the year
2022-2023.
INTERNAL EXAMINER EXTERNAL EXAMINER
PRINCIPAL SCHOOL
Acknowledgement
It given us immense pleasure to acknowledge all the
wonderful people who have been instrumental in making
this project a reality.
It must express special gratitude to our beloved principal
Mrs.R.Lakshmi MBA.,B.Ed., for her support.
I would like to profusely thank our Computer Science
teacher Mrs.Mahalakshmi M.Sc.,M.Ed., for her invaluable
guidance and patience throughout duration of this project
Signature of the Student
TABLE OF CONTENTS [ T O C ]
PAGE
SER DESCRIPTION
NO
01 INTRODUCTION 1
02 OBJECTIVES OF THE PROJECT 1
03 SOURCE CODE 4
04 OUTPUT 10
05 TESTING 15
06 BIBLIOGRAPHY 16
RAILWAY RESERVATION SYSTEM
INTRODUCTION
The railway reservation system system is basically a
database based project done with help of python language.
This project is very use full for the people to book or cancel
train tickets by sitting at home with one cell phone in their
hand. This project can be modified for various reservations.
OBJECTIVES OF THE PROJECT
The objective of this project is to let the students apply
the programming knowledge into a real- world
situation/problem and exposed the students how
programming skills helps in developing a good software.
• Write programs utilizing modern software tools.
• Apply object oriented programming principles
effectively when developing small to medium sized
projects.
• Write effective procedural code to solve small to
medium sized problems.
• Students will demonstrate a breadth of knowledge in
computer science, as exemplified in the areas of
systems, theory and software development.
• Students will demonstrate ability to conduct a research
or applied Computer Science project, requiring writing
and presentation skills which exemplify scholarly style in
computer science.
SOURCE CODE
FILE NAME : TABLES
import mysql.connector as mysql
mycon=mysql. connect(host='localhost',user='
root',passwd=’123456')
cursor=mycon.cursor()
s1="create database railway"
cursor.execute(s1)
s1="create table railway(name varchar(100),phno
varchar(15) primary key,age int(4),gender
varchar(50),from_f varchar(100),to_t
varchar(100),date_d varchar(20))"
cursor.execute(s1)
s1="create table user_accounts(fname
varchar(100),lname varchar(100),user_name
varchar(100) ,password varchar(100) primary
key, phno varchar(15),gender
varchar(50),dob varchar(50),age
varchar(4))"
cursor.execute(s1)
FILE NAME : MAIN
import mysql.connector as mysql
mycon=mysql.connect(host='localhost',user='root', passwd='123456',database='railway')
cursor=mycon.cursor()
def menu():
print('1.YES')
print('2.NO')
ch=int(input('DO YOU WANT TO CONTINUE OR NOT:'))
while ch==1:
print("WELECOME TO ONLINE RAILWAY RESERVATION SYSTEM")
print('1.SIGN IN')
print('2.SIGN UP')
print('3.DELETE ACCOUNT')
print('4.EXIT')
ch1=int(input('ENTER YOUR CHOICE:'))
if ch1==1:
a=checking()
if a==True:
print('WELCOME')
main()
else:
continue
elif ch1==2:
a=checking_1()
if a==True:
main()
else:
print('PASSWORD ALREADY EXISTS')
continue
elif ch1==3:
c=checking_2()
if c==True:
print("ACCOUNT DELETED")
continue
else:
print('YOUR PASSWAORD OR USER_NAME IS INCORRECT')
continue
elif ch1==4:
print('THANK YOU')
break
else:
print('ERROR 404:PAGE NOT FOUND')
break
def main():
print('1.yes')
print('2.no')
c=int(input("do you want to continue or not:"))
while (c==1):
print(' 1.TICKET BOOKING',"\n", '2.TICKET CHECKING',"\n",'3.TICKET CANCELLING'"\
n",'4.ACCOUNT DETAILS',"\n",'5.LOG OUT')
ch=int(input('enter ur choice:'))
if ch==1:
ticket_booking()
elif ch==2:
ticket_checking()
elif ch==3:
ticket_cancelling()
elif ch==4:
checking_3()
elif ch==5:
print('THANK YOU')
break
else:
print('ERROR 404: ERROR PAGE NOT FOUND')
def ticket_booking():
nm=input('enter your name:')
phno=input('enter your phone number:')
age=int(input('enter your age:'))
print(' M=MALE','\n','F=FEMALE','\n','N=NOT TO MENTION')
gender=input('enter your gender:')
Gender=gender.upper()
fr=input('enter ur starting point:')
to=input('enter your destination:')
date1=input('enter date(dd):')
date2=input('enter month(mm):')
date3=input('enter year(yyyy):')
date=date1+"/"+date2+"/"+date3
a={'M':'MALE','F':'FEMALE','N':'NOT TO MENTION'}
v=a[Gender]
s1="insert into railway values ('{}',{},{},'{}','{}','{}','{}')".format(nm,phno,age,v,fr,to,date)
cursor.execute(s1)
print('BOOKED SUCCESSFULLY')
def ticket_checking():
print('1.yes')
print('2.no')
ch=int(input("do you want to continue or not:"))
if ch==1:
phno=int(input('enter your phnone number:'))
try:
s1="select * from railway where phno=phno"
cursor.execute(s1)
data=cursor.fetchall()[0]
Data=list(data)
a=['NAME','PHONE,NUMBER','AGE','GENDER','STARTING POINT','DESTINATION','DATE',]
print(a[0],'::::',Data[0].upper())
print(a[1],'::::',Data[1])
print(a[2],'::::',Data[2])
print(a[3],'::::',Data[3].upper())
print(a[4],'::::',Data[4].upper())
print(a[5],'::::',Data[5].upper())
print(a[6],'::::',Data[6])
except:
print('TICKET DOES NOT EXISTS')
elif ch==2:
print('THANK YOU')
else:
print('ERROR 404:PAGE NOT FOUND')
def ticket_cancelling():
print('1.yes')
print('2.no')
ch=int(input("do you want to continue or not:"))
if ch==1:
phno=input('enter your phone number:')
s1="delete from railway where phno=phno"
cursor.execute(s1)
print('TICKET CANCELLED')
elif ch==2:
print('THANK YOU')
else:
print('ERROR 404:PAGE NOT FOUND')
def checking_2():
a=input('USER NAME:')
b=input('PASS WORD:')
try:
s1="select user_name from user_accounts where password='{}'".format(b)
cursor.execute(s1)
data=cursor.fetchall()[0]
data=list(data)
if data[0]==a:
print('IS THIS YOUR ACCOUNT')
s1="select user_name from user_accounts where password='{}'".format(b)
c1="select fname,lname from user_accounts where password='{}'".format(b)
cursor.execute(c1)
data1=cursor.fetchall()[0]
data1=list(data1)
data1=data1[0]+' '+data1[1]
cursor.execute(s1)
data=cursor.fetchall()[0]
data=list(data)
if data[0]==a:
x=['FIRST NAME','LAST NAME','PHONE NUMBER','GENDER','DATE OF BIRTH','AGE']
s1="select fname,lname,phno,gender,dob,age from user_accounts where
password='{}'".format(b)
cursor.execute(s1)
data=cursor.fetchall()[0]
data=list(data)
print(x[0],':::',data[0])
print(x[1],':::',data[1])
print(x[2],':::',data[2])
print(x[3],':::',data[3])
print(x[4],':::',data[4])
print(x[5],':::',data[5])
print('1.yes')
print('2.no')
vi=int(input('enter your choice:'))
if vi==1:
b1="delete from user_accounts where password = '{}'".format(b)
cursor.execute(b1)
return True
elif vi==2:
print('SORRY,RETRY')
else:
print('ERROR 404:PAGE NOT fOUND')
else:
return False
except:
print('ACCOUNT DOES NOT EXIST')
def checking_1():
f=input("FIRST NAME:")
l=input("LAST NAME:")
a=input('USER NAME:')
b=input('PASS WORD:')
c=input('RE-ENTER YOUR PASS WORD:')
ph=input("PHONE NUMBER:")
print('M=MALE','\n','F=FEMALE','\n','N=NOT TO MENTION')
gen=input('ENTER YOUR GENDER:')
print("ENTER YOR DATE OF BIRTH")
d=input("DD:")
o=input("MM:")
p=input("YYYY:")
dob=d+'/'+o+'/'+p
age=input('YOUR AGE:')
v={'m':'MALE','f':'FEMALE','n':'NOT TO MENTION'}
if b==c:
try:
c1="insert into user_accounts
values('{}','{}','{}','{}','{}','{}','{}','{}')".format(f,l,a,b,ph,v[gen],dob,age)
cursor.execute(c1)
print('WELCOME',f,l)
return True
except:
print('PASSWORD ALREADY EXISTS')
return False
else:
print('BOTH PASSWORDS ARE NOT MATCHING')
def checking():
a=input('USER NAME:')
b=input('PASS WORD:')
try:
s1="select user_name from user_accounts where password='{}'".format(b)
c1="select fname,lname from user_accounts where password='{}'".format(b)
cursor.execute(c1)
data1=cursor.fetchall()[0]
data1=list(data1)
data1=data1[0]+' '+data1[1]
cursor.execute(s1)
data=cursor.fetchall()[0]
data=list(data)[0]
if data==a:
print(' HII ',data1)
return True
else:
return False
except:
print('ACCOUNT DOES NOT EXIST')
def checking_3():
a=input('USER NAME:')
b=input('PASS WORD:')
try:
s1="select user_name from user_accounts where password='{}'".format(b)
c1="select fname,lname from user_accounts where password='{}'".format(b)
cursor.execute(c1)
data1=cursor.fetchall()[0]
data1=list(data1)
data1=data1[0]+' '+data1[1]
cursor.execute(s1)
data=cursor.fetchall()[0]
data=list(data)
if data[0]==a:
x=['FIRST NAME','LAST NAME','PHONE NUMBER','GENDER','DATE OF BIRTH','AGE']
s1="select fname,lname,phno,gender,dob,age from user_accounts where
password='{}'".format(b)
cursor.execute(s1)
data=cursor.fetchall()[0]
data=list(data)
print(x[0],':::',data[0])
print(x[1],':::',data[1])
print(x[2],':::',data[2])
print(x[3],':::',data[3])
print(x[4],':::',data[4])
print(x[5],':::',data[5])
else:
return False
except:
print('ACCOUNT DOES NOT EXIST')
menu()
OUTPUT
CHOOSE YOUR WINDOW:
IF CHOICE IS 1:
(SIGN IN)
IF CHOICE IS 2:
(SIGN UP)
IF CHOICE IS 3:
(DELETE ACCOUNT)
IF CHOICE IS 4:
(EXIT)
CHOICE LIST AFTER SIGN IN:
IF CHOICE IS 1:
(TICKET BOOKING)
IF CHOICE IS 2:
(TICKET CHECKING)
IF CHOICE IS 3:
(TICKET CANCELLING)
IF CHOICE IS 4:
(ACCOUNT DETAILS)
IF CHOICE IS 5:
(LOG OUT)
TESTING
Software Testing is an empirical investigation conducted to provide
stakeholders with information about the quality of the product or
service under test[1] , with respect to the context in which it is
intended to operate. Software Testing also provides an objective,
independent view of the software to allow the business to
appreciate and understand the risks at implementation of the
software. Test techniques include, but are not limited to, the
process of executing a program or application with the intent of
finding software bugs.
It can also be stated as the process of validating and verifying that
a software program/application/product meets the business and
technical requirements that guided its design and development, so
that it works as expected and can be implemented with the same
characteristics. Software Testing, depending on the testing method
employed, can be implemented at any time in the development
process, however the most test effort is employed after the
requirements have been defined and coding process has been
completed.
TESTING METHODS
Software testing methods are traditionally divided into black
box testing and white box testing. These two approaches are used
to describe the point of view that a test engineer takes when
designing test cases.
BLACK BOX TESTING
Black box testing treats the software as a "black box," without
any knowledge of internal implementation. Black box testing
methods include: equivalence partitioning, boundary value
analysis, all-pairs testing, fuzz testing, model-based testing,
traceability matrix, exploratory testing and specification-based
testing.
WHITE BOX TESTING
White box testing, by contrast to black box testing, is
when the tester has access to the internal data structures and
algorithms (and the code that implement these)
BIBLIOGRAPHY
1.Computer science With Python - Class XI AND XII
By : Sumita Arora
2.Website: https://www.w3resource.com