Project Introduction
Project Introduction
Certificate
This is to certify that ________________ of class Xll Sc. has
successfully completed the Informatic Practices project on the topic
“Hotel Management System”, as per guidelines of Class Xll Board
Examination conducted by CBSE. It is further certified that this project
is individual and bona fide work of the candidate.
___________________________ _________________________
Principal
_____________________________
Acknowledgement
1. Guest Booking
2. Guest Details
3. Point of sale
4. Telephony
5. Accounts receivable
6. Sales and Marketing
7. Banquets
8. Event Management
9. And many more features
One has to use the data management software, software has been an ascent in
atomization various organisations. Many software products working are now in markets,
which have helped in making the organizations work easier and efficiently. Data
management initially had to maintain a lot of ledgers and a lot of paper work has to be
done but now software work has to be done but now software product on this organization
has made their work faster and easier. Now only this software has to be loaded on the
computer and work can be done.
This prevents a lot of time and money. The work becomes fully automated and any
information regarding the organization can be obtained by clicking the button. Moreover,
now it’s an age of computers and automating such an organization gives the better look.
PICTORIAL REPRESENTATION OF
SDLC
Further define and refine the functional and data requirements and document
them in the Requirements Documents.
Complete business process reengineering of the functions to be supported
(i.e., verify what information drives the business process, what information is
generated, who generates it, where does the information go, and who processes it).
Develop detailed data and process models (system inputs, outputs, and the process).
Develop the test and evaluation requirements that will be used to determine
acceptable system performance.
These include :
Testing at the development facility by the contractor and possibly supported by end
users.
Testing as a developed system wit end users working together with contract
personnel.
Operational testing by the end user alone performing all functions.
Requirements are traced throughout testing, a final Independent Verification &
Validation evaluation is performed and all documentation is reviewed and accepted
prior to acceptance of the system.
**** IMPLEMENTATION PHASE
This phase is initiated after the system has been tested and accepted by the user.
In this phase, the system is installed to support the intended business functions. System
performance is compared to performance objectives established during the planning phase.
Implementation includes user notification, user training, installation of hardware,
installation of software onto production computers, and integration of the system into
daily work processes. This phase continues until the system is operating in production in
accordance with the defined user requirements.
MSI
SOFTWARE REQUIREMENTS
Windows OS
Python
MySQL connector module
pandas library
matplotlib
MySQL
BRIEF OVERVIEW OF THE SOFTWARE
REQUIRED
**** Python
Python is a high-level, general-purpose programming language known for its
simplicity and readability, making it one of the most popular programming languages today.
Created by Guido van Rossum and first released in 1991, Python has grown into a versatile
tool used in various domains, from web development to data analysis, artificial intelligence
(AI), automation, and more.
1. Simple and Readable Syntax: Python's syntax is designed to be clean and easy to
understand, resembling plain English, which reduces the learning curve for beginners.
2. Interpreted Language: Python is an interpreted language, meaning you can execute
code line-by-line, which makes debugging easier.
3. Dynamically Typed: Variables in Python do not need explicit declaration of their
types; the interpreter automatically determines the type based on the value
assigned.
4. Object-Oriented: Python supports object-oriented programming (OOP) paradigms,
which help organize code into reusable and modular structures (classes and objects).
5. Extensive Standard Library: Python comes with a vast standard library that supports
everything from file handling, internet protocols, and regular expressions to GUI
development, making it easy to develop applications.
6. Cross-Platform: Python is cross-platform, meaning code written on one operating
system (e.g., Windows) can be run on another (e.g., macOS or Linux) without changes.
7. Large Community and Ecosystem: Python has an extensive ecosystem of libraries
and frameworks, such as NumPy for numerical computations, Django for web
development, and TensorFlow for machine learning. The active community ensures
continuous updates and support.
1. Data Structures:
o Series: A one-dimensional array-like structure, similar to a list or a column in a
spreadsheet. It can hold any data type and has a labelled index, making data
retrieval efficient.
o DataFrame: A two-dimensional table-like structure, similar to an Excel
spreadsheet or SQL table. It consists of rows and columns, each column being
a Series. The DataFrame is the most commonly used data structure in Pandas.
2. Data Manipulation:
o Pandas allows you to load, clean, manipulate, and analyze large datasets easily.
You can handle missing data, filter rows and columns, group data, and even
join/merge datasets.
3. Handling Missing Data:
o Pandas provides methods to handle missing or null values, including filling
missing values (fillna()), dropping missing values (dropna()), and replacing
values (replace()).
4. Data Indexing and Selection:
o Pandas offers powerful indexing and selection methods, like .loc[], .iloc[],
and .at[], which make it easy to access specific rows and columns in a
DataFrame.
5. Aggregation and Grouping:
o Pandas provides methods like groupby() to group data by one or more keys,
allowing for efficient data aggregation and summary statistics (like mean, sum,
count, etc.).
6. Data Cleaning:
o You can perform tasks such as removing duplicates, renaming columns, replacing
or removing values, transforming data types, and reshaping data using methods
like pivot() and melt().
7. Data Import and Export:
o Pandas can easily read and write data from multiple file formats, such as CSV,
Excel, JSON, HTML, and SQL databases. Functions like read_csv() and
to_excel() make it seamless to load and save data.
8. Time Series Support:
o Pandas has extensive support for time series data, including functions to
resample, shift, and handle date ranges.
o
9. Integration with Other Libraries:
o Pandas works well with other data science libraries like NumPy, Matplotlib, and
Seaborn, allowing for efficient data manipulation, analysis, and visualization.
1. Versatile Plotting: Matplotlib supports a variety of plot types, including line plots, bar
charts, scatter plots, histograms, pie charts, error bars, and box plots. This makes it
suitable for visualizing different kinds of data.
2. Highly Customizable: Almost every aspect of a plot can be customized in Matplotlib,
such as the colour, style, labels, titles, legends, axes, ticks, and even the layout. This
flexibility allows you to create publication-quality visualizations.
3. Subplots and Grid Layouts: Matplotlib allows you to create multiple plots in a single
figure using subplots, which can be arranged in various grid layouts, making it
easier to compare multiple datasets side by side.
4. Interactive Visualizations: With the integration of matplotlib.pyplot and tools like
Jupyter notebooks, Matplotlib provides support for interactive visualizations,
where you can zoom, pan, and update plots dynamically.
5. Integration with Other Libraries: Matplotlib integrates well with other data
analysis and scientific computing libraries such as NumPy, Pandas, and Seaborn,
allowing you to visualize data directly from data structures like Pandas
DataFrames or NumPy arrays.
6. 3D Plotting: With the use of the mplot3d toolkit, Matplotlib can generate 3D
visualizations, which are useful for representing data with three dimensions.
7. Exporting and Sharing: Matplotlib allows you to save visualizations in a variety of
formats, including PNG, PDF, SVG, and more, making it easy to share your plots
across different platforms.
**** MySQL
MySQL is an open-source relational database management system (RDBMS)
that is widely used for storing, managing, and retrieving data. Developed and maintained by
Oracle Corporation, MySQL uses Structured Query Language (SQL) for database
management, making it popular for web applications, data warehousing, and many other
types of database-driven applications.
1. Relational Database Management: MySQL organizes data into tables (rows and
columns) and supports relationships between tables, such as one-to-one, one-to-many,
and many-to-many, allowing for efficient data structuring and querying.
2. SQL-Based:
o MySQL uses Structured Query Language (SQL), a standard language for
managing and manipulating databases. SQL commands like SELECT, INSERT,
UPDATE, DELETE, and JOIN are used to interact with the data.
3. Open Source:
o MySQL is open source, meaning it’s free to use and has a large developer
community contributing to its development. You can also find a paid
enterprise version with additional features and support.
4. Cross-Platform:
o MySQL works on a variety of platforms, including Windows, macOS, and
Linux, making it suitable for cross-platform applications.
5. Performance and Scalability:
o MySQL is known for its speed and reliability, even when handling large
amounts of data. It can scale to handle enterprise-level databases with
millions of rows.
6. Storage Engines:
o MySQL supports multiple storage engines, such as InnoDB (which supports
transactions and foreign keys) and MyISAM (known for speed and simplicity).
This flexibility allows you to choose the right engine based on your use case.
7. Transactions:
o MySQL supports transactions, which allow you to execute a series of SQL
operations as a single unit. If any operation fails, you can roll back the entire
transaction, ensuring data integrity.
o
8. Replication and Clustering:
o MySQL supports replication, where data from one MySQL database (master)
is copied to another (slave) for backup, performance, or availability purposes.
It also supports clustering for high availability and load balancing.
9. Backup and Recovery: MySQL has tools for database backups, recovery, and
replication, making it suitable for mission-critical applications where data safety is
paramount.
Screenshot
And Coding in
MySQL
Creating a database
Creating tables :
Guest
Staff
# Creating a database
mysql> create database hotel;
def guest():
print("\t----> 1. Show all the records of guest ")
print("\t----> 2. Add records of guest")
print("\t----> 3. Search records ")
print("\t----> 4. Delete records of guest")
print("\t----> 5. Graphical representation ")
print("\t----> 6. Update the records")
x=int(input("Enter the choice of no. : "))
if x==1:
showallrecords()
elif x==2:
addrecords()
elif x==3:
search()
elif x==4:
delete()
elif x==5:
guestgr()
elif x==6:
changerecord()
elif x!=[1,2,3,4,5,6]:
print("\t\tINVAILD INPUT")
def guestgr():
print("\t----> 1. Rooms booked ")
print("\t----> 2. Source of booking")
x=int(input("Enter the no. : "))
if x==1:
roomgraph()
elif x==2:
sobgraph()
elif x!=[1,2]:
print("\t\tINVAILD INPUT")
def roomgraph():
import pymysql
import matplotlib.pyplot as plt
d1=pymysql.connect(host="localhost",user="root",passwd="tiger",database="hotel")
c1=d1.cursor()
quer='''select count(*) from guest where type_of_room="Budget";'''
c1.execute(quer)
x=c1.fetchone()
lst=list(x)
quer='''select count(*) from guest where type_of_room="Elite";'''
c1.execute(quer)
y=c1.fetchone()
lst1=list(y)
quer='''select count(*) from guest where type_of_room="Royal";'''
c1.execute(quer)
z=c1.fetchone()
lst2=list(z)
quer='''select count(*) from guest where type_of_room="Ultra Royal";'''
c1.execute(quer)
a=c1.fetchone()
lst3=list(a)
lstt=lst+lst1+lst2+lst3
y=["Budget","Elite","Royal","Ultra Royal"]
plt.bar(y,lstt,width=0.50)
plt.xlabel("types of rooms")
plt.ylabel("no. of rooms")
plt.show()
def sobgraph():
import pymysql
import matplotlib.pyplot as plt
d1=pymysql.connect(host="localhost",user="root",passwd="tiger",database="hotel")
c1=d1.cursor()
quer='select count(*) from guest where source_of_booking="online";'
c1.execute(quer)
x=c1.fetchone()
lst=list(x)
quer="select count(*) from guest where source_of_booking='offline';"
c1.execute(quer)
y=c1.fetchone()
lst1=list(y)
lstt=lst+lst1
y=["online","offline"]
plt.bar(y,lstt,width=0.50)
plt.xlabel("source of booking")
plt.ylabel("no. of rooms")
plt.show()
def showallrecords():
import pymysql
import pandas as pd
pd.set_option('display.expand_frame_repr',False)
d1=pymysql.connect(host="localhost",user="root",passwd="tiger",database="hotel")
c1=d1.cursor()
query="select * from guest;"
df=pd.read_sql(query,d1)
print(df)
def addrecords():
import pymysql
import pandas as pd
d1=pymysql.connect(host="localhost",user="root",passwd="tiger",database="hotel")
c1=d1.cursor()
ans1="yes"
while ans1=="yes":
for i in range(1,5001):
x=i
quer2="select * from guest where guestid=%d" %x
c1.execute(quer2)
if c1.rowcount==0:
ans1="no"
break
y=input("Enter the guest name : ")
an="yes"
while an=="yes":
print ("\nWe have the following rooms for you :-")
print ("===> 1. Budget ----> Rs. 10000 + extra charges")
print ("===> 2. Elite ----> Rs. 15000 + extra charges")
print ("===> 3. Royal ----> Rs. 20000 + extra charges")
print ("===> 4. Ultra Royal ----> Rs. 25000 + extra charges")
print(" ")
v=input("Enter the type of room you want to book : ")
if v=="Budget":
an="no"
elif v=="Elite":
an="no"
elif v=="Royal":
an="no"
elif v=="Ultra Royal":
an="no"
else:
print("\t\tINVAILD INPUT")
r=int(input("Enter the no. of nights you want to stay : "))
ci=input("Enter the check in date : ")
co=input("Enter the check out date : ")
ans3="yes"
while ans3=="yes":
a=input("Enter the source of booking : ")
if a=="offline":
ans3="nooo"
elif a=="online":
ans3="nooo"
else:
print("\t\tINVALID INPUT")
ans2="yes"
if v=="Budget":
while ans2=="yes":
for i in range(1001,2001):
c=i
quer2="select * from guest where room_no=%d" %c
c1.execute(quer2)
if c1.rowcount==0:
ans2="no"
break
elif v=="Elite":
while ans2=="yes":
for i in range(2001,3001):
c=i
quer2="select * from guest where room_no=%d" %c
c1.execute(quer2)
if c1.rowcount==0:
ans2="no"
break
elif v=="Royal":
while ans2=="yes":
for i in range(3001,4001):
c=i
quer2="select * from guest where room_no=%d" %c
c1.execute(quer2)
if c1.rowcount==0:
ans2="no"
break
elif v=="Ultra Royal":
while ans2=="yes":
for i in range(4001,5001):
c=i
quer2="select * from guest where room_no=%d" %c
c1.execute(quer2)
if c1.rowcount==0:
ans2="no"
break
if v=="Budget":
b=(10000*r)+(10000*r*9/50)
elif v=="Elite":
b=(15000*r)+(15000*r*9/50)
elif v=="Royal":
b=(20000*r)+(20000*r*9/50)
elif v=="Ultra Royal":
b=(25000*r)+(25000*r*9/50)
quer="Insert into guest values(%d,'%s','%s',%d,'%s','%s',%d,'%s',%d);"%(x,y,v,r,ci,co,c,a,b)
c1.execute(quer)
d1.commit()
print("\t\tRECORD ADDED")
f=input("Want to see the added record : ")
if f=="yes":
quer="select * from guest where guestid=%d;"%x
c1.execute(quer)
rec=c1.fetchone()
gid,gname,roomtype,days,checkin,checkout,roomno,sourceofbooking,payment=rec
print("----->Guest Id = %d"%gid, "----->Guest Name = %s"%gname,
"----->Type of Room = %s"%roomtype, "----->No. of days booked = %d"%days,
"----->Check in date = %s"%checkin, "----->Check out date = %s"%checkout,
"----->Room _ No. alloted = %d"%roomno,
"----->Source of Booking = %s"%sourceofbooking, "----->Net Payment =
%d"%payment,sep="\n")
else:
print("\t\tTHANK YOU !!!! ")
def search():
import pymysql
import pandas as pd
d1=pymysql.connect(user="root",host="localhost",passwd="tiger",database="hotel")
c1=d1.cursor()
print("\t----> 1. Id ")
print("\t----> 2. Name ")
print("\t----> 3. Source of booking")
print("\t----> 4. Room no. ")
print("\t----> 5. date ")
print("\t----> 6. Type of room")
cho=int(input("Enter the no. : "))
if cho==1:
pd.set_option('display.expand_frame_repr',False)
x=int(input("Enter the id : "))
quer="select * from guest where guestid='%d';" %x
df=pd.read_sql(quer,d1)
print(df)
elif cho==2:
pd.set_option('display.expand_frame_repr',False)
x=input("Enter the name : ")
quer="select * from guest where nameofguest='%s';" %x
df=pd.read_sql(quer,d1)
print(df)
elif cho==3:
pd.set_option('display.expand_frame_repr',False)
x=input("Enter the source of booking : ")
quer="select * from guest where source_of_booking='%s';" %x
df=pd.read_sql(quer,d1)
print(df)
elif cho==4:
pd.set_option('display.expand_frame_repr',False)
x=int(input("Enter the room no : "))
quer="select * from guest where room_no='%d';" %x
df=pd.read_sql(quer,d1)
print(df)
elif cho==5:
pd.set_option('display.expand_frame_repr',False)
x=input("Enter the date : ")
quer="select * from guest where cidate='%s';"%x
df=pd.read_sql(quer,d1)
print(df)
elif cho==6:
pd.set_option('display.expand_frame_repr',False)
x=input("Enter the type of Room:")
quer="select * from guest where type_of_room='%s'" %x
df=pd.read_sql(quer,d1)
print(df)
else:
print("\t\tINVAILD INPUT")
def delete():
import pymysql
d1=pymysql.connect(host="localhost",user="root",passwd="tiger",database="hotel")
c1=d1.cursor()
x=int(input("Enter the id : "))
quer="delete from guest where guestid=%d;" %x
rowcount=c1.execute(quer)
if rowcount>0:
d1.commit()
print("\t\tRECORD DELETED")
else:
print("\t\tNO RECORD FOUND !!!!")
def changerecord():
import pymysql
import pandas as pd
pd.set_option('display.expand_frame_repr',False)
d1=pymysql.connect(user="root",host="localhost",passwd="tiger",database="hotel")
c1=d1.cursor()
guid=int(input("Enter the id : "))
quer="select * from guest where guestid=%d" %guid
c1.execute(quer)
if c1.rowcount>0:
row=list(c1.fetchone())
df=pd.read_sql(quer,d1)
print(df)
print("\t----> 1. Name of guest ")
print("\t----> 2. Source of booking ")
print("\t----> 3. Date ")
print("\t----> 4. Type of room")
cr=int(input("Enter the no : "))
if cr==1:
y=input("Enter the new name of guest : ")
quer="update guest set nameofguest='%s'where guestid=%d" %(y,guid)
c1.execute(quer)
d1.commit()
print("\t\tRECORD CHANGED")
elif cr==2:
y=input("Enter the new source guest : ")
quer="update guest set source_of_booking='%s' where guestid=%d" %(y,guid)
c1.execute(quer)
d1.commit()
print("\t\tRECORD CHANGED")
elif cr==3:
y=input("Enter the new date : ")
quer="update guest set cidate='%s' where guestid=%d" %(y,guid)
c1.execute(quer)
d1.commit()
print("\t\tRECORD CHANGED")
elif cr==4:
y=input("Enter the new type of room : ")
quer="update guest set type_of_room='%s'where guestid=%d" %(y,guid)
c1.execute(quer)
d1.commit()
quer4="select nofdays from guest where guestid=%d" %(guid)
c1.execute(quer4)
r=list(c1.fetchone())
ans2="yes"
if y=="Budget":
while ans2=="yes":
for i in range(1001,2001):
c=i
quer2="select * from guest where room_no=%d" %c
c1.execute(quer2)
if c1.rowcount==0:
ans2="no"
break
elif y=="Elite":
while ans2=="yes":
for i in range(2001,3001):
c=i
quer2="select * from guest where room_no=%d" %c
c1.execute(quer2)
if c1.rowcount==0:
ans2="no"
break
elif y=="Royal":
while ans2=="yes":
for i in range(3001,4001):
c=i
quer2="select * from guest where room_no=%d" %c
c1.execute(quer2)
if c1.rowcount==0:
ans2="no"
break
elif y=="Ultra Royal":
while ans2=="yes":
for i in range(4001,5001):
c=i
quer2="select * from guest where room_no=%d" %c
c1.execute(quer2)
if c1.rowcount==0:
ans2="no"
break
quer1="update guest set room_no='%d'where guestid=%d" %(c,guid)
c1.execute(quer1)
d1.commit()
if y=="Budget":
b=10000*r[0]+(10000*r[0]*9/50)
elif y=="Elite":
b=15000*r[0]+(15000*r[0]*9/50)
elif y=="Royal":
b=20000*r[0]+(20000*r[0]*9/50)
elif y=="Ultra Royal":
b=25000+r[0]+(25000*r[0]*9/50)
quer2="update guest set netpay=%d where guestid=%d" %(b,guid)
c1.execute(quer2)
d1.commit()
print("\t\tRECORD CHANGED")
elif cr!=[1,2,3,4,5,6,7]:
print("\t\tINVAILD INPUT")
elif c1.rowcount==0:
print("\t\tNO RECORD FOUND TO CHANGE !!!!")
def staff():
print("\t----> 1. Show all the records of staff ")
print("\t----> 2. Add records of staff")
print("\t----> 3. Search records of staff ")
print("\t----> 4. Delete records of staff")
print("\t----> 5. Graphical representation")
print("\t----> 6. Update the records")
x=int(input("Enter the choice of no. : "))
if x==1:
allrecords()
elif x==2:
addrecordss()
elif x==3:
searchrec()
elif x==4:
deleterec()
elif x==5:
staffgr()
elif x==6:
changerec()
elif x!=[1,2,3,4,5,6]:
print("\t\tINVAILD INPUT")
def staffgr():
print("\t----> 1. Department ")
print("\t----> 2. Salary")
x=int(input("Enter the no. : "))
if x==1:
deptgraph()
elif x==2:
salgraph()
def deptgraph():
import pymysql
import matplotlib.pyplot as plt
d1=pymysql.connect(host="localhost",user="root",passwd="tiger",database="hotel")
c1=d1.cursor()
quer="select count(*) from staff where department='management';"
c1.execute(quer)
x=c1.fetchone()
lst=list(x)
quer="select count(*) from staff where department='cleaning';"
c1.execute(quer)
y=c1.fetchone()
lst1=list(y)
quer="select count(*) from staff where department='service';"
c1.execute(quer)
z=c1.fetchone()
lst2=list(z)
lstt=lst+lst1+lst2
y=["management","cleaning","service"]
plt.bar(y,lstt)
plt.xlabel("department")
plt.ylabel("no. of staff")
plt.show()
def salgraph():
import pymysql
import matplotlib.pyplot as plt
d1=pymysql.connect(host="localhost",user="root",passwd="tiger",database="hotel")
c1=d1.cursor()
quer="select count(*) from staff where salary=10000;"
c1.execute(quer)
x=c1.fetchone()
lst=list(x)
quer="select count(*) from staff where salary=15000;"
c1.execute(quer)
y=c1.fetchone()
lst1=list(y)
quer="select count(*) from staff where salary=20000;"
c1.execute(quer)
z=c1.fetchone()
lst2=list(z)
lstt=lst+lst1+lst2
y=["10000","15000","20000"]
plt.bar(y,lstt)
plt.xlabel("salary")
plt.ylabel("no.ofstaff")
plt.show()
def addrecordss():
import pymysql
d1=pymysql.connect(host="localhost",user="root",passwd="tiger",database="hotel")
c1=d1.cursor()
print("\t----> 1. Cleaning ")
print("\t----> 2. Service ")
print("\t----> 3. Management")
print("")
ans1="yes"
while ans1=="yes":
for i in range(1,201):
x=i
quer2="select * from staff where sid=%d"%x
c1.execute(quer2)
if c1.rowcount==0:
ans1="no"
break
y=input("Enter the name : ")
a=input("Enter the department : ")
if a=="Cleaning":
j=10000
elif a=="Service":
j=15000
elif a=="Management":
j=20000
z=input("Enter the hiredate : ")
quer="Insert into staff values(%d,'%s','%s',%d,'%s');" %(x,y,a,j,z)
c1.execute(quer)
d1.commit()
print("RECORD ADDED")
f=input("Want to see the added record : ")
if f=="yes":
quer="select * from staff where sid=%d;"%x
c1.execute(quer)
rec=c1.fetchone()
sid,sname,dept,sal,Hdate=rec
print("----->Staff Id = %d"%sid,"----->Staff Name = %s"%sname,
"----->Depatment = %s"%dept,"----->Salary = %d"%sal,
"----->Hire Date = %s"%Hdate,sep="\n")
else:
print("\t\tTHANK YOU !!!!")
def deleterec():
import pymysql
d1=pymysql.connect(host="localhost",user="root",passwd="tiger",database="hotel")
c1=d1.cursor()
x=int(input("Enter the id : "))
quer="delete from staff where sid=%d;" %x
rowcount=c1.execute(quer)
if rowcount>0:
d1.commit()
print("\t\tRECORD DELETED")
else:
print("\t\tNO RECORD FOUND !!!!")
def searchrec():
import pymysql
import pandas as pd
d1=pymysql.connect(host="localhost",user="root",passwd="tiger",database="hotel")
c1=d1.cursor()
print("\t----> 1. Id ")
print("\t----> 2. Name ")
print("\t----> 3. Dept ")
print("\t----> 4. Salary ")
print("\t----> 5. Hiredate")
cho=int(input("Enter the no. : "))
if cho==1:
pd.set_option('display.expand_frame_repr',False)
x=int(input("enter the id:"))
quer="select * from staff where sid='%d';" %x
df=pd.read_sql(quer,d1)
print(df)
elif cho==2:
pd.set_option('display.expand_frame_repr',False)
x=input("enter the name:")
quer="select * from staff where sname='%s';" %x
df=pd.read_sql(quer,d1)
print(df)
elif cho==3:
pd.set_option('display.expand_frame_repr',False)
x=input("enter the dept:")
quer="select * from staff where department='%s';" %x
df=pd.read_sql(quer,d1)
print(df)
elif cho==4:
pd.set_option('display.expand_frame_repr',False)
x=int(input("enter the salary:"))
quer="select * from staff where salary=%d;" %x
df=pd.read_sql(quer,d1)
print(df)
elif cho==5:
pd.set_option('display.expand_frame_repr',False)
x=input("Enter the hire date : ")
quer="select * from staff where Hdate='%s';" %x
df=pd.read_sql(quer,d1)
print(df)
elif cho!=[1,2,3,4,5]:
print("\t\tINVAILD INPUT")
def changerec():
import pymysql
import pandas as pd
d1=pymysql.connect(user="root",host="localhost",passwd="tiger",database="hotel")
c1=d1.cursor()
sid=int(input("Enter the id : "))
quer="select * from staff where sid=%d" % sid
dfgg=pd.read_sql(quer,d1)
print(dfgg)
c1.execute(quer)
if c1.rowcount>0:
print("\t----> 1. Name ")
print("\t----> 2. Department ")
print("\t----> 3. Hire date")
cr=int(input("Enter the no : "))
if cr==1:
y=input("Enter the name : ")
quer="update staff set sname='%s' where sid=%d" %(y,sid)
c1.execute(quer)
d1.commit()
print("\t\tRECORD UPDATED")
elif cr==2:
y=input("Enter the deparment : " )
quer="update staff set department='%s' where sid=%d" %(y,sid)
c1.execute(quer)
d1.commit()
if y=="Cleaning":
j=10000
elif y=="Service":
j=15000
elif y=="Managment":
j=20000
quer1="update staff set salary='%d' where sid=%d" %(j,sid)
c1.execute(quer1)
d1.commit()
print("\t\tRECORD UPDATED")
elif cr==3:
y=input("enter the hiredate : ")
quer="update staff set Hdate='%s'where sid=%d" %(y,sid)
c1.execute(quer)
d1.commit()
print("\t\tRECORD UPDATED")
elif c1.rowcount==0:
print("\t\tINVAILD INPUT")
def allrecords():
import pymysql
import pandas as pd
d1=pymysql.connect(host="localhost",user="root",passwd="tiger",database="hotel")
c1=d1.cursor()
quer="select * from staff;"
df=pd.read_sql(quer,d1)
print(df)
while ans=="yes":
if usr=="Princy" and psswd=="1716":
print("")
print("")
print("Select what are you interested in : ")
print("\t\t\t-->1.Guest records ")
print("\t\t\t-->2.Staff records ")
print("\t\t\t-->3.Exit")
print("")
x=int(input("Enter your choice : "))
if x==1:
guest()
elif x==2:
staff()
elif x==3:
quit()
elif x!=[1,2,3]:
print("\t\tINVAILD INPUT")
ans=input("Want to Continue : ")
Output of the
program
## Login page