Python实现学生管理系统,用python写一个简单的学生管理系统

  Python实现学生管理系统,用python写一个简单的学生管理系统

  本文主要介绍了用python实现的简单易行的学生信息管理系统。本文中的示例代码非常详细,具有一定的参考价值。感兴趣的朋友可以参考一下。

  00-1010一、系统功能二。系统开发环境。执行代码四。项目包和生成。exe可执行文件。本例分享python实现简单学生信息管理系统的具体代码,供大家参考。具体内容如下

  

目录

  1.输入学生信息

  2.查找学生信息

  3.修改学生信息

  4.删除学生信息

  5.分级。

  6.统计学生总数。

  7.显示所有学生信息

  0.退出系统。

  

一、系统功能

  1.操作系统:win7

  2.开发工具:PyCharm

  3.Python内置模块:os,re

  

二、系统开发环境

  导入操作系统

  filename=students.txt

  定义主():

  而True:

  菜单()

  Choice=int(input(请选择函数:))

  if选择在[0,1,2,3,4,5,6,7]:

  if choice==0:

  回答=输入(你确定要退出系统吗?(是/否))

  如果答案==y 或答案==Y:

  打印(感谢您的使用!)

  Break #退出while循环并退出系统

  else:

  继续

  elif choice==1:

  Insert() #输入学生信息

  elif choice==2:

  Search() #查找学生信息

  elif choice==3:

  Delete() #删除学生信息

  elif choice==4:

  Modify() #修改学生信息

  elif choice==5:

  Sort() #成绩排序

  elif choice==6:

  Total() #统计学生总数

  elif choice==7:

  Show() #显示所有学生信息

  定义插入():

  Student_list=[] #用于存储学生信息,列表的每个元素都是一个字典。

  而True:

  ID=input(请输入学生ID:)

  如果不是id:

  破裂

  Name=input(请输入学生的姓名:)

  如果不命名:

  破裂

  尝试:

  Englist=int(input (input(请输入英语分数:))

  Python=int(input(请输入Python分数:))

  Java=int(input(请输入Java分数:))

  例外:

  打印(输入无效,不是整数类型,请重新输入!)

  继续

  #将输入的学生信息保存到字典中。

  student={id:id, name:name, English:Englist, Python:Python, Java:Java}

  #向列表中添加学生信息

  学生_列表.追加(学生)

  回答=输入(要继续添加吗?(是/否))

  如果答案==y 或答案==Y:

  继续

  else:

  破裂

  #保存学生信息

  在文件中

      save(student_list)

      print(学生信息录入完毕!)

      pass

  def search():

      student_query=[] #用列表存储,防止有同名学生。

      while True:

          id=

          name=

          if os.path.exists(filename):

              mode=input(按ID查找请输入1,按姓名查找请输入2:)

              if mode == 1:

                  id=input(请输入要查找的学生ID:)

              elif mode == 2:

                  name=input(请输入要查找的学生姓名:)

              else:

                  print(您的输入有误,请重新输入!)

                  search()

              with open(filename,r,encoding=utf-8) as rfile:

                  student=rfile.readlines()

                  for item in student:

                      d=dict(eval(item))

                      if id!=:

                          if d[id]==id:

                              student_query.append(d)

                      elif name!=:

                          if d[name]==name:

                              student_query.append(d)

              #显示查询结果

              show_student(student_query)

              student_query.clear() #清空列表

              answer=input(是否要继续查询?(y/n))

              if answer==y or answer==Y:

                  continue

              else:

                  break

          else:

              print(暂未保存学生信息。)

              return

      pass

  def delete():

      while True:

          student_id=input(请输入要删除的学生ID:)

          if student_id != :

              if os.path.exists(filename): #判断文件是否存在

                  with open(filename,r,encoding=utf-8) as file:

                      student_old=file.readlines() #读取所有学生信息并保存在列表中

              else:

                  student_old=[]

              flag=False #用于标记是否删除

              if student_old:

                  with open(filename,w,encoding=utf-8) as wfile:

                      d={}

                      for item in student_old: #遍历学生信息列表

                          d=dict(eval(item)) #将字符串转成字典

                          if d[id]!=student_id:

                              wfile.write(str(d)+\n)

                          else:

                              flag=True

                      if flag:

                          print(fid为{student_id}的学生信息已被删除)

                      else:

                          print(f没有找到ID为{student_id}的学生信息)

              else:

                  print(无此学生信息)

                  break

              show() #删完之后重新显示所有学生信息

              answer=input(是否继续删除?(y/n))

              if answer==y or answer==Y:

                  continue

              else:

                  break

      pass

  def modify():

      show()

      if os.path.exists(filename): #判断文件是否存在

          with open(filename,r,encoding=utf-8) as rfile:

              student_old=rfile.readlines()

      else:

          return #结束函数

      student_id=input(请输入要修改信息的学生ID:)

      with open(filename,w,encoding=utf-8) as wfile:

          for item in student_old:

              d=dict(eval(item))

              if d[id]==student_id:

                  print(找到此学生信息,可以修改。)

                  while True:

                      try:

                          d[name]=input(请输入学生姓名:)

                          d[English]=input(请输入English成绩:)

                          d[Python]=input(请输入Python成绩:)

                          d[Java]=input(请输入Java成绩:)

                      except:

                          print(您的输入有误请重新输入!)

                      else:

                          break

                  wfile.write(str(d)+\n)

                  print(修改成功!)

              else:

                  wfile.write(str(d)+\n)

          answer=input(是否继续修改其他学生信息?(y/n))

          if answer==y:

              modify()

      pass

  def sort():

      show()

      if os.path.exists(filename):

          with open(filename,r,encoding=utf-8) as rfile:

              student_list=rfile.readlines()

          student_new=[]

          for item in student_list:

              d=dict(eval(item))

              student_new.append(d)

      else:

          return

      asc_or_desc=input(请选择(0:升序,1:降序):)

      if asc_or_desc==0:

          asc_or_desc_bool=False

      elif asc_or_desc==1:

          asc_or_desc_bool=True

      else:

          print(您的输入有误,请重新输入!)

          sort()

      mode=input(请选择排序方式(0:按总成绩排序,1:按English成绩排序,2:按Python成绩排序,3:按Java成绩排序))

      if mode==0:

          student_new.sort(key=lambda x: int(x[English])+int(x[Python])+int(x[Java]), reverse=asc_or_desc_bool)

      elif mode==1:

          student_new.sort(key=lambda x:int(x[English]),reverse=asc_or_desc_bool)

      elif mode==2:

          student_new.sort(key=lambda x: int(x[Python]), reverse=asc_or_desc_bool)

      elif mode==3:

          student_new.sort(key=lambda x: int(x[Java]), reverse=asc_or_desc_bool)

      else:

          print(您的输入有误,请重新输入!)

          sort()

      show_student(student_new)

      pass

  def total():

      if os.path.exists(filename):

          with open(filename,r,encoding=utf-8) as rfile:

              students=rfile.readlines()

              if students:

                  print(f一共有{len(students)}名学生)

              else:

                  print(还没有录入学生信息!)

      else:

          print(暂未保存学生信息......)

      pass

  def show():

      student_lst=[]

      if os.path.exists(filename):

          with open(filename,r,encoding=utf-8) as rfile:

              students=rfile.readlines()

              for item in students:

                  student_lst.append(eval(item))

              if student_lst:

                  show_student(student_lst)

      else:

          print(暂未保存过数据!)

      pass

  def save(stu_list):

      try:

          stu_txt=open(filename,a,encoding=utf=8)

      except:

          stu_txt=open(filename,w,encoding=utf-8)

      for item in stu_list:

          stu_txt.write(str(item)+\n)

      stu_txt.close()

  def show_student(lst):

      if len(lst)==0:

          print(没有查到学生信息,无数据显示!)

          return

      #定义标题显示格式

      format_title={:^6}\t{:^12}\t{:^10}\t{:^10}\t{:^10}\t{:^8}

      print(format_title.format(ID,姓名,English成绩,Python成绩,Java成绩,总成绩))

      #定义内容显示格式

      format_data={:^6}\t{:^12}\t{:^10}\t{:^18}\t{:^14}\t{:^8}

      for item in lst:

          print(format_data.format(item.get(id),item.get(name),item.get(English),item.get(Python),item.get(Java),str(int(item.get(English))+int(item.get(Python))+int(item.get(Java)))))

      pass

  def menum():

      print(-------------------学生信息管理系统--------------------)

      print(-----------------------功能菜单------------------------)

      print(                    1.录入学生信息)

      print(                    2.查找学生信息)

      print(                    3.删除学生信息)

      print(                    4.修改学生信息)

      print(                    5.成绩排序)

      print(                    6.统计学生总人数)

      print(                    7.显示所有学生信息)

      print(                    0.退出系统)

      print(------------------------------------------------------)

  main()

  

  

四、项目打包并生成.exe可执行文件

  1.安装第三方模块,打开dos窗口,输入:pip install PyInstaller并回车,

  2.输入:pyinstaller -F 程序文件具体位置,

  3.回车后即可在输出内容的倒数第二行看到.exe文件的位置。

  以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持盛行IT软件开发工作室。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: