Cs Project
Cs Project
HARDWARES
1. Desktop / Laptop
2. Mobile Phone
SOFTWARES
1. Python
2. MySQL
3. Python Connector Module
S.no. Topic Page no.
1 Certi cate
2 Acknowledgement
6 MySQL Database
7 Outputs
8 References
fi
INTRODUCTION
The project RAILWAY RESERVATION SYSTEM
Objectives of the Project
The core objectives of our project are multi-faceted,
addressing the intricate needs of both administrators and
passengers within the railway ecosystem.
Administrative Functions
The Admin Panel, a focal point of the system, equips
administrators with indispensable tools:
1.The new_user()-
Function employs a systematic approach to register new
users, generating a unique user ID and storing essential
details in the MySQL database.
2.Forgot User ID
The `forgot_user_id()` function provides a mechanism for
users to retrieve their registered user IDs via email
verification, ensuring a smooth user experience.
1.Train Search
The `Train_Search()` function allows users to search for
trains based on origin and destination, providing detailed
information about available trains.
2.Book Tickets
The `Book_Ticket(uid)` function simulates the ticket
booking process, allowing users to select trains, classes,
and passengers for reservation.
3.Cancel Tickets
The `Cancel_Ticket()` function facilitates the cancellation
of booked tickets, showcasing the system's ability to
handle modifications to user bookings.
PYTHON
SOURCE CODE
1. import random
2. from tabulate import tabulate
3. import mysql.connector as con
4.dbo=con.connect(host=“localhost”,user=“root”,password="ad
min",database="train_reservation")
5. co=dbo.cursor()
#FORGET USER ID
22. def forgot_user_id():
23.dbo=con.connect(host="localhost",user="root",password="ad
min",database="train_reservation")
24. co=dbo.cursor()
25. email=input("Enter your registered email: ")
26. co.execute("select user_id from user where email_id like
'{}'".format(email))
27. emel=co.fetchall()
28. for i in emel:
29. print("Your user_id is: ",(i[0]))
# old user id
30. def old_user():
reservation")
32. co=dbo.cursor()
31.dbo=con.connect(host=“localhost”,user="root",password="ad
min",database="train_reservation")
33. print("\n---------------------------------------------------------------\n")
34. uid=input("Enter your user id: ")
35. co.execute("select user_id from user where user_id like
'{}'".format(uid))
36. b=co.fetchall()
37. c=len(b)
38. if c==0:
39. print("---------------- Your given id is not registered-----------------")
40. print("\n------------------------------------------------------------------\n")
41. print("1. Try again")
42. print("2. Forgot user id")
43. print("3. Register as a new user")
44. choose=int(input("Choose an option from above: "))
45. if choose==1:
46. old_user()
47. elif choose==2:
48. forgot_user_id()
49. elif choose==3:
50. new_user()
51. else:
52. pas=input("Enter your password: ")
53. co.execute("select password from user where password like
'{}'".format(pas))
54. n=co.fetchall()
55. for i in n:
56. if pas==(i[0]):
a. print("\n---------------------------------------------------------------\n")
b. print("-----------Welcome back sir/ma'am what's your plan
today??————-?n”)
c. passenger_panel(uid)
#ADD TRAIN
78. def add_train():
79.dbo=con.connect(host="localhost",user="root",password="ad
min",database="train_reservation")
80. co=dbo.cursor()
81. print("---------------------------------------------------------------------")
82. a=int(input("Enter train no: "))
83. b=input("Enter train name: ")
84. c=input("Enter train origin: ")
85. d=input("Enter train destination: ")
86. e=int(input("Enter train journey distance: "))
87. g=input("Enter train journey time: ")
88. h=int(input("Enter no of seats in AC: "))
89. i=int(input("Enter no of seats in SL: "))
90. j=int(input("Enter no of seats in GEN: "))
91. k=int(input("Enter price of AC: "))
92. l=int(input("Enter price of SL: "))
93. m=int(input("Enter price of GEN: "))
94. n=input("Enter days available: ")
95. print("---------------------------------------------------------------------")
96. co.execute("insert into train_schedule values
({},'{}','{}','{}',{},'{}',{},{},{},{},{},
{},'{}')".format(a,b,c,d,e,g,h,i,j,k,l,m,n))
97. print("*********You have added a new train details
successfully************")
98. dbo.commit()
# To Update train no
120. if x==1:
121. print("---------------------------------------------------------------------")
122. print("**********YOU ARE GOING TO UPDATE TRAIN
NO***********")
123. tname=input("Enter train name whose no you want to
update: ")
124. tno=int(input("Enter updated train no: "))
125. co.execute("update train_schedule set train_no={} where
train_name=‘{}'". format(tno,tname))
126. print("*******UPDATED SUCCESSFULLY********")
127. print("---------------------------------------------------------------------")
128. dbo.commit()
129. return
#BOOK TICKETS
302. def Book_Ticket(uid):
303.dbo=con.connect(host=“localhost",user="root",password="a
dmin",database="train_reservation")
304. co=dbo.cursor()
305. print("THIS IS OUR ALL TRAINS AVAILABLE \n
---------------------------------------------
------------------------")
306. op="select train_no,train_name,origin,destination from
train_schedule"
307. co.execute(op)
308. r=co.fetchall()
309. columns=[i[0] for i in co.description]
310. print(tabulate(r,headers=columns,tablefmt="fancy_grid"))
311. print("---------------------------------------------------------------------\n\n")
312. trainno=int(input("Enter your Train no: "))
313. tcktno=int(input("Enter no of seats you want to book: "))
314. print("1. AC TICKET")
315. print("2. SL TICKET")
316. print("3. GEN TICKET")
317. typ=int(input("Enter your choice of class: "))
318. if typ==1:
319. a=co.execute("select ac1_fare from train_schedule where
train_no={}".format(trainno))
320. b=co.fetchall()
321. print(b[0][0])
322. elif typ==2:
323. a=co.execute("select sl_fare from train_schedule where
train_no={}".format(trainno))
324. b=co.fetchall()
325. print(b[0][0])
326. elif typ==3:
327. a=co.execute("select gen_fare from train_schedule where
train_no={}".format(trainno))
328. b=co.fetchall()
329. print(b[0][0])
330. for i in range (tcktno):
331. cus1=input("Enter customer name: ")
332. age=int(input("Enter your age: "))
333. print("--------------- For gender M=Male, F=Female, O=Other
------------------")
334. gender=input("Enter your gender: ")
335. j=random.randint(100000,999999)
336. print("Your PNR no is: ",j)
337. cnf="Confirmed"
338. p=b[0][0]
339. co.execute("insert into booked_tickets values
(‘{}',{},{},'{}'
{},'{}'{},'{}')".format(uid,j,trainno,cus1,age,gender,p,cnf))
340. p=b[0][0]
341. amt=tcktno*p
342. print("Your total ticket price is: ",amt)
343. dbo.commit()
344. def Cancel_Ticket():
345.dbo=con.connect(host="localhost",user="root",password="a
dmin",database="train_reservation")
346. co=dbo.cursor()
347. pnr=int(input("enter pnr no. you want to cancel: "))
348. co.execute("delete from booked_tickets where
pnr_no={}".format(pnr))
349. dbo.commit()
350. print("*********** Your ticket cancelled Successfully
****************")
#PASSENGER PANEL
351. def passenger_panel(uid):
352.dbo=con.connect(host="localhost",user="root",password="a
dmin",database="train_reservation")
353. co=dbo.cursor()
354. while True:
355. print("---------------------------------------------------------------------")
356. print("******Welcome to passenger panel******")
357. print("1. Train Search")
358. print("2. Book Ticket")
359. print("3. Cancel Ticket")
360. print("4. Log out")
361. choic=int(input("Enter your choice to use: "))
362. if choic==1:
363. Train_Search()
364. elif choic==2:
365. Book_Ticket(uid)
366. elif choic==3:
367. Cancel_Ticket()
368. elif choic==4:
369. main_menu()
370. print("*****You are successfully logged out of Passenger
panel*****")
371. print("---------------------------------------------------------------------")
#Panel functions
372. def main_menu():
373. print("-----------------------------------------------------")
374. print("********WELCOME TO TRAIN RESERVATION
SYSTEM********")
375. print("1. Admin panel")
376. print("2. Passenger panel")
377. print("3. Exit")
378. ch=int(input("Enter your choice: "))
379. while True:
380. if ch==1:
381. adminpassword()
382. elif ch==2:
383. user_panel()
384. elif ch==3:
385. print("***** Thank You for using reservation system*****")
386. print("---------------------------------------------------------------------")
387. break
388. main_menu()
MY SQL
DATABASE
TRAIN TABLE
USER DETAILS
BOOKED TICKETS
OUTPUTS
TRAIN RESERvATION MAIN PAgE:
27 | P a g e
THE ADMIN lOgIN PANEl:
28 | P a g e
CANCEl TICKET:
bOOKINg TICKETS :
29 | P a g e
SEARCH TRAIN:
30 | P a g e
REFERENCES:
1. CLASS 11th& 12th Computer
Science Book
(SUMITA ARORA)
2.PYTHON
https://www.python.org/
3.MySQL
https://www.mysql.com/
4.KV Coders
https://kvcoders.in
79874: 5. IRCTC:
https://www.irctc.co.in/nget/
train-search
31 | P a g e