Python学生成绩管理,python成绩管理系统设计

  Python学生成绩管理,python成绩管理系统设计

  本文主要介绍用python编写的学生成绩管理系统的八个功能实例。有需要的朋友可以借鉴一下,希望能有所帮助。祝大家进步很大,早日升职加薪。

  00-1010学生信息系统一、功能界面二、主功能三、学生信息录入功能四、学生信息搜索功能五、删除学生信息六、学生信息修改功能七、学生成绩排序八、学生人数统计九、显示打包的所有学生信息程序。

  

目录

  提示:python写的学生成绩管理系统,包含8个函数和打包教程。

  

学生信息系统

  def菜单():

  打印(=================student _ manger==============)

  打印(-)

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

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

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

  打印( \t\t4。修改学生成绩’)

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

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

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

  打印( \t\t8。显示功能介绍按钮’)

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

  打印(========================================)

  

一、功能界面

  定义主():

  菜单()

  而True:

  尝试:

  Choice=int(input(请选择你要做的操作3360 ))

  除了ValueError:

  打印(输入的数据有错误。您只能输入0到7之间的整数!)

  尝试:

  Choice=int(input(请重新输入: ))

  除了ValueError:

  打印(重复输入错误,退出系统!)

  破裂

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

  if choice==0:

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

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

  打印(感谢您的使用!)

  破裂

  elif答案==N 或答案==n:

  Print(返回到上一个操作!)

  继续

  else:

  输入(输入不正确,回到主界面!)

  继续

  elif choice==1:

  插入()

  elif choice==2:

  搜索()

  elif choice==3:

  删除()

  elif choice==4:

  修改()

  elif choice==5:

  排序()

  elif choice==6:

  总计()

  elif choice==7:

  显示()

  else:

   menum()

   else:

   print(你选择的操作无效,请重新输入!:)

  

  

  

三 、学生信息录入功能

  逻辑结构图

  

  

def insert():

   student_list = []

   id_list = []

   while True:

   id = input(请输入ID: )

   if not id:

   break

   name = input(请输入姓名:)

   if not name:

   break

   try:

   english = float(input(请输入英语成绩:))

   math = float(input(请输入数学成绩:))

   python = float(input(请输入Python成绩:))

   except ValueError:

   print(数据输入错误!)

   continue

   # 将录入的学生信息存放到字典中

   student = {id: id, name: name, english: english, math: math, Python: python}

   # 将每个学生的信息存放在列表中

   if student[id] in id_list: # student[id] = value(id)

   print(已存在相同ID:)

   for i in range(len(student_list)):

   if student_list[i][id] == student[id]: # 输出重复id元素

   print(student_list[i].items())

   break

   print(请重新录入!)

   else:

   id_list.append(str(student[id]))

   student_list.append(student)

   # 是否继续添加学生信息

   answer = input(是否继续添加学生信息?(Y/N): )

   if answer == Y or answer == y:

   continue

   elif answer == N or answer == n:

   # 存储学生信息

   save(student_list, filename)

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

   break

   else:

   print(输入错误,即将返回主界面!)

   break

  

  

  

四 、学生信息查找功能

  逻辑结构图

  

  代码

  

def search():

   while True:

   if os.path.exists(filename):

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

   student_qurey = s_file.readlines() # 将学生信息全部取出

   id_list = []

   name_list = []

   for i in student_qurey:

   d = dict(eval(i))

   id_list.append(d[id]) # 将所有学生的id存放在id_list中

   name_list.append(d[name]) # 将所有学生的name存放在id_list中

   try:

   mode = int(input(请选择查询模式: 1.按照ID查询 / 2.按照姓名查询 ))

   except ValueError:

   print(数据类型输入错误!请重新输入!)

   else:

   if mode == 1: # 按照ID查询

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

   if id in id_list:

   print(已经查找到该名学生:)

   print(ID\t\t\t姓名:\t\t英语成绩:\t\t数学成绩:\t\tPython成绩:\t\t总成绩:)

   for item in student_qurey:

   if dict(eval(item))[id] == id:

   p = dict(eval(item))

   print({0}\t\t{1}\t\t {2}\t\t {3}\t\t {4}\t\t {5}.format(

   p[id], p[name], p[english], p[math], p[Python],

   float(p[english])+float(p[math])+float(p[Python])))

   else:

   print(查无此人!)

   elif mode == 2: # 按照姓名查询

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

   if name in name_list:

   print(已经查找到该名学生:)

   print(ID\t\t\t姓名:\t\t英语成绩:\t\t数学成绩:\t\tPython成绩:\t\t总成绩:)

   for item in student_qurey:

   if dict(eval(item))[name] == name:

   p = dict(eval(item))

   print({0}\t\t{1}\t\t {2}\t\t {3}\t\t {4}\t\t {5}.format(

   p[id], p[name], p[english], p[math], p[Python],

   float(p[english]) + float(p[math]) + float(p[Python])))

   else:

   print(查无此人!)

   else:

   print(输入错误,只能选择1/2两种模式!)

   answer = input(是否继续查询? (Y/N))

   if answer == Y or answer == y:

   continue

   elif answer == N or answer == n:

   print(正在退出查询..)

   break

   else:

   print(输入错误,即将返回主界面!)

   break

   else:

   print(无学生信息文件!)

   return

  

  

  

