Employee Database System
Project To main employee data like empno, name and salary
Operations:
========
Add record
Display All Records
Search a record by Roll no
Search a record by name
delete a record
Modify a record
Functions:
add_record()
heading()
display_all()
display_all2()
search_empno()
search_name()
delete_empno()
delete_name()
update_empno()
login()
main()
"""
Binary File
To maintain Bank details like
empno
name
sal
Operations:
Add record
Display All Records
Search a record by empno
Search a record by name
delete a record
Modify a record
Update record
"""
import os
import pickle
from getpass import getpass
#add_record() : to add a new record
def add_record():
#take input for employee details
try:
if os.path.isfile("emp"):
print("file is present")
f=open("emp","ab")
else:
print("file is not present, has to be created")
f=open("emp","wb")
#empno=input("Enter Employee No ")
#name=input("Enter name ")
#sal=input("Enter Salary ")
#input of data with validation
#empno no input
while True:
z=0
empno=input("Enter empno (4 digit) :")
if not empno.isdigit():
print("empno Has to be Numeric")
input("Press Enter to input again...")
z=1
continue
if not (int(empno)>=1000 and int(empno)<=9999):
print("empno Has to be in 4 digitsd")
input("Press Enter to input again...")
z=1
continue
if z!=1:
break
# Name input
while True:
z=0
name=input("Enter Name :")
if not name.isalpha():
print("Name Has to be Alphabetic")
input("Press Enter to input again ... ")
z=1
continue
if z!=1:
break
# salance input
while True:
z=0
sal=input("Enter salance :")
if not sal.isdigit():
print("salary Has to be Numeric")
input("Press Enter to input again...")
z=1
continue
if not (int(sal)>5000):
print("salance Has >=5000 ")
input("Press Enter to input again...")
z=1
continue
if z!=1:
break
#to save the data in file
em=[empno,name,sal]
pickle.dump(em,f)
f.close()
except IOError:
printf("Unable to open the file")
#to display heading
def heading():
print(" "*30," Employee Details ")
print(" "*30,"================= ")
print(" "*10,"="*60)
print(" "*10,"empno"," "*10," Name "," "*10,"Salary")
print(" "*10,"="*60)
#to display all the records
#method :1
def display_all():
try:
f=open("emp","rb")
while True:
rec=pickle.load(f)
print(rec)
#input("Press Enter to cont ...")
except EOFError:
f.close()
input("Press Enter to cont ...")
except IOError:
printf("Unable to open the file")
#to display all the records
#method :2
def display_all2():
try:
f=open("emp","rb")
os.system("cls")
print(" "*30," Employee Details ")
print(" "*30,"================= ")
print(" "*10,"="*60)
print(" "*10,"empno"," "*10," Name "," "*10,"Salary")
print(" "*10,"="*60)
while True:
rec=pickle.load(f)
#print(" "*10,rec[0]," "*15,rec[1]," "*15,rec[2])
print(" "*10,"%-10s"%rec[0],"%-20s"%rec[1],"%-10s"%rec[2])
#print(rec[0],rec[1],rec[2])
#input("Press Enter to cont ...")
except EOFError:
print(" "*10,"="*60)
f.close()
input("Press Enter to cont ...")
except IOError:
printf("Unable to open the file")
def search_empno():
z=0
try:
tr=input("Enter empno no to search ")
f=open("emp","rb")
os.system("cls")
print(" "*30," Employee Details ")
print(" "*30,"================= ")
print(" "*10,"="*60)
print(" "*10,"empno"," "*10," Name "," "*10,"Salary")
print(" "*10,"="*60)
while True:
rec=pickle.load(f)
if tr==rec[0]:
z=1
#print(" "*10,rec[0]," "*15,rec[1]," "*15,rec[2])
print(" "*10,"%-10s"%rec[0],"%-20s"%rec[1],"%-10s"%rec[2])
#print(rec[0],rec[1],rec[2])
#input("Press Enter to cont ...")
except EOFError:
print(" "*10,"="*60)
f.close()
if z==0:
print("Record Not Presnt")
input("Press Enter to cont ...")
except IOError:
printf("Unable to open the file")
def search_name():
z=0
try:
tn=input("Enter Name to search ")
tn.lower()
f=open("emp","rb")
os.system("cls")
print(" "*30," Employee Details ")
print(" "*30,"================= ")
print(" "*10,"="*60)
print(" "*10,"empno"," "*10," Name "," "*10,"Salary")
print(" "*10,"="*60)
while True:
rec=pickle.load(f)
if tn==rec[1].lower():
z=1
#print(" "*10,rec[0]," "*15,rec[1]," "*15,rec[2])
print(" "*10,"%-10s"%rec[0],"%-20s"%rec[1],"%-10s"%rec[2])
#print(rec[0],rec[1],rec[2])
#input("Press Enter to cont ...")
except EOFError:
print(" "*10,"="*60)
f.close()
if z==0:
print("Record Not Presnt")
input("Press Enter to cont ...")
except IOError:
printf("Unable to open the file")
def delete_empno():
os.system("cls")
z=0
try:
tr=input("Enter empno no to delete ")
f=open("emp","rb")
tf=open("temp","wb")
while True:
rec=pickle.load(f)
if tr==rec[0]:
print(" "*30," Employee Details ")
print(" "*30,"================= ")
print(" "*10,"="*60)
print(" "*10,"empno"," "*10," Name "," "*10,"Salary")
print(" "*10,"="*60)
z=1
#print(" "*10,rec[0]," "*15,rec[1]," "*15,rec[2])
print(" "*10,"%-10s"%rec[0],"%-20s"%rec[1],"%-10s"%rec[2])
else:
pickle.dump(rec,tf)
#print(rec[0],rec[1],rec[2])
#input("Press Enter to cont ...")
except EOFError:
print(" "*10,"="*60)
f.close()
tf.close()
if z==0:
print("Record Not Presnt")
else:
os.remove("emp")
os.rename("temp","emp")
print("Record Deleted")
input("Press Enter to cont ...")
except IOError:
printf("Unable to open the file")
def delete_name():
os.system("cls")
z=0
try:
tn=input("Enter Name to delete ")
f=open("emp","rb")
tf=open("temp","wb")
while True:
rec=pickle.load(f)
if tn==rec[1]:
print(" "*30," Employee Details ")
print(" "*30,"================= ")
print(" "*10,"="*60)
print(" "*10,"empno"," "*10," Name "," "*10,"Salary")
print(" "*10,"="*60)
z=1
#print(" "*10,rec[0]," "*15,rec[1]," "*15,rec[2])
print(" "*10,"%-10s"%rec[0],"%-20s"%rec[1],"%-10s"%rec[2])
else:
pickle.dump(rec,tf)
#print(rec[0],rec[1],rec[2])
#input("Press Enter to cont ...")
except EOFError:
print(" "*10,"="*60)
f.close()
tf.close()
if z==0:
print("Record Not Presnt")
else:
os.remove("emp")
os.rename("temp","emp")
print("Record Deleted")
input("Press Enter to cont ...")
except IOError:
printf("Unable to open the file")
def update_empno():
os.system("cls")
z=0
z1=0
try:
tr=input("Enter empno no to Update ")
f=open("emp","rb")
tf=open("temp","wb")
while True:
z=0
rec=pickle.load(f)
if tr==rec[0]:
print(" "*30," Employee Details ")
print(" "*30,"================= ")
print(" "*10,"="*60)
print(" "*10,"empno"," "*10," Name "," "*10,"Salary")
print(" "*10,"="*60)
z=1
z1=1
#print(" "*10,rec[0]," "*15,rec[1]," "*15,rec[2])
print(" "*10,"%-10s"%rec[0],"%-20s"%rec[1],"%-10s"%rec[2])
print("\n\n Enter new Details\n")
empno=input("Enter Employee No ")
name=input("Enter name ")
sal=input("Enter Salary ")
em=[empno,name,sal]
pickle.dump(em,tf)
if z==0:
pickle.dump(rec,tf)
#print(rec[0],rec[1],rec[2])
#input("Press Enter to cont ...")
except EOFError:
print(" "*10,"="*60)
f.close()
tf.close()
if z1==0:
print("Record Not Presnt")
else:
os.remove("emp")
os.rename("temp","emp")
print("Record Updated")
input("Press Enter to cont ...")
except IOError:
printf("Unable to open the file")
def login():
os.system("cls")
print()
print()
print()
print(" Login Window")
print("******************")
print("="*40)
u=input("Enter UserName : ")
p=getpass("Enter Password : ")
if (u=="ct" and p=="ct"):
main()
else:
print("Invalid user")
exit()
def main():
while True:
os.system("cls")
m="""
Main Menu
=========
1. Add Record
2. Display All 1
3. Display All 2
4. Search By Employee No
5. Search By Employee Name
6. Delete by Employee No
7. Delete By Employee Name
8. Update using Employee No
0. Exit
"""
print(m)
ch=input("Enter your choice : ")
if ch==" ":
continue
if ch=='1':
add_record()
elif ch=='2':
display_all()
elif ch=='3':
display_all2()
elif ch=='4':
search_empno()
elif ch=='5':
search_name()
elif ch=='6':
delete_empno()
elif ch=='7':
delete_name()
elif ch=='8':
update_empno()
elif ch=='0':
print("End")
break
else:
print("Invalid choice")
if __name__=='__main__':
#main()
login()




