大蟒蛇python教程共享python实现简易的学生信息管理系统

python教程分享python实现简易的学生信息管理系统实例为大家分享了python实现简易学生信息管理系统的具体代码,供大家参考,具体内容如下

一、系统功能

1.录入学生信息

2.查找学生信息

3.修改学生信息

4.删除学生信息

5.成绩排序

6.统计学生总人数

7.显示所有学生信息

0.退出系统

二、系统开发环境

1.操作系统:win7

2.开发工具:pycharm

3.python内置模块:os,re

三、实现代码

import os  filename='students.txt'  def main():      while true:          menum()          choice=int(input('请选择功能:'))          if choice in [0,1,2,3,4,5,6,7]:              if choice==0:                  answer=input('您确定要退出系统吗?(y/n)')                  if answer=='y' or answer=='y':                      print('感谢您的使用!')                      break #退出while循环并退出系统                  else:                      continue              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() #显示所有学生信息     def insert():      student_list=[] #用于存储学生信息,列表每个元素是字典。      while true:          id=input('请输入学生id:')          if not id:              break          name=input('请输入学生姓名:')          if not name:              break          try:              englist=int(input('请输入英语成绩:'))              python=int(input('请输入python成绩:'))              java=int(input('请输入java成绩:'))          except:              print('输入无效,不是整数类型,请重新输入!')              continue          #将录入的学生信息保存到字典中          student={'id':id,'name':name,'english':englist,'python':python,'java':java}          #将学生信息添加到列表中          student_list.append(student)          answer=input('是否继续添加?(y/n)')          if answer=='y' or answer=='y':              continue          else:              break         #将学生信息保存在文件中      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(f'id为{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文件的位置。

以上就是python教程分享python实现简易的学生信息管理系统的全部内容,希望对大家的学习有所帮助,也希望大家多多支持<计算机技术网(www.ctvol.com)!!>。

需要了解更多python教程分享python实现简易的学生信息管理系统,都可以关注python教程分享栏目—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/pythontutorial/1118915.html

(0)
上一篇 2022年7月11日
下一篇 2022年7月11日

精彩推荐