python中学生成绩管理系统,Python学生成绩管理

  python中学生成绩管理系统,Python学生成绩管理

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

  本文分享用python实现学生成绩管理系统的具体代码,供大家参考。具体内容如下

  需求:

  代码:

  导入操作系统

  filename=student.txt

  定义主():

  而True:

  菜单()

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

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

  if choice==0:

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

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

  打印(感谢您的使用!)

  破裂

  else:

  继续

  elif choice==1:

  插入()

  elif choice==2:

  搜索()

  elif choice==3:

  删除()

  elif choice==4:

  修改()

  elif choice==5:

  排序()

  elif choice==6:

  总计()

  else:

  显示()

  #菜单

  定义菜单():

  打印(===============学生成绩管理系统====================)

  打印(===============功能菜单==============================)

  打印( \t\t1,输入学生信息)

  打印( \t\t2,查找学生信息)

  打印( \t\t3,删除学生信息)

  打印( \t\t4,修改学生信息)

  打印( \t\t5,排序)

  打印( \t\t6,计算学生人数)

  打印( \t\t7,显示所有学生信息)

  打印( \t\t0,退出系统)

  打印(-)

  #插入

  定义插入():

  student_list=[]

  而True:

  ID=input(请输入ID(如1001): )

  如果不是id:

  破裂

  Name=input(请输入一个名称:)

  如果不命名:

  破裂

  尝试:

  english=int(输入(输入英语等级:))

  python=int(input( input python grade:))

  java=int(input(input java grade:))

  例外:

  打印(输入结果无效!“再进来!”)

  继续

  student={id:id, name:name, english:english, python:python, java:java}

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

  回答=输入(‘继续补充信息!是/否)

  如果答案==y:

  继续

  else:

  破裂

  #调用save函数将其保存在文本中

  保存(学生列表)

  打印(学生信息输入成功!)

  #保存

  def保存(lst):

  尝试:

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

      except:

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

      for item in lst:

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

      stu_txt.close()

  # 搜索

  def search():

      while True:

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

          if student_name:

              if os.path.exists(filename):

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

                      student_old = rfile.readlines()

              else:

                  student_old = []

              if student_old:

                  d = {}

                  flag = False

                  for item in student_old:

                      d = dict(eval(item))

                      if d[name] == student_name:

                          flag = True

                          student_show(d)

                      else:

                          pass

              else:

                  print("无学生信息,请添加!")

              if flag:

                  print("查询成功")

              else:

                  print("查询失败")

          else:

              print("没有输入学生姓名!")

          answer = input("请问是否继续查询:y/n")

          if answer == "y":

              continue

          else:

              break

  # 展示个人信息

  def student_show(dic):

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

      print(format_title.format(ID,姓名,英语成绩,python成绩,java成绩,总成绩))

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

      print(format_data.format(dic.get(id),

                              dic.get(name),

                              dic.get(english),

                              dic.get(python),

                              dic.get(java),

                              int(dic.get(english))+int(dic.get(python))+int(dic.get(java)),

                              ))

  # 删除

  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(f"{student_id}已经被删除!")

                      else:

                          print(f"{student_id}没有找到!")

              else:

                  print("无学生信息!")

                  break

              show()

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

              if answer == y:

                  continue

              else:

                  break

          else:

              print("请输入要删除的ID:")

              continue

  # 修改      

  def modify():

      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=[]

              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:

                              answer = input(已经找到该学生信息,是否修改:y/n?)

                              flag = False

                              if answer:

                                  d[name]=input("姓名:")

                                  d[english]=int(input("english:"))

                                  d[python]=int(input("python:"))

                                  d[java]=int(input("java:"))

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

                                  flag = True

                              else:

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

                                  break

                          else:

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

                      if flag:

                          print("修改成功!")

                      else:

                          print("修改失败!")

              else:

                  print("无学生信息,请添加")

              answer = input("请问是否继续修改?y/n")

              if answer == "y":

                  continue

              else:

                  break

          else:

              print("输入错误!")

  # 排序           

  def sort():

      while True:

          if os.path.exists(filename):

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

                  student_old = file.readlines()

              student_new = []

              d={}

              for item in student_old:

                  d=dict(eval(item))

                  student_new.append(d)

              asc_and_desc = int(input("怎么排序:0 升序  1 降序:"))

              choice = int(input("按照什么排序:1 english  2 python  3 java  0 总成绩:"))

              if choice == 1:

                  student_new.sort(key=lambda x:int(x[english]),reverse=asc_and_desc)

              elif choice == 2:

                  student_new.sort(key=lambda x:int(x[python]),reverse=asc_and_desc)

              elif choice == 3:  

                  student_new.sort(key=lambda x:int(x[java]),reverse=asc_and_desc)

              elif choice == 0:

                  student_new.sort(key=lambda x:int(x[english])+int(x[python])+int(x[java]),reverse=asc_and_desc)

              else:

                  print("输入有误")

                  sort()

          else:

              print("无学生信息")

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

          print(format_title.format(ID,姓名,英语成绩,python成绩,java成绩,总成绩))

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

          for dic in student_new:

              print(format_data.format(dic.get(id),

                                      dic.get(name),

                                      dic.get(english),

                                      dic.get(python),

                                      dic.get(java),

                                      int(dic.get(english))+int(dic.get(python))+int(dic.get(java)),

                                      ))

          answer = input("请问是否继续排序?y/n")

          if answer == "y":

              continue

          else:

              break

  # 总人数

  def total():

      if os.path.exists(filename):

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

              student_old = file.readlines()

          print(一共有,len(student_old),名学生!)

      else:

          print("无人员资料")

      import msvcrt

      msvcrt.getch()

  # 展示

  def show():

      if os.path.exists(filename):

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

              student_old = file.readlines()

          d = {}

          students = []

          for item in student_old:

              d = dict(eval(item))

              students.append(d)

      else:

          print("没有信息!")

      if len(students):

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

          print(format_title.format(ID,姓名,英语成绩,python成绩,java成绩,总成绩))

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

          for dic in students:

              print(format_data.format(dic.get(id),

                                      dic.get(name),

                                      dic.get(english),

                                      dic.get(python),

                                      dic.get(java),

                                      int(dic.get(english))+int(dic.get(python))+int(dic.get(java)),

                                      ))

      else:

          print("无人员信息!")

      import msvcrt

      msvcrt.getch()

  if __name__ == __main__:

      main()

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

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

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