五 、删除学生信息

  逻辑结构图

  

  代码

  

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:

   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

   elif answer == N or answer == n:

   break

   else:

   print(输入错误,即将返回主界面!)

   break

  

  

  

六 、学生信息修改功能

  逻辑结构图

  

  代码

  

def modify():

   show()

   if os.path.exists(filename):

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

   student_old = rfile.readlines() # 直接将文本文件的内容整行读取到列表中

   else:

   print(学生文件信息不存在!)

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

   with open(filename, w, encoding = utf-8) as just_file: # 判断学生是否在该系统中

   id_list = []

   for i in student_old:

   d = dict(eval(i))

   id_list.append(d[id]) # 将所有学生的id存放在id_list中

   if student_id in id_list: # 要修改的学生存在时

   for item in student_old:

   e = dict(eval(item))

   if e[id] == student_id:

   print(已找到该名学生!)

   while True:

   try:

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

   e[english] = input(请输入英语成绩: )

   e[math] = input(请输入数学成绩: )

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

   except ValueError:

   print(数据类型输入错误!请重新输入!)

   else:

   break # try...except..else: 输入为出错时,执行else语句

   just_file.write(str(e) + \n)

   print(修改成功!)

   else:

   just_file.write(str(e) + \n)

   else:

   answer1 = input(查无此人!,是否执行插入操作? (Y/N))

   if answer1 == Y or answer1 == y:

   insert()

   else:

   print(结束当前操作)

   answer = input(是否继续修改其余学生信息?(Y/N): )

   if answer == Y or answer == y:

   modify()

   elif answer == N or answer == n:

   print(结束修改,即将返回主界面..)

   else:

   print(输入错误,即将返回主界面!)

  

  

  

七 、学生成绩排序

  逻辑结构图

  

  代码

  

  def sort():

   student_new = []

   if os.path.exists(filename):

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

   student_list = sort_file.readlines() # 无序的学生信息列表

   for item in student_list:

   d = dict(eval(item))

   student_new.append(d) # 列表元素转化为字典

   while True:

   try:

   sort_choice = int(input(请选择排序方式: 0:升序 / 1:降序\t))

   except ValueError:

   print(输入的数据类型错误,请重新输入)

   else:

   if sort_choice == 0:

   Flag = False

   break

   elif sort_choice == 1:

   Flag = True

   break

   else:

   print(输入错误,只能在0/1中选择!)

   continue

   while True:

   try:

   asc_choice = int(input(请选择按照哪一门成绩进行排序: 英语:0 / 数学:1 / python:2\t\t))

   except ValueError:

   print(输入的数据类型错误,请重新输入)

   else:

   if asc_choice == 0:

   student_new.sort(key = lambda x: int(x[english]), reverse = Flag) # 根据列表中的元素进行排序

   show()

   break

   elif asc_choice == 1:

   student_new.sort(key = lambda x: int(x[math]), reverse = Flag)

   show()

   break

   elif asc_choice == 2:

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

   show()

   break

   elif asc_choice == 3:

   student_new.sort(key = lambda x: int(x[Python])+int(x[english])+int(x[math]), reverse = Flag)

   show()

   break

   else:

   print(输入错误,只能在0/1/2中选择!)

   continue

   else:

   print(学生信息文件不存在!)

  

  

  

八 、 学生人数统计

  逻辑结构图

  

  代码

  

def total():

   nums = 0

   if os.path.exists(filename):

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

   len_list = t_file.readlines()

   for i in range(len(len_list)):

   if len_list[i] != :

   nums += 1

   print(当前学生总人数为: , nums)

   print(请选择你想进行的下一步操作: )

   else:

   print(暂无学生信息文件)

  

  

  

九 、显示所有学生信息

  逻辑结构图

  

  代码

  

def show():

   if os.path.exists(filename):

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

   student_list = show_file.readlines()

   if student_list:

   print(----全部学生信息如下----)

   print(ID\t\t\t姓名:\t\t英语成绩:\t\t数学成绩:\t\tPython成绩:\t\t总成绩:)

   for item in student_list:

   p = dict(eval(item))

   print({0}\t\t{1}\t\t {2}\t\t {3}\t\t {4}\t\t {5}.format(

   p[id], p[name], p[english], p[math], p[Python],

   float(p[english]) + float(p[math]) + float(p[Python])))

   else:

   print(暂无学生信息!)

   else:

   print(暂无学生信息!)

  

  

  

程序打包

  在 pycharm 终端 或者 python命令界面, 使用:

  

pip install PyInstaller

  

  下载python打包程序,下载完成后, 执行以下操作:

  

pyinstaller —F F:\xxxx\xxx\xx\x.py

  

  其中:

  

  • -F 代表将程序打包为单个exe文件,
  • F:\xxx\xxx\xx.py 为你的学生成绩管理系统文件的绝对地址

  打包完成后,提示信息倒数第二行:Appending语句后面即为exe文件位置,若无特殊显示,则在当前目录父文件下

  以上就是python编写学生成绩管理系统实现八个功能示例的详细内容,更多关于python编写学生成绩管理系统的资料请关注盛行IT软件开发工作室其它相关文章!

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

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