Student Database System
Project To main student data like roll, name and per
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_roll
search_name()
delete_roll()
delete_name()
update_roll()
login()
main()
""" Binary File To maintain Student details like Roll Name Per Operations: Add record Display All Records Search a record by Roll no Search a record by name delete a record Modify a record """ import os import pickle from getpass import getpass #add_record() : to add a new record def add_record(): #take input for student details try: if os.path.isfile("stud"): print("file is present") f=open("stud","ab") else: print("file is not present, has to be created") f=open("stud","wb") #roll=input("Enter roll no ") #name=input("Enter name ") #per=input("Enter per ") #input of data with validation #roll no input while True: z=0 roll=input("Enter roll no (4 digit) :") if not roll.isdigit(): print("Rollno Has to be Numeric") input("Press Enter to input again...") z=1 continue if not (int(roll)>=1000 and int(roll)<=9999): print("Rollno 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 # per input while True: z=0 per=input("Enter per :") if not per.isdigit(): print("Per Has to be Numeric") input("Press Enter to input again...") z=1 continue if not (int(per)>=0 and int(per)<=100): print("Rollno Has to be >=0 and <=100") input("Press Enter to input again...") z=1 continue if z!=1: break #to save the data in file st=[roll,name,per] pickle.dump(st,f) f.close() except IOError: printf("Unable to open the file") #to display heading def heading(): print(" "*30," Student Details ") print(" "*30,"================= ") print(" "*10,"="*60) print(" "*10,"Roll No"," "*10," Name "," "*10,"Per") print(" "*10,"="*60) #to display all the records #method :1 def display_all(): try: f=open("stud","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("stud","rb") os.system("cls") print(" "*30," Student Details ") print(" "*30,"================= ") print(" "*10,"="*60) print(" "*10,"Roll No"," "*10," Name "," "*10,"Per") print(" "*10,"="*60) while True: rec=pickle.load(f) print(" "*10,rec[0]," "*15,rec[1]," "*15,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_roll(): z=0 try: tr=input("Enter roll no to search ") f=open("stud","rb") os.system("cls") print(" "*30," Student Details ") print(" "*30,"================= ") print(" "*10,"="*60) print(" "*10,"Roll No"," "*10," Name "," "*10,"Per") 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(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 ") f=open("stud","rb") os.system("cls") print(" "*30," Student Details ") print(" "*30,"================= ") print(" "*10,"="*60) print(" "*10,"Roll No"," "*10," Name "," "*10,"Per") print(" "*10,"="*60) while True: rec=pickle.load(f) if tn==rec[1]: z=1 print(" "*10,rec[0]," "*15,rec[1]," "*15,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_roll(): os.system("cls") z=0 try: tr=input("Enter roll no to delete ") f=open("stud","rb") tf=open("temp","wb") while True: rec=pickle.load(f) if tr==rec[0]: print(" "*30," Student Details ") print(" "*30,"================= ") print(" "*10,"="*60) print(" "*10,"Roll No"," "*10," Name "," "*10,"Per") print(" "*10,"="*60) z=1 print(" "*10,rec[0]," "*15,rec[1]," "*15,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("stud") os.rename("temp","stud") 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("stud","rb") tf=open("temp","wb") while True: rec=pickle.load(f) if tn==rec[1]: print(" "*30," Student Details ") print(" "*30,"================= ") print(" "*10,"="*60) print(" "*10,"Roll No"," "*10," Name "," "*10,"Per") print(" "*10,"="*60) z=1 print(" "*10,rec[0]," "*15,rec[1]," "*15,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("stud") os.rename("temp","stud") print("Record Deleted") input("Press Enter to cont ...") except IOError: printf("Unable to open the file") def update_roll(): os.system("cls") z=0 z1=0 try: tr=input("Enter roll no to Update ") f=open("stud","rb") tf=open("temp","wb") while True: z=0 rec=pickle.load(f) if tr==rec[0]: print(" "*30," Student Details ") print(" "*30,"================= ") print(" "*10,"="*60) print(" "*10,"Roll no"," "*10," Name "," "*10,"Per") 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") roll=input("Enter Roll No ") name=input("Enter name ") per=input("Enter Per ") st=[roll,name,per] pickle.dump(st,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("stud") os.rename("temp","stud") 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 Roll No 5. Search By Name 6. Delete by Roll No 7. Delete By Name 8. Update using Roll 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_roll() elif ch=='5': search_name() elif ch=='6': delete_roll() elif ch=='7': delete_name() elif ch=='8': update_roll() elif ch=='0': print("End") break else: print("Invalid choice") if __name__=='__main__': #main() login()