KENDRIYA SCIENCE
COMPUTER VIDYALAYA
PROJECT :
SEC-24 NOIDA
SESSION : 2020-21
SESSION: 2019-20
SUBMITTED BY: Deepak Singh Rawat,
Vivek Padiyar,Prabhu Phull
CLASS: XII-B
ROLL NO: 26, 45, 36
SUBMITTED TO: Mrs.Meena Gupta
CERTIFICATE
This is to certify that DEEPAK SINGH RAWAT
VIVEK PADIYAR , PRABHU PHULL of class XII-B
has successfully completed her project under
the guidance of subject teacher Mrs. MEENA
GUPTA from KENDRIYA VIDYALAYA SEC-24
NOIDA in partial fulfillment of Computer Science
practical examination conducted by CBSE for
session 2020-21.
Teacher’s signature :
ACKNOWLEDGEMEN
T
● It would be my utmost pleasure to
express my sincere thanks to our
Computer Science Teacher Mrs.
Meena Gupta Ma’am. In providing a
helping hand in this project. Their
valuable guidance, support and
supervision all through this project
titled “OFFICE DATABASE SYSTEM”
are responsible for attaining its
present form.I would like to thank
him for teaching us computer
science from the very basics thus
strengthening our root and making us
understand complex chapters
easily.This project has been made not
only for fetching marks but also for
knowledge.
INDEX
Sno Topic
.
1 System requirements
2 Introduction
3 Errors and its types
4 Testing
5 Maintenance
6 Flow chart of program
7 Code
8 Output
9 Bibliography
SYSTEM REQUIREMENTS
1. HARDWARE:
√ Processor
√ Keyboard
√ Minimum memory - 2GB
2. SOFTWARE:
√ Operating System –OS7, OS8
√ Python IDLE
√ MYSQL
INTRODUCTION
The purpose of the project is to
computerize the requirementof the
OFFICE DATABASE SYSTEM
and such to add an employee,
display the list of employees, search
for an employee, update an
employees. The software saves
multiple employee records and gives
option for every kind of modification
needed. It helps us to know all
information about the employees,
like which date the employee join the
office what is its designation in
company, which department it works.
“Office database System”which starts with
a manual dataentry and management deals
with many operations, now-a-days has
become a complicated and error prone job
to maintain the company’s administrative
system manually. So, we have decided to
go about computerizing their operation.
This tends to computerize the Office
Management System bystoring its
associated data in database files and thus
performing allworks related to modification
and implementation. The main aim while
implementing the project Employee
Management System were to minimize the
work and at the same time increase the
speed of the work done. The new system is
built with the following objectives: -
● Information retrieval will become easy
● Maintenance of database as well as
overall project
● Modification to the database will
become easy
ERRORS AND ITS TYPES
An error, some time called “A BUG” is anything in the code
that prevents a program from compiling and running
correctly. There are broadly three types of errors as
follows:
1. Compile- time errors: Errors that occurs during
compilation of a program is called compile time
error. It has two types as follows:
a. Syntax error: It refers to formal rules governing
the construction of valid statements in a language.
b. Semantics error: It refers to the set of rules which
give the meaning of a statement.
2. Run time Errors: Errors that occur during the
execution of program are run time errors. These are
harder to detect errors. Some run-time error stop the
execution of program which is then called program
“Crashed”.
3. Logical Errors: Sometimes, even if you don’t
encounter any error during compiling-time and
runtime, your program does not provide the correct
result. This is because of the programmer’s mistaken
analysis of the problem he or she is trying to
solve.Such errors are called logical error.
TESTING
1. Alpha Testing: It is the most common type of
testing used in the software industry. The objective of
this testing is to identify all possible issues or defects
before releasing it into the market or to the user. It is
conducted at the developer’s site.
2. Beta Testing: It is a formal type of software
testing which is carried out by the customers. It is
performed in a real environment before releasing the
products into the market for the actual end-users. It
is carried out to ensure that there are no major
failures in the software or product and it satisfies the
business requirement. Beta Testing is successful
when the customer accepts the software.
3. White Box Testing: White box testing is based on
the knowledge about the internal logic of an
application’s code. It is also known as Glass box
Testing. Internal Software and code working should
be known for performing this type of testing. These
tests are based on the coverage of the code
statements, branches, paths, conditions etc.
4. Black Box Testing: It is a software testing, method
in which the internal structure or design of the item
to be tested is not known to the tester. This method
of testing can be applied virtually to every level of the
software testing.
MAINTENANCE
Programming maintenance refers to the modifications
in the program. After it has been completed, in order to
meet changing requirement or to take care of the errors
that shown up. There are four types of maintenance:
1. Corrective Maintenance: When the program after
compilation shows error because of some
unexpected situations, untested areas such errors
are fixed up by Corrective maintenance.
2. Adaptive Maintenance: Changes in the environment
in which an information system operates may lead to
system management. To accommodate changing
needs time to time maintenance is done and is
called Adaptive maintenance.
3. Preventive Maintenance: If possible the errors could
be anticipated before they actually occur; the
maintenance is called Preventive maintenance.
4. Perfective Maintenance: In this rapidly changing
world, information technology is the fastest growing
area. If the existing system is maintained to keep
tuned with the new features, new facilities, new
capabilities, it is said to be Perfective maintenance.
FLOW CHART OF THE
PROGRAM
EXIT
CODE
from tkinter import *
from PIL import ImageTk,Image
import random
from tkinter import Toplevel,messagebox
from tkinter import ttk
import mysql.connector as m1
import time
#DATABSE CONNECTIOIN
mycon =
m1.connect(host="localhost",user="root",password='DEEPAK',data
base='company')
mycur=mycon.cursor()
#COLOUR OF SLIDER
colours= ['red','green','blue','yellow','pink','red2','gold2']
def IntroLabelColour():
fg=random.choice(colours)
S.config(fg=fg)
S.after(2,IntroLabelColour)
#MAIN SCREEN
mywin=Tk()
my_image = ImageTk.PhotoImage(file=r'C:
\Users\deepak\Downloads\OFFICE DATABASE
SYSTEM\office.jpg')
Label(mywin,image = my_image).pack()
mywin.title("OFFICE DATABASE SYSTEM")
mywin.geometry("1174x650")
mywin.iconbitmap('officedatabase.ico')
mywin.resizable(0,0)
#SLIDER
ss='WELCOME TO OFFICE DATABASE SYSTEM'
count=0
text=" "
def SliderLabel():
global count,text
if (count>=len(ss)):
count =0
text=" "
S.config(text=text)
else:
text=text+ss[count]
S.config(text=text)
count+=1
S.after(300,SliderLabel)
S=Label(mywin,text=ss,font=('Copperplate Gothic
Bold',28,'bold'),relief=RIDGE,borderwidth=5,width=40,bg='black')
S.place(x=100,y=0)
SliderLabel()
IntroLabelColour()
#DATE AND TIME CODING
def tick():
time_string= time.strftime('%H:%M:%S')
date_string=time.strftime('%d/%m/%Y')
clock.config(text='Date :'+date_string+"\n"+"Time :"+time_string)
clock.after(200,tick)
#CLOCK
clock=Label(mywin,font=('Engravers
MT',14,'bold'),relief=RIDGE,borderwidth=4,bg='yellow')
clock.place(x=0,y=0)
tick()
def login():
mycur = mycon.cursor()
u = user.get()
p = pwd.get()
query="select * from login where user='"+u+"' and
password=('"+p+"')"
mycur.execute(query)
mydata = mycur.fetchone()
#print(mydata[0],mydata[1])
if mycur.rowcount==1:
messagebox.showinfo('..:::Login','Login Successful')
mywin.destroy()
else:
messagebox.showinfo('..:::Login','Access Denied')
#SCREEN OF EMPLOYEE LOGIN
user=StringVar()
pwd=StringVar()
L=Label(mywin,text=">>>>Employee Login<<<<",bg='skyblue',
fg='white',bd=5,font=('Bodoni MT
Black',22,'bold'),width=22,relief=RIDGE,borderwidth=12)
L.place(x=420,y=200)
L1=Label(mywin,text="User Name :",bg='silver',
fg='black',bd=5,font=('Times New
Roman',22,'bold'),relief=RIDGE,borderwidth=8)
L1.place(x=420,y=268)
t1=Entry(mywin,bg='white',
fg='navy',bd=5,font=('arial',18,'bold'),textvariable=user,relief=RIDGE,
borderwidth=8)
t1.place(x=600,y=268)
L2=Label(mywin,text="Password :",bg='silver',
fg='black',bd=5,font=('Times New
Roman',22,'bold'),width=9,relief=RIDGE,borderwidth=8)
L2.place(x=420,y=320)
t2=Entry(mywin,show="*",bg='white',
fg='navy',bd=5,font=('arial',18,'bold'),textvariable=pwd,relief=RIDGE,
borderwidth=8)
t2.place(x=600,y=320)
t1.focus_set()
img1=PhotoImage(file='login1.png')
B=Button(mywin,image=img1,height=60,
width=120,relief=RIDGE,borderwidth=8,command=login)
B.place(x=600,y=400)
mywin.mainloop()
def saveRecord(ent1,ent2,ent3,ent4,addf):
global mycon,mycur
try:
query="insert into emp values({0},'{1}','{2}',
{3})".format(ent1.get(),ent2.get(),ent3.get(),ent4.get())
mycur.execute(query)
mycon.commit()
messagebox.showinfo("...:::Insert","Record Added
Successfully")
addf.lift(mywin)
except:
messagebox.showinfo("...:::Insert","## Error ##")
addf.lift(mywin)
def resetFields(eno,en,dp,sl,ent1):
eno.set('')
en.set('')
dp.set('')
sl.set('')
ent1.focus_set()
def addEmployee():
eno=StringVar()
en=StringVar()
dp=StringVar()
sl=StringVar()
addForm = Toplevel(mywin)
addForm.title("...:::New Employee Registration")
addForm.geometry("380x350+400+220")
addForm.iconbitmap("officedatabase.ico")
addForm.resizable(False,False)
lb1=Label(addForm,text="ADD EMPLOYEE
FORM",bg='black',fg='white',font=('verdana',12,'bold'),width=30)
lb1.grid(row=0,column=0, columnspan=2)
lbeno = Label(addForm,text="Employee
Number",bg='black',fg='yellow',font=('verdana',10,'bold'))
lbeno.grid(row=1,column=0,pady=10,sticky=W,padx=4)
enteno =
Entry(addForm,textvariable=eno,width=20,bg='yellow',fg='red',font=
('verdana',10,'bold'))
enteno.grid(row=1,column=1,pady=10,sticky=W)
lbname = Label(addForm,text="Employee
Name",bg='black',fg='yellow',font=('verdana',10,'bold'))
lbname.grid(row=2,column=0,pady=10,padx=4,sticky=W)
entname =
Entry(addForm,textvariable=en,width=20,bg='yellow',fg='red',font=('
verdana',10,'bold'))
entname.grid(row=2,column=1,pady=10,sticky=W)
lbdept = Label(addForm,text="Employee
Department",bg='black',fg='yellow',font=('verdana',10,'bold'))
lbdept.grid(row=3,column=0,pady=10,sticky=W,padx=4)
entdept =
Entry(addForm,textvariable=dp,width=20,bg='yellow',fg='red',font=('
verdana',10,'bold'))
entdept.grid(row=3,column=1,pady=10,sticky=W)
lbsalary = Label(addForm,text="Employee
Salary",bg='black',fg='yellow',font=('verdana',10,'bold'))
lbsalary.grid(row=4,column=0,pady=10,sticky=W,padx=4)
entsalary =
Entry(addForm,textvariable=sl,width=20,bg='yellow',fg='red',font=('
verdana',10,'bold'))
entsalary.grid(row=4,column=1,pady=10,sticky=W)
addForm.lift()
Button(addForm,text="Save",command=lambda:saveRecord(enten
o,entname,entdept,entsalary,addForm),width=10,bg='brown',fg='wh
ite',font=('verdana',10,'bold')).grid(row=5,column=0)
Button(addForm,text="Clear",command=lambda:resetFields(eno,en
,dp,sl,enteno),bg='brown',fg='white',font=('verdana',10,'bold'),width=
10).grid(row=5,column=1)
Button(addForm,text="Close
Me!",command=addForm.destroy,width=20,bg='black',fg='white',fo
nt=('verdana',10,'bold')).grid(row=6,column=0,columnspan=2,pady=
5)
def findRecord(eno,en,dp,sl,edf):
global mycon,mycur
e = eno.get()
query="select * from emp where empno={0}".format(e)
mycur.execute(query)
mydata = mycur.fetchone()
if mycur.rowcount>0:
en.set(mydata[1])
dp.set(mydata[2])
sl.set(mydata[3])
else:
messagebox.showinfo('Not Found','No Matching Employee
Number')
edf.lift(mywin)
def updateRecord(eno,en,dp,sl,edf):
global mycon,mycur
query="update emp set dept='{0}',salary={1} where
empno={2}".format(dp.get(),sl.get(),eno.get())
mycur.execute(query)
mycon.commit()
messagebox.showinfo('Update','Record Updated successfully!')
edf.lift(mywin)
def UpdateEmployee():
eno=StringVar()
en=StringVar()
dp=StringVar()
sl=StringVar()
UpdateForm = Toplevel(mywin)
UpdateForm.title("...:::Update Employee Form")
UpdateForm.geometry("450x350+400+220")
UpdateForm.iconbitmap("officedatabase.ico")
UpdateForm.resizable(False,False)
lb1=Label(UpdateForm,text="UPDATE EMPLOYEE
FORM",bg='black',fg='white',font=('verdana',12,'bold'),width=30)
lb1.grid(row=0,column=0, columnspan=2)
lbeno = Label(UpdateForm,text="Employee
Number",bg='black',fg='yellow',font=('verdana',10,'bold'))
lbeno.grid(row=1,column=0,pady=10,sticky=W,padx=4)
Button(UpdateForm,text="Find",command=lambda:findRecord(eno,
en,dp,sl,UpdateForm)).grid(row=1,column=2)
enteno =
Entry(UpdateForm,textvariable=eno,width=20,bg='yellow',fg='red',fo
nt=('verdana',10,'bold'))
enteno.grid(row=1,column=1,pady=10,sticky=W)
lbname = Label(UpdateForm,text="Employee
Name",bg='black',fg='yellow',font=('verdana',10,'bold'))
lbname.grid(row=2,column=0,pady=10,padx=4,sticky=W)
entname =
Entry(UpdateForm,textvariable=en,width=20,bg='yellow',fg='red',fon
t=('verdana',10,'bold'))
entname.grid(row=2,column=1,pady=10,sticky=W)
lbdept = Label(UpdateForm,text="Employee
Department",bg='black',fg='yellow',font=('verdana',10,'bold'))
lbdept.grid(row=3,column=0,pady=10,sticky=W,padx=4)
entdept =
Entry(UpdateForm,textvariable=dp,width=20,bg='yellow',fg='red',fo
nt=('verdana',10,'bold'))
entdept.grid(row=3,column=1,pady=10,sticky=W)
lbsalary = Label(UpdateForm,text="Employee
Salary",bg='black',fg='yellow',font=('verdana',10,'bold'))
lbsalary.grid(row=4,column=0,pady=10,sticky=W,padx=4)
entsalary =
Entry(UpdateForm,textvariable=sl,width=20,bg='yellow',fg='red',font
=('verdana',10,'bold'))
entsalary.grid(row=4,column=1,pady=10,sticky=W)
UpdateForm.lift()
Button(UpdateForm,text="Update",command=lambda:updateRecor
d(enteno,entname,entdept,entsalary,UpdateForm),width=10,bg='br
own',fg='white',font=('verdana',10,'bold')).grid(row=5,column=0)
Button(UpdateForm,text="Clear",command=lambda:resetFields(en
o,en,dp,sl,enteno),bg='brown',fg='white',font=('verdana',10,'bold'),wi
dth=10).grid(row=5,column=1)
Button(UpdateForm,text="Close
Me!",command=UpdateForm.destroy,width=20,bg='black',fg='white
',font=('verdana',10,'bold')).grid(row=6,column=0,columnspan=2,pa
dy=5)
def deleteRecord(eno,en,dp,sl,ldf):
global mycon,mycur
response = messagebox.askquestion('Delete?','Are You Sure to
Delete ?')
ldf.lift(mywin)
if response=='yes':
query="delete from emp where empno={0}".format(eno.get())
mycur.execute(query)
mycon.commit()
messagebox.showinfo('Deleted','Record Deleted
Successfully!')
ldf.lift(mywin)
def deleteEmployee():
eno=StringVar()
en=StringVar()
dp=StringVar()
sl=StringVar()
delForm = Toplevel(mywin)
delForm.title("...:::Delete Employee Form")
delForm.geometry("450x350+400+220")
delForm.iconbitmap("officedatabase.ico")
delForm.resizable(False,False)
lb1=Label(delForm,text="DELETE EMPLOYEE
FORM",bg='black',fg='white',font=('verdana',12,'bold'),width=30)
lb1.grid(row=0,column=0, columnspan=2)
lbeno = Label(delForm,text="Employee
Number",bg='black',fg='yellow',font=('verdana',10,'bold'))
lbeno.grid(row=1,column=0,pady=10,sticky=W,padx=4)
Button(delForm,text="Find",command=lambda:findRecord(eno,en,d
p,sl,delForm)).grid(row=1,column=2)
enteno =
Entry(delForm,textvariable=eno,width=20,bg='yellow',fg='red',font=(
'verdana',10,'bold'))
enteno.grid(row=1,column=1,pady=10,sticky=W)
lbname = Label(delForm,text="Employee
Name",bg='black',fg='yellow',font=('verdana',10,'bold'))
lbname.grid(row=2,column=0,pady=10,padx=4,sticky=W)
entname =
Entry(delForm,textvariable=en,width=20,bg='yellow',fg='red',font=('
verdana',10,'bold'))
entname.grid(row=2,column=1,pady=10,sticky=W)
lbdept = Label(delForm,text="Employee
Department",bg='black',fg='yellow',font=('verdana',10,'bold'))
lbdept.grid(row=3,column=0,pady=10,sticky=W,padx=4)
entdept =
Entry(delForm,textvariable=dp,width=20,bg='yellow',fg='red',font=('
verdana',10,'bold'))
entdept.grid(row=3,column=1,pady=10,sticky=W)
lbsalary = Label(delForm,text="Employee
Salary",bg='black',fg='yellow',font=('verdana',10,'bold'))
lbsalary.grid(row=4,column=0,pady=10,sticky=W,padx=4)
entsalary =
Entry(delForm,textvariable=sl,width=20,bg='yellow',fg='red',font=('v
erdana',10,'bold'))
entsalary.grid(row=4,column=1,pady=10,sticky=W)
delForm.lift()
Button(delForm,text="Delete",command=lambda:deleteRecord(ent
eno,entname,entdept,entsalary,delForm),width=10,bg='brown',fg='
white',font=('verdana',10,'bold')).grid(row=5,column=0)
Button(delForm,text="Clear",command=lambda:resetFields(eno,en,
dp,sl,enteno),bg='brown',fg='white',font=('verdana',10,'bold'),width=
10).grid(row=5,column=1)
Button(delForm,text="Close
Me!",command=delForm.destroy,width=20,bg='black',fg='white',fon
t=('verdana',10,'bold')).grid(row=6,column=0,columnspan=2,pady=5
)
def searchEmployee():
eno=StringVar()
en=StringVar()
dp=StringVar()
sl=StringVar()
searchForm = Toplevel(mywin)
searchForm.title("...:::Search Employee Form")
searchForm.geometry("450x350+400+220")
searchForm.iconbitmap("officedatabase.ico")
searchForm.resizable(False,False)
lb1=Label(searchForm,text="SEARCH EMPLOYEE
FORM",bg='black',fg='white',font=('verdana',12,'bold'),width=30)
lb1.grid(row=0,column=0, columnspan=2)
lbeno = Label(searchForm,text="Employee
Number",bg='black',fg='yellow',font=('verdana',10,'bold'))
lbeno.grid(row=1,column=0,pady=10,sticky=W,padx=4)
Button(searchForm,text="Find",command=lambda:findRecord(eno,
en,dp,sl,searchForm)).grid(row=1,column=2)
enteno =
Entry(searchForm,textvariable=eno,width=20,bg='yellow',fg='red',fo
nt=('verdana',10,'bold'))
enteno.grid(row=1,column=1,pady=10,sticky=W)
lbname = Label(searchForm,text="Employee
Name",bg='black',fg='yellow',font=('verdana',10,'bold'))
lbname.grid(row=2,column=0,pady=10,padx=4,sticky=W)
entname =
Entry(searchForm,textvariable=en,width=20,bg='yellow',fg='red',fon
t=('verdana',10,'bold'))
entname.grid(row=2,column=1,pady=10,sticky=W)
lbdept = Label(searchForm,text="Employee
Department",bg='black',fg='yellow',font=('verdana',10,'bold'))
lbdept.grid(row=3,column=0,pady=10,sticky=W,padx=4)
entdept =
Entry(searchForm,textvariable=dp,width=20,bg='yellow',fg='red',fon
t=('verdana',10,'bold'))
entdept.grid(row=3,column=1,pady=10,sticky=W)
lbsalary = Label(searchForm,text="Employee
Salary",bg='black',fg='yellow',font=('verdana',10,'bold'))
lbsalary.grid(row=4,column=0,pady=10,sticky=W,padx=4)
entsalary =
Entry(searchForm,textvariable=sl,width=20,bg='yellow',fg='red',font
=('verdana',10,'bold'))
entsalary.grid(row=4,column=1,pady=10,sticky=W)
searchForm.lift()
Button(searchForm,text="Clear",command=lambda:resetFields(eno
,en,dp,sl,enteno),bg='brown',fg='white',font=('verdana',10,'bold'),widt
h=10).grid(row=5,column=1)
Button(searchForm,text="Close
Me!",command=searchForm.destroy,width=20,bg='black',fg='white'
,font=('verdana',10,'bold')).grid(row=6,column=0,columnspan=2,pa
dy=5)
def showAll():
global mycon,mycur
allForm = Toplevel(mywin)
allForm.title("...::: All Employee Details")
allForm.geometry("500x500+400+200")
allForm.iconbitmap("officedatabase.ico")
query="select * from emp"
mycur.execute(query)
ta = Text(allForm,height=30,width=80)
ta.grid(row=0,column=0)
records = mycur.fetchall()
heading="%10s"%"EMPNO"+"%20s"%"NAME"+"%20s"%"DEPARTME
NT"+"%10s"%"SALARY"+'\n'
ta.insert(END,heading)
ta.insert(END,"="*70)
ta.insert(END,'\n')
for row in records:
rec = "%10s"%str(row[0])
+"%20s"%row[1]+"%20s"%row[2]+"%10s"%str(row[3])+'\n'
ta.insert(END,rec)
ta.config(state=DISABLED)
def aboutUS():
aboutmessage=''' DEVELOPERS :\n
1.DEEPAK SINGH RAWAT \n 2.VIVEK\n 3.PRABHU\n
Class:- 12th - B
Address:- KV Sec-24 noida UP 201301
U can direct E-Mail Us at : dr6653653@gmail.com'''
messagebox.showinfo('...::::About US',aboutmessage)
def ext(): #extemp= EXIT
res=messagebox.askyesnocancel('NOTIFICATION','Do you want
to EXIT?')
if(res==True):
mywin.destroy()
#MAIN SCREEN for emp database
mywin=Tk()
my_image = ImageTk.PhotoImage(file=r'C:
\Users\deepak\Downloads\OFFICE DATABASE
SYSTEM\office2.jpg')
Label(mywin,image = my_image).pack()
mywin.title("Employee Database Screen")
mywin.geometry("800x650")
mywin.iconbitmap('officedatabase.ico')
mywin.resizable(0,0)
Def=Frame(mywin,bg='black',relief=GROOVE,borderwidth=5)
Def.place(x=0,y=100,width=300,height=540)
L=Label(mywin,text="--------CHOOSE ONE OPTION-------",bg='white',
fg='black',bd=5,font=('CAMBRIA',16,'bold'),width=24,relief=RIDGE,b
orderwidth=9)
L.place(x=0,y=50)
#BUTTONS FOR EMPLOYEE FRAME
B1=Button(Def,text=(' ADD EMPLOYERS
'),width=20,relief=RIDGE,font=('CAMBRIA',14,'bold'),bg='lawn green'
,bd=5,activebackground='blue',activeforeground='white',com
mand=addEmployee)
B1.pack(side=TOP,expand=True)
B2=Button(Def,text=(' Update EMP. DATA
'),width=20,relief=RIDGE,font=('CAMBRIA',14,'bold'),bg='lawn green'
,bd=6,activebackground='blue',activeforeground='white',com
mand=UpdateEmployee)
B2.pack(side=TOP,expand=True)
B3=Button(Def,text=(' DELETE EMP. DATA
'),width=20,relief=RIDGE,font=('CAMBRIA',14,'bold'),bg='lawn green'
,bd=6,activebackground='blue',activeforeground='white',com
mand=deleteEmployee)
B3.pack(side=TOP,expand=True)
B4=Button(Def,text=(' SEARCH EMP. DATA
'),width=20,relief=RIDGE,font=('CAMBRIA',14,'bold'),bg='lawn green'
,bd=6,activebackground='blue',activeforeground='white',com
mand=searchEmployee)
B4.pack(side=TOP,expand=True)
B5=Button(Def,text=(' SHOW ALL DATA
'),width=20,relief=RIDGE,font=('CAMBRIA',14,'bold'),bg='lawn green'
,bd=6,activebackground='blue',activeforeground='white',com
mand=showAll)
B5.pack(side=TOP,expand=True)
B6=Button(Def,text=(' ABOUT THE
DEVELOPERS' ),width=20,relief=RIDGE,font=('CAMBRIA',14,'bold'),b
g='lawn green'
,bd=6,activebackground='blue',activeforeground='white',com
mand=aboutUS)
B6.pack(side=TOP,expand=True)
B7=Button(Def,text=(' EXIT
'),width=20,relief=RIDGE,font=('CAMBRIA',14,'bold'),bg='lawn green'
,bd=6,activebackground='blue',activeforeground='white',com
mand=ext)
B7.pack(side=TOP,expand=True)
mywin.mainloop()
OUTPUT SCREEN
#MAINSCREEN OF LOGIN
#MAINSCREEN OF DATABASE
#MAINSCREEN OF ADD EMPLOYEE FORM
#MAINSCREEN OF UPDATE EMPLOYEE FORM
#MAINSCREEN OF DELETE EMPLOYEE FORM
#MAINSCREEN OF SEARCH EMPLOYEE FORM
#MAINSCREEN OF SHOW ALL EMPLOYEE
DETAILS
#MAINSCREEN of about the developers
BIBLOGRAPHY
1.Computer scienceWith Python-
ClassXII
By: SumitaArora
2.Website:https://
www.w3resource.com
3