python学生管理系统代码实现
本文实例为大家分享了python学生管理系统的具体代码,供大家参考,具体内容如下
类
classStudent: stuID="" name="" sex="M" classID="NULL" #setID defsetStuID(self,stuID): self.stuID=stuID defsetName(self,name): self.name=name defsetSex(self,sex): self.sex=sex defsetClassID(self,classID): self.classID=classID defgetStuId(self): returnself.stuID defgetName(self): returnself.name defgetSex(self): returnself.sex defgetClassID(self): returnself.classID
主函数
importos importre importsys importstring importstudent #savefile globalFILEPATH FILEPATH="student.db" #temporaryfile globalTEMPFILE TEMPFILE="temp.db" #Thisismenu defmenu(): whileTrue: print"1.Addastudentinformation" print"2.Querystudentinformation" print"3.Deleteastudentinformation" print"0.Quit" opt=raw_input("Select:") ifopt=="1": whileTrue: addStudent() opt2=raw_input("ContinueAdd(Y/N)?:") ifopt2=="Y"oropt2=="y"oropt2=="": continue else: break elifopt=="2": whileTrue: query() opt2=raw_input("ContinueQuery(Y/N)?:") ifopt2=="Y"oropt2=="y"oropt2=="": continue else: break elifopt=="3": whileTrue: delMenu() opt2=raw_input("ContinueDelete(Y/N)?:") ifopt2=="Y"oropt2=="y"oropt2=="": continue else: break elifopt=="0": exitProgram() break else: print"Errorinput" #Addastudent defaddStudent(): stu=student.Student() whileTrue: stuID=raw_input("ID(001-999):") #matchID001-999 p=re.match("^[0-9]{3}$",stuID) ifp: ifstuID=="000": print"IDmustbe001-999" continue ifisIDExist(stuID): print"ID=%salreadyexist!"%stuID continue else: stu.setStuID(stuID) break else: print"IDmustbe001-999" whileTrue: stuName=raw_input("Name(a-z,A-Z,5char):") #matchnamea-zA-Z5char p=re.match("^[a-zA-Z]{1,5}$",stuName) ifp: stu.setName(stuName) break else: print"Nameformaterrormusta-z,A-Z,within5char" whileTrue: stuSex=raw_input("Sex(defaultisM):") #defaultvalue ifstuSex=="": stu.setSex("M") print"Sex:M" break ifstuSex=="M"orstuSex=="m": stu.setSex(string.upper(stuSex)) break #ifstuSex=="M"orstuSex=="m"||stuSex=="F"stuSex=="f": p=re.match("^M|m|F|f$",stuSex) ifp: stu.setSex(string.upper(stuSex)) break else: print"Sex(M/f)" whileTrue: stuClass=raw_input("Class(01-99):") #defaultvalue ifstuClass=="": stu.setClassID("NULL") print"CLASS:NULL" break #match00-99 p=re.match("^[0-9]{2}$",stuClass) ifp: #getridof00 ifstuClass=="00": print"Classmust01-99" continue stu.setClassID(stuClass) break else: print"Classmust01-99" #savetofile file1=open(FILEPATH,"a") print"ID\tNAME\tSEX\tCLASS" printstu.getStuId(),"\t",stu.getName(),"\t",stu.getSex(),"\t",stu.getClassID() file1.write(stu.getStuId()+"\t"+stu.getName()+"\t"+stu.getSex()+"\t"+stu.getClassID()+"\n") print"Addstudentsuccess!" file1.close() #Deletestudentmenu defdelMenu(): print"1.DeletebyID" print"2.DeletecontainsID" opt=raw_input("Select:") ifopt=="1": delStudentByID() elifopt=="2": delStudentContainsID() else: print"Errorinput" #Deletecontainsid defdelStudentContainsID(): contID=raw_input("ID:") ifgetInfoContainsID(contID)==0: print"Can'tfindIDcontains\"%s\"student"%contID return opt=raw_input("Areyousuredeleteall(Y/N):") ifnotopt=="y"oropt=="Y": return f=open(FILEPATH,"r") tmp=open(TEMPFILE,"a") i=0 foreachLineinf: items=eachLine.split("\t") #ifnotre.match(contID,items[0]): ifitems[0].count(contID)==0: tmp.write(eachLine) else: i+=1 f.close() tmp.close() os.remove(FILEPATH) os.rename(TEMPFILE,FILEPATH) print"Deleted%ddata"%i #getcontainsIDinformation defgetInfoContainsID(stuID): f=open(FILEPATH) i=0 foreachLineinf: items=eachLine.split("\t") ifnotitems[0].count(stuID)==0: #ifre.match(stuID,items[0]): i+=1 ifi==1: print"ID\tNAME\tSEX\tCLASS" printeachLine, ifi==0: return0 else: returni f.close() #DeletestudentbyID defdelStudentByID(): delID=raw_input("DeleteID:") ifnotisIDExist(delID): print"Can'tfindID=%sstudentinformation"%delID return getInfoByID(delID) opt=raw_input("Areyousuredeleteit(Y/N):") ifnot(opt=="Y"oropt=="y"): return f=open(FILEPATH,"r") tmp=open(TEMPFILE,"a") foreachLineinf: split=eachLine.split("\t") ifnotdelID==split[0]: tmp.write(eachLine) tmp.close() f.close() os.remove(FILEPATH) os.rename(TEMPFILE,FILEPATH) print"Deletesuccess!" #Querymenu defquery(): print"1.QuerystudentbyID" print"2.Queryallstudents" opt=raw_input("Select:") ifopt=="1": queryByID() elifopt=="2": queryAll() #defaultisqueryall elifopt=="": queryAll() else: print"ErrorInput!" #queryIDexist defisIDExist(ID): f=open(FILEPATH) flag=0 foreachlineinf: temp=eachline.split("\t") iftemp[0]==ID: flag+=1 f.close() ifflag==0: returnFalse else: returnTrue #getinformationbyIDfordeletestudent defgetInfoByID(stuID): f=open(FILEPATH) i=0 foreachLineinf: items=eachLine.split("\t") ifitems[0]==stuID: i+=1 ifi==1: print"ID\tNAME\tSEX\tCLASS" printeachLine f.close() #QuerystudentbyID defqueryByID(): queryID=raw_input("ID:") f=open(FILEPATH) #lines=f.readlines() #printlines[0].strip() #forlineinlines: #a=line.split() #ifqueryID==a[1].strip(): #printline.strip() flag=0 foreachlineinf: #splitby"\t"getasCarraytemp[4] temp=eachline.split("\t") #printtemp[0],temp[1],temp[2],temp[3] iftemp[0]==queryID: flag+=1 ifflag==1: print"ID\tNAME\tSEX\tCLASS" printeachline, ifflag==0: print"Can'tfindID=%sstudentinformation"%queryID f.close() #f=open(FILEPATH) #readLines=f.readlines() #foreachLineinf: #eachLine # #ifeachLine==queryID: #printeachLine #f.close() #Queryallstudents defqueryAll(): f=open(FILEPATH,"r") i=0 foreachLineinf: i+=1 ifi==1: print"ID\tNAME\tSEX\tCLASS" printeachLine, f.close() ifi==0: print"Nodata!" defexitProgram(): print"ThankyouBye!" #sys.exit() definit(): ifos.path.exists(FILEPATH): print"Loadfilesuccessful" else: try: f=open(FILEPATH,"w") exceptException: print"Can'topenfile" sys.exit() finally: f.close() if__name__=='__main__': init() menu()
更多学习资料请关注专题《管理系统开发》。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。