python学生管理系统数据库代码,Python实现学生管理系统

  python学生管理系统数据库代码,Python实现学生管理系统

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

  本文分享用python实现学生信息管理系统的具体代码,包括代码标注、添加、删除、检查、排序、学生信息统计显示等,供大家参考。具体内容如下

  按如下方式运行:

  具体代码如下:3360。

  # _*_ coding:utf-8 _*_

  Import #导入正则表达式模块

  导入os #导入操作系统模块

  Filename=students.txt #定义保存学生信息的文件名。

  定义菜单():

  打印(-

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

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

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

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

  打印( \t\t\t5。排序’)

  打印( \t\t\t6。统计学生总数’)

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

  打印( \t\t\t0。退出’)

  打印(-)

  定义主():

  Ctrl=True #标记是否退出系统。

  while (ctrl):

  Menu() #显示菜单。

  Option=input(请选择:)#选择菜单项

  Option _ str=re.sub (\ d ,,option) #提取数字

  if option_str in [0 , 1 , 2 , 3 , 4 , 5 , 6 , 7]:

  option_int=int(option_str)

  如果option_int==0: #退出系统

  打印(您已退出学生成绩管理系统!)

  ctrl=False

  Elioption _ int==1: #输入学生成绩信息

  插入()

  Elioption _ int==2: #查找有关学生成绩的信息

  搜索()

  Elioption _ int==: #删除学生成绩信息

  删除()

  Elioption _ int==4: #修改学生的成绩信息

  修改()

  Elifioption _ int==53360 #排序

  排序()

  Elifioption _ int==63360 #统计学生总数

  总计()

  Elioption _ int==73360 #显示所有学生信息

  显示()

   1输入学生信息

  定义插入():

  StdentList=[] #保存学生信息列表

  Mark=True #是否继续添加?

  而马克:

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

  如果id : # id为空,则跳出循环

  破裂

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

  如果名称: #为空,则跳出循环。

  破裂

  尝试:

  English=int(input(请输入英语等级:))

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

  C=int(输入(请输入C语言分数:))

  例外:

  打印(无效输入,不是整数值.重新输入信息’)

  继续

  stdent={id: id, name: name, english: english, python

  ": python, "c": c}  # 将输入的学生信息保存到字典

          stdentList.append(stdent)  # 将学生字典添加到列表中

          inputMark = input("是否继续添加?(y/n):")

          if inputMark == "y":  # 继续添加

              mark = True

          else:  # 不继续添加

              mark = False

      save(stdentList)  # 将学生信息保存到文件

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

  # 将学生信息保存到文件

  def save(student):

      try:

          students_txt = open(filename, "a")  # 以追加模式打开

      except Exception as e:

          students_txt = open(filename, "w")  # 文件不存在,创建文件并打开

      for info in student:

          students_txt.write(str(info) + "\n")  # 按行存储,添加换行符

      students_txt.close()  # 关闭文件

  2 查找学生成绩信息

  def search():

      mark = True

      student_query = []  # 保存查询结果的学生列表

      while mark:

          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) as file:  # 打开文件

                  student = file.readlines()  # 读取全部内容

                  for list in student:

                      d = dict(eval(list))  # 字符串转字典

                      if id is not "":  # 判断是否按ID查

                          if d[id] == id:

                              student_query.append(d)  # 将找到的学生信息保存到列表中

                      elif name is not "":  # 判断是否按姓名查

                          if d[name] == name:

                              student_query.append(d)  # 将找到的学生信息保存到列表中

                  show_student(student_query)  # 显示查询结果

                  student_query.clear()  # 清空列表

                  inputMark = input("是否继续查询?(y/n):")

                  if inputMark == "y":

                      mark = True

                  else:

                      mark = False

          else:

              print("暂未保存数据信息...")

              return

  3 删除学生成绩信息

  def delete():

      mark = True  # 标记是否循环

      while mark:

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

          if studentId is not "":  # 判断要删除的学生是否存在

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

                  with open(filename, r) as rfile:  # 打开文件

                      student_old = rfile.readlines()  # 读取全部内容

              else:

                  student_old = []

              ifdel = False  # 标记是否删除

              if student_old:  # 如果存在学生信息

                  with open(filename, w) as wfile:  # 以写方式打开文件

                      d = {}  # 定义空字典

                      for list in student_old:

                          d = dict(eval(list))  # 字符串转字典

                          if d[id] != studentId:

                              wfile.write(str(d) + "\n")  # 将一条学生信息写入文件

                          else:

                              ifdel = True  # 标记已经删除

                      if ifdel:

                          print("ID为 %s 的学生信息已经被删除..." % studentId)

                      else:

                          print("没有找到ID为 %s 的学生信息..." % studentId)

              else:  # 不存在学生信息

                  print("无学生信息...")

                  break  # 退出循环

              show()  # 显示全部学生信息

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

              if inputMark == "y":

                  mark = True  # 继续删除

              else:

                  mark = False  # 退出删除学生信息功能

  4 修改学生成绩信息

  def modify():

      show()  # 显示全部学生信息

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

          with open(filename, r) as rfile:  # 打开文件

              student_old = rfile.readlines()  # 读取全部内容

      else:

          return

      studentid = input("请输入要修改的学生ID:")

      with open(filename, "w") as wfile:  # 以写模式打开文件

          for student in student_old:

              d = dict(eval(student))  # 字符串转字典

              if d["id"] == studentid:  # 是否为要修改的学生

                  print("找到了这名学生,可以修改他的信息!")

                  while True:  # 输入要修改的信息

                      try:

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

                          d["english"] = int(input("请输入英语成绩:"))

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

                          d["c"] = int(input("请输入C语言成绩:"))

                      except:

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

                      else:

                          break  # 跳出循环

                  student = str(d)  # 将字典转换为字符串

                  wfile.write(student + "\n")   # 将修改的信息写入到文件

                  print("修改成功!")

              else:

                  wfile.write(student)  # 将未修改的信息写入到文件

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

      if mark == "y":

          modify()  # 重新执行修改操作

  5 排序

  def sort():

      show()  # 显示全部学生信息

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

          with open(filename, r) as file:  # 打开文件

              student_old = file.readlines()  # 读取全部内容

              student_new = []

          for list in student_old:

              d = dict(eval(list))  # 字符串转字典

              student_new.append(d)  # 将转换后的字典添加到列表中

      else:

          return

      ascORdesc = input("请选择(0升序;1降序):")

      if ascORdesc == "0":  # 按升序排序

          ascORdescBool = False           # 标记变量,为False表示升序排序

      elif ascORdesc == "1":  # 按降序排序

          ascORdescBool = True          # 标记变量,为True表示降序排序

      else:

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

          sort()  

      mode = input("请选择排序方式(1按英语成绩排序;2按Python成绩排序;3按C语言成绩排序;0按总成绩排序):")

      if mode == "1":  # 按英语成绩排序

          student_new.sort(key=lambda x: x["english"], reverse=ascORdescBool)

      elif mode == "2":  # 按Python成绩排序

          student_new.sort(key=lambda x: x["python"], reverse=ascORdescBool)

      elif mode == "3":  # 按C语言成绩排序

          student_new.sort(key=lambda x: x["c"], reverse=ascORdescBool)

      elif mode == "0":  # 按总成绩排序

          student_new.sort(key=lambda x: x["english"] + x["python"] + x["c"], reverse=ascORdescBool)

      else:

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

          sort()

      show_student(student_new)  # 显示排序结果

   6 统计学生总数

  def total():

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

          with open(filename, r) as rfile:  # 打开文件

              student_old = rfile.readlines()  # 读取全部内容

              if student_old:

                  print("一共有 %d 名学生!" % len(student_old))

              else:

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

      else:

          print("暂未保存数据信息...")

   7 显示所有学生信息

  def show():

      student_new = []

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

          with open(filename, r) as rfile:  # 打开文件

              student_old = rfile.readlines()  # 读取全部内容

          for list in student_old:

              student_new.append(eval(list))  # 将找到的学生信息保存到列表中

          if student_new:

              show_student(student_new)

      else:

          print("暂未保存数据信息...")

  # 将保存在列表中的学生信息显示出来

  def show_student(studentList):

      if not studentList:

          print("(o@.@o) 无数据信息 (o@.@o) \n")

          return

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

      print(format_title.format("ID", "名字", "英语成绩", "Python成绩", "C语言成绩", "总成绩"))

      format_data = "{:^6}{:^12}\t{:^12}\t{:^12}\t{:^12}\t{:^12}"

      for info in studentList:

          print(format_data.format(info.get("id"), info.get("name"), str(info.get("english")), str(info.get("python")),

                                   str(info.get("c")),

                                   str(info.get("english") + info.get("python") + info.get("c")).center(12)))

  if __name__ == "__main__":

      main()

  

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

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

相关文章阅读

  • 关系型数据库与非关系型数据库简介一样吗,关系型数据库非关系型数据库有哪些
  • 关系型数据库与非关系型数据库简介一样吗,关系型数据库非关系型数据库有哪些,关系型数据库与非关系型数据库简介
  • 关于redis数据库入门详细介绍图片,redis数据库的使用,关于Redis数据库入门详细介绍
  • 使用php连接mysql数据库,php连接数据库的方法
  • 使用php连接mysql数据库,php连接数据库的方法,一文详解PHP连接MySQL数据库的三种方式
  • 什么是分库分表,为什么要进行分库分表-,分库分表的区别,数据库分库分表是什么,什么情况下需要用分库分表
  • vb中adodb连接数据库,
  • treeview控件绑定数据,wpf treeview数据绑定,详解TreeView绑定数据库
  • sql的多表查询,数据库如何实现多表查询
  • SQL数据库的图形管理界面工具是,sql图形界面创建数据库
  • SQL数据库的图形管理界面工具是,sql图形界面创建数据库,SQLServer2019 数据库的基本使用之图形化界面操作的实现
  • sql数据库定时备份怎么弄,mysql 定期备份
  • sql数据库定时备份怎么弄,mysql 定期备份,MySQL 数据库定时备份的几种方式(全面)
  • sqlserver的nvarchar和varchar,数据库varchar和nvarchar
  • sqlserver的nvarchar和varchar,数据库varchar和nvarchar,SQL中varchar和nvarchar的基本介绍及其区别
  • 留言与评论(共有 条评论)
       
    验证码: