python學生管理系統代碼實現,python學生管理系統

來源:互聯網
上載者:User

python學生管理系統代碼實現,python學生管理系統

本文執行個體為大家分享了python學生管理系統的具體代碼,供大家參考,具體內容如下


class Student:   stuID = ""   name = ""   sex = "M"   classID = "NULL"      #set ID    def setStuID(self,stuID):     self.stuID = stuID      def setName(self,name):     self.name = name      def setSex(self,sex):     self.sex = sex        def setClassID(self,classID):     self.classID = classID      def getStuId(self):     return self.stuID      def getName(self):     return self.name      def getSex(self):     return self.sex      def getClassID(self):     return self.classID 

主函數

import os import re import sys import string import student  #save file global FILEPATH FILEPATH = "student.db" #temporary file  global TEMPFILE TEMPFILE = "temp.db"  #This is menu def menu():   while True :     print "1.Add a student information"     print "2.Query student information"     print "3.Delete a student information"     print "0.Quit"     opt = raw_input("Select:")     if opt == "1":       while True:         addStudent()         opt2 = raw_input("Continue Add(Y/N)?:")         if opt2 == "Y" or opt2 == "y" or opt2 == "":           continue         else:           break     elif opt == "2":       while True:         query()         opt2 = raw_input("Continue Query(Y/N)?:")         if opt2 == "Y" or opt2 == "y" or opt2 == "":           continue         else:           break           elif opt == "3":       while True:         delMenu()         opt2 = raw_input("Continue Delete(Y/N)?:")         if opt2 == "Y" or opt2 == "y" or opt2 == "":           continue         else:           break            elif opt == "0" :       exitProgram()         break      else:       print "Error input"          #Add a student def addStudent() :   stu = student.Student()   while True:     stuID = raw_input("ID(001-999):")     #match ID 001-999     p = re.match("^[0-9]{3}$", stuID)     if p :       if stuID == "000":         print "ID must be 001-999"         continue       if isIDExist(stuID):         print "ID = %s already exist!" % stuID         continue       else :           stu.setStuID(stuID)       break     else:       print "ID must be 001-999"      while True:         stuName = raw_input("Name(a-z,A-Z,5 char):")     #match name a-z A-Z 5 char     p = re.match("^[a-zA-Z]{1,5}$",stuName)     if p :       stu.setName(stuName)       break     else :       print "Name format error must a-z,A-Z,within 5 char"      while True:       stuSex = raw_input("Sex(default is M):")     #default value     if stuSex == "":       stu.setSex("M")       print "Sex:M"       break     if stuSex =="M" or stuSex == "m":       stu.setSex(string.upper(stuSex))       break            #if stuSex == "M" or stuSex == "m" || stuSex == "F" stuSex == "f":     p = re.match("^M|m|F|f$",stuSex)     if p :       stu.setSex(string.upper(stuSex))       break     else :       print "Sex(M/f)"        while True:     stuClass = raw_input("Class(01-99):")     #default value     if stuClass == "":       stu.setClassID("NULL")       print "CLASS:NULL"       break     #match 00-99     p = re.match("^[0-9]{2}$",stuClass)     if p :       #get rid of 00       if stuClass == "00":         print "Class must 01-99"         continue       stu.setClassID(stuClass)       break     else:       print "Class must 01-99"   #save to file       file1 = open(FILEPATH,"a")   print "ID\tNAME\tSEX\tCLASS"   print stu.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 "Add student success!"   file1.close()  #Delete student menu   def delMenu():   print "1.Delete by ID"   print "2.Delete contains ID"   opt = raw_input("Select:")   if opt == "1":     delStudentByID()   elif opt == "2":     delStudentContainsID()   else:     print "Error input"        #Delete contains id     def delStudentContainsID():   contID = raw_input("ID:")   if getInfoContainsID(contID)==0 :     print "Can't find ID contains \"%s\" student" % contID     return   opt = raw_input("Are you sure delete all(Y/N):")   if not opt == "y" or opt == "Y":     return      f = open(FILEPATH,"r")   tmp = open(TEMPFILE,"a")   i=0   for eachLine in f:     items = eachLine.split("\t") #    if not re.match(contID, items[0]):     if items[0].count(contID) ==0:       tmp.write(eachLine)     else:        i+=1      f.close()   tmp.close()   os.remove(FILEPATH)   os.rename(TEMPFILE, FILEPATH)   print "Deleted %d data" % i  #get contains ID information          def getInfoContainsID(stuID):   f = open(FILEPATH)   i=0   for eachLine in f:     items = eachLine.split("\t")          if not items[0].count(stuID) ==0: #    if re.match(stuID,items[0]):       i+=1       if i==1:         print "ID\tNAME\tSEX\tCLASS"       print eachLine,   if i==0:     return 0   else :     return i   f.close()      #Delete student by ID   def delStudentByID():   delID = raw_input("Delete ID:")   if not isIDExist(delID) :     print "Can't find ID = %s student information" % delID     return       getInfoByID(delID)   opt = raw_input("Are you sure delete it(Y/N):")   if not (opt == "Y" or opt == "y"):     return      f = open(FILEPATH,"r")   tmp = open(TEMPFILE,"a")      for eachLine in f:     split = eachLine.split("\t")         if not delID == split[0]:       tmp.write(eachLine)              tmp.close()   f.close()   os.remove(FILEPATH)   os.rename(TEMPFILE, FILEPATH)   print "Delete success!"  #Query menu   def query():   print "1.Query student by ID"   print "2.Query all students"   opt = raw_input("Select:")   if opt == "1":     queryByID()   elif opt == "2":     queryAll()   #default is query all     elif opt == "":     queryAll()     else :     print "Error Input!"        #query ID exist def isIDExist(ID):   f = open(FILEPATH)   flag = 0   for eachline in f:     temp = eachline.split("\t")     if temp[0] == ID:       flag+=1   f.close()   if flag == 0 :     return False   else:     return True    #get information by ID for delete student    def getInfoByID(stuID):   f = open(FILEPATH)   i=0   for eachLine in f:     items = eachLine.split("\t")     if items[0] == stuID:       i+=1       if i==1:         print "ID\tNAME\tSEX\tCLASS"       print eachLine     f.close()         #Query student by ID def queryByID():   queryID = raw_input("ID:")   f = open(FILEPATH) #  lines = f.readlines() #  print lines[0].strip() #  for line in lines: #    a = line.split() #    if queryID == a[1].strip(): #      print line.strip()   flag = 0   for eachline in f:     #split by "\t" get as C array temp[4]     temp = eachline.split("\t") #    print temp[0] , temp[1] , temp[2] , temp[3]     if temp[0] == queryID:       flag+=1       if flag == 1:         print "ID\tNAME\tSEX\tCLASS"       print eachline,   if flag == 0 :     print "Can't find ID = %s student information" % queryID       f.close() #  f = open(FILEPATH) #  readLines = f.readlines()    #  for eachLine in f: #    eachLine #         #    if eachLine == queryID: #      print eachLine #  f.close()  #Query all students   def queryAll():   f = open(FILEPATH,"r")   i=0   for eachLine in f:     i+=1     if i==1:       print "ID\tNAME\tSEX\tCLASS"     print eachLine,   f.close()   if i==0:     print "No data!"  def exitProgram():   print "Thank you Bye!" #  sys.exit()    def init():   if os.path.exists(FILEPATH) :     print "Load file successful"   else:     try:       f = open(FILEPATH,"w")     except Exception:       print "Can't open file"       sys.exit()     finally:       f.close()    if __name__ == '__main__':   init()   menu() 

以上就是本文的全部內容,希望對大家的學習有所協助,也希望大家多多支援幫客之家。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.