You are on page 1of 29

Certificate

Class: XII C Year: 2020-2021


This is to certify that this Project has been
successfully completed by Divisha Singh and
Hrishant Tripathi of Class: XII, Division: C
for the academic year 2020-2021.

EXTERNAL EXAMINER:

INTERNAL EXAMINER:

Index
1.Acknowledgement
2.Brief overview of the project
3.Hardware and software requirements
4.Coding and output
5.Bibliography

Acknowledgement
With profound sense of graduate, I express my
sincere thanks to my computer Science teacher
Ms. Anjali Rawlley for her valuable guidance and
the confidence she instilled in us, which helped me
in successful completion of this project report.
Without her suppport this project would not have
come forth.

Brief overview of the project


The Hotel booking system is designed to simplify
the day today activities of Hotel-like Check –in of
New Customer ,Checkout of customer ,Assigning
a room according to customer requirement ,and
finally compute the bill etc. which has to be
performed repeatedly on regular basis. Through
this project I aim to provide an efficient , fast,
reliable and user-friendly system.

Hardware and software requirements


HARWARE:
1.Operating system: supports all known operating
systems, such as windows, LINUX.
2. COMPUTER: 512MB+ RAM, Monitor witj
minimum resolution of 1024x768, keyboard and
mouse.

SOFTWARE:
1. Software is designed to run on any platform
above microsoft windows.

2. 27MICROSOFT, Net frameworks 4.0 or above.

Coding
MAIN CODING(WRITTEN)
import csv
import math
import os
import datetime
def ShowMenu():
print("\n\n\n\t\t############ HOTEL PARADISE ###############")
print("\n\t\t\t 1. CHECK-IN ")
print("\n\t\t\t 2. CHECK-OUT ")
print("\n\t\t\t 3. ALL ROOM STATUS ")
print("\n\t\t\t 4. OTHER EXPENSES ")
print("\n\t\t\t 5. ROOM ENQUIRY ")
print("\n\t\t\t 0. LOG OUT ")
print("\t\t#########################################")
def ShowAllRoomStatus():
with open('rooms.csv',mode='r') as csvfile:
myreader = csv.reader(csvfile,delimiter=',')
print("="*75)
print("%10s"%"FLOOR","%15s"%"ROOM NUMBER","%20s"%"ROOM
TYPE","%15s"%"ROOM STATUS",'%10s'%'RATE')
print("="*75)
for row in myreader:
if row[2]=="D":
rtype="DELUXE"
elif row[2]=="SD":
rtype="SEMI-DELUXE"
elif row[2]=="SDX":
rtype="SUPER DELUXE"
elif row[2]=="HDX":
rtype="EXECUTIVE SUITE"
if row[3]=="V":
status="VACANT"
else:
status ="OCCUPIED"
print("%10s"%row[0],"%15s"%row[1],"%20s"%rtype,"%15s"%status,'%10s'%row[4])
print("="*75)
input('Press any key...')
def CheckRoomVacant(roomno):
with open('rooms.csv',mode='r') as csvfile:
myreader = csv.reader(csvfile,delimiter=',')
found=False
for row in myreader:
if len(row)>0:
if str(row[1])==str(roomno):
found=True
return row[3],row[4]
if not found:
return 'INVALID'

input('Press any key...')


def CheckIn():
print('\n\n\t\t################# NEW VISITOR ARRIVAL #######################')
Visitor_Number=None
if os.path.exists('Visitor.csv'):
with open('Visitor.csv',mode='r') as csvfile:
myreader = csv.reader(csvfile,delimiter=',')
l = len(list(myreader))
Visitor_Number = l + 1
else:
Visitor_Number = 1
dt = datetime.datetime.now()
today = str(dt.day)+'/'+str(dt.month)+'/'+str(dt.year)+' '+str(dt.hour)+':'+str(dt.minute)
+':'+str(dt.second)
print('\n\t\t\t\t\t\t\t Today is :'+today)
print('\n\t\t Visitor Number :',Visitor_Number)
name = input('\t\t Enter Visitor Name :')
ID = input('\t\t Enter What Photo ID number :')
age = int(input('\t\t Enter Age :'))
gender = input('\t\t Choose gender 1-Male, 2-Female, 3-Transgender')
coming_from = input('\t\t Enter the Place from where person is coming :')
purpose = input('\t\t Enter purpose of Visit :')
mobile = input('\t\t Enter Mobile Number :')
c='go'
roomno=0
while c=='go':
roomno = int(input('\t\t Enter Room Number :'))
status = CheckRoomVacant(roomno)
if status[0]=='INVALID':
print('Enter Valid room number :')
elif status[0]=='V':
c='OK'
else:
print('Room Number not Vacant')
print('\t\t Check in Date and Time :',today)
print('\t\t Room Rent @'+str(status[1])+' Day')
print('\t\t Advance To Pay :'+str(status[1]))
ans = input('\n\t\t Confirm?(y)')
if ans.lower()=='y':

visitors=[Visitor_Number,name,ID,age,gender,coming_from,purpose,roomno,today,status[1],mobile]
with open('Visitor.csv','a') as vfile:
mywriter = csv.writer(vfile,delimiter=',',lineterminator='\n')
mywriter.writerow(visitors)
print('\n\t\t Checked In Successfully!')
room=[]
with open('rooms.csv','r') as rcsv:
myreader = csv.reader(rcsv,delimiter=',')
for row in myreader:
if len(row)>0:
room.append(row)
#print(row)

with open('rooms.csv','w') as rcsv:


mywriter = csv.writer(rcsv,delimiter=',',lineterminator='\n')
for i in range(len(list(room))):
if room[i][1]==str(roomno):
room[i][3]='O'
#print(room[i])
mywriter.writerow(room[i])
def OtherExpense():
print("="*30," OTHER EXPENSE SCREEN ", "="*30)
visitors=[]
with open('Visitor.csv','r') as csvroom:
myreader = csv.reader(csvroom,delimiter=',')
for row in myreader:
visitors.append(row)
vno = input('\n\t\t ENTER VISITOR NO :')
found=False
for rs in visitors:
if rs[0]==vno:
food = int(input('Enter Food Expense (0 if no expense):'))
laundry = int(input('Enter Laundry Expense (0 if no expense) :'))
misc = int(input('Enter any other expense (0 if no expense) :'))
with open('expense.csv','a') as expcsv:
mywriter = csv.writer(expcsv,delimiter=',',lineterminator='\n')
today = datetime.datetime.now()
today = str(today.day)+'/'+str(today.month)+'/'+str(today.year)
exp = [vno,food,laundry,misc,today]
mywriter.writerow(exp)
found=True
if not found:
print("\n### SORRY ROOM NUMBER NOT OCCUPIED ###")
def CheckOut():
print('\n\n')
print('='*30,' CHECK OUT SCREEN ' , '='*30)
roomstatus=[]
with open('rooms.csv','r') as csvroom:
myreader = csv.reader(csvroom,delimiter=',')
for row in myreader:
roomstatus.append(row)
rno = input('\n\t\t ENTER ROOM NO :')
found=False
vis=[]
fexp=0
lexp=0
mexp=0
total=0
oexp=0
for rs in roomstatus:

if rs[1]==rno and rs[3]=='O':


total=total + int(rs[4])
print('Checking....')
with open('Visitor.csv','r') as vcsv:
myreader = csv.reader(vcsv,delimiter=',')
for row in myreader:
if rno == row[7]:
vis = row
print("In")

with open('expense.csv','r') as ecsv:


myreader = csv.reader(ecsv,delimiter=',')
for row in myreader:
if row[0]==vis[0]:
fexp = fexp + int(row[1])
lexp = lexp + int(row[2])
mexp = mexp + int(row[3])
oexp = fexp + lexp + mexp
found=True
if not found:
print('## ROOM NOT BOOKED ##')
else:
today = datetime.datetime.now()
today = str(today.day)+'/'+str(today.month)+'/'+str(today.year)+' '+str(today.hour)
+':'+str(today.minute)+':'+str(today.second)
print('\n\n')
print('='*30,'CHECK OUT (BILL)','='*30)
print('\t\t CHECK IN DATE : ',vis[8])
print('\t\t CHECK OUT DATE :',today)
print('-'*75)
print('\t\t Visitor Number : ',vis[0])
print('\t\t Visitor Name : ',vis[1])
print('\t\t Visitor Age : ',vis[3])
g=''
if vis[4]=='1':
g='Male'
else:
g='Female'

print('\t\t Visitor Gender : ',g)

print('\t\t Coming From : ',vis[5])


print('\t\t Purpose of Visit: ',vis[6])
print('-'*75)
d1 = datetime.datetime.strptime(vis[8],"%d/%m/%Y %H:%M:%S")
d2 = datetime.datetime.strptime(today,"%d/%m/%Y %H:%M:%S")
d3 = d2-d1
day=0
if d3.days<=1:
day=1
else:
day = math.ceil(d3.days)
print('\n\t\t Total days :',day)
print('\t\t Room Rent @'+str(total)+'/Day :Rs.',total*day)
print('\t\t Food Expense :Rs.',fexp)
print('\t\t Laundry Expense :Rs.',lexp)
print('\t\t Misc. Expense :Rs.',mexp)
print('-'*75)
print('\t\t\t GRAND TOTAL : Rs.',(total+oexp))

def RoomEnquiry():
print('\n\n')
print('='*30,' VISITOR ENQUIRY SCREEN ' , '='*30)
vn = input("\n\t\t ENTER VISITOR NAME : ")
fs = "%5s %-15s %6s %10s %15s %15s %8s %-20s"
print(fs % ("VID","VISITOR NAME","AGE","GENDER","COMING
FROM","PURPOSE","ROOMNO","CHECKIN DATE"))
print("="*110)
found=False
gender=''
with open('Visitor.csv','r') as vcsv:
myreader = csv.reader(vcsv,delimiter=',')
for row in myreader:
if row[1].lower()==vn.lower():
if row[4]=='1':
gender='Male'
else:
gender='Female'
print(fs%(row[0],row[1],row[3],gender,row[5],row[6],row[7],row[8]))
found=True
print("="*110)
if not found:
print("\n\t\t\t VISITOR NAME NOT FOUND ")
choice=0
while choice!=None:
ShowMenu()
choice = int(input('\t\t\t ENTER YOUR CHOICE :'))
if choice==1:
CheckIn()
elif choice==2:
CheckOut()
elif choice==3:
ShowAllRoomStatus()
elif choice==4:
OtherExpense()
elif choice==5:
RoomEnquiry()
elif choice==0:
choice=None
print('\n\t\t\t THANK YOU! ')
else:
print('\n\t\t\t == INVALID CHOICE == ')

ROOM INFORMATION(WRITTEN)
import csv
rooms=[
["I","101","SD","V",1200],
["I","102","SD","V",1200],
["I","103","D","V",1500],
["I","104","SD","V",1200],
["I","105","SDX","V",2000],
["I","106","SD","V",1200],
["II","201","SDX","V",2000],
["II","202","SD","V",1200],
["II","203","D","V",1500],
["II","204","D","V",1500],
["II","205","SDX","V",2000],
["II","206","SD","V",1200],
["III","301","SDX","V",2000],
["III","302","HDX","V",4000],
["III","303","SDX","V",2000],
["III","304","D","V",1500],
["III","305","SDX","V",2000]]

with open('rooms.csv',mode='w') as csvfile:


mywriter = csv.writer(csvfile,delimiter=',',lineterminator='\n')
for r in rooms:
mywriter.writerow(r)

CODE
FILE FOR ROOM INFO.

 FILE FOR VISITOR INFO.


OUTPUT
############ HOTEL PARADISE ###############

1. CHECK-IN

2. CHECK-OUT

3. ALL ROOM STATUS

4. OTHER EXPENSES

5. ROOM ENQUIRY

0. LOG OUT
#########################################
ENTER YOUR CHOICE :1

################# NEW VISITOR ARRIVAL #######################

Today is :1/4/2021 0:50:50

Visitor Number : 13
Enter Visitor Name :Alok Pathak
Enter What Photo ID number :12
Enter Age :38
Choose gender 1-Male, 2-Female, 3-Transgender1
Enter the Place from where person is coming :Uttar Pradesh
Enter purpose of Visit :Business
Enter Mobile Number :9911061789
Enter Room Number :303
Check in Date and Time : 1/4/2021 0:50:50
Room Rent @2000 Day
Advance To Pay :2000

Confirm?(y)y

Checked In Successfully!

############ HOTEL PARADISE ###############

1. CHECK-IN

2. CHECK-OUT

3. ALL ROOM STATUS

4. OTHER EXPENSES

5. ROOM ENQUIRY

0. LOG OUT
#########################################
ENTER YOUR CHOICE :3
========================================================================
===
FLOOR ROOM NUMBER ROOM TYPE ROOM STATUS RATE
========================================================================
===
I 101 SEMI-DELUXE OCCUPIED 1200
I 102 SEMI-DELUXE OCCUPIED 1200
I 103 DELUXE OCCUPIED 1500
I 104 SEMI-DELUXE OCCUPIED 1200
I 105 SUPER DELUXE OCCUPIED 2000
I 106 SEMI-DELUXE VACANT 1200
II 201 SUPER DELUXE OCCUPIED 2000
II 202 SEMI-DELUXE OCCUPIED 1200
II 203 DELUXE OCCUPIED 1500
II 204 DELUXE VACANT 1500
II 205 SUPER DELUXE VACANT 2000
II 206 SEMI-DELUXE VACANT 1200
III 301 SUPER DELUXE VACANT 2000
III 302 EXECUTIVE SUITE OCCUPIED 4000
III 303 SUPER DELUXE OCCUPIED 2000
III 304 DELUXE OCCUPIED 1500
III 305 SUPER DELUXE OCCUPIED 2000
========================================================================
===
Press any key...

############ HOTEL PARADISE ###############

1. CHECK-IN

2. CHECK-OUT

3. ALL ROOM STATUS

4. OTHER EXPENSES

5. ROOM ENQUIRY

0. LOG OUT
#########################################
ENTER YOUR CHOICE :4
============================== OTHER EXPENSE SCREEN
==============================

ENTER VISITOR NO :13


Enter Food Expense (0 if no expense):1400
Enter Laundry Expense (0 if no expense) :550
Enter any other expense (0 if no expense) :1200

############ HOTEL PARADISE ###############

1. CHECK-IN

2. CHECK-OUT

3. ALL ROOM STATUS

4. OTHER EXPENSES

5. ROOM ENQUIRY

0. LOG OUT
#########################################
ENTER YOUR CHOICE :2

============================== CHECK OUT SCREEN


==============================
ENTER ROOM NO :303
Checking....
In

============================== CHECK OUT (BILL)


==============================
CHECK IN DATE : 1/4/2021 0:50:50
CHECK OUT DATE : 1/4/2021 0:52:46
---------------------------------------------------------------------------
Visitor Number : 13
Visitor Name : Alok Pathak
Visitor Age : 38
Visitor Gender : Male
Coming From : Uttar Pradesh
Purpose of Visit: Business
---------------------------------------------------------------------------

Total days :1
Room Rent @2000/Day :Rs. 2000
Food Expense :Rs. 1400
Laundry Expense :Rs. 550
Misc. Expense :Rs. 1200
---------------------------------------------------------------------------
GRAND TOTAL : Rs. 5150

############ HOTEL PARADISE ###############

1. CHECK-IN
2. CHECK-OUT

3. ALL ROOM STATUS

4. OTHER EXPENSES

5. ROOM ENQUIRY

0. LOG OUT
#########################################
ENTER YOUR CHOICE :5

============================== VISITOR ENQUIRY SCREEN


==============================

ENTER VISITOR NAME : 1


VID VISITOR NAME AGE GENDER COMING FROM PURPOSE ROOMNO
CHECKIN DATE
========================================================================
======================================
========================================================================
======================================

VISITOR NAME NOT FOUND

############ HOTEL PARADISE ###############

1. CHECK-IN

2. CHECK-OUT
3. ALL ROOM STATUS

4. OTHER EXPENSES

5. ROOM ENQUIRY

0. LOG OUT
#########################################
ENTER YOUR CHOICE :5

============================== VISITOR ENQUIRY SCREEN


==============================

ENTER VISITOR NAME : Pushkar


VID VISITOR NAME AGE GENDER COMING FROM PURPOSE ROOMNO
CHECKIN DATE
========================================================================
======================================
8 Pushkar 42 Male Bihar Holiday 304 1/4/2021 0:41:50
========================================================================
======================================

############ HOTEL PARADISE ###############

1. CHECK-IN

2. CHECK-OUT

3. ALL ROOM STATUS


4. OTHER EXPENSES

5. ROOM ENQUIRY

0. LOG OUT
#########################################
ENTER YOUR CHOICE :0

THANK YOU!
Bibliography

1. Book By Mrs. Sumita Arora


2. www.quora.com
3. Under the guidance of our subject teacher Ms.
Anjali Rawlley

You might also like