2022年 11月 7日

手把手教你用Python制作学生管理系统,附源码+详细讲解

 哈喽~大家好,我是恰恰!之前有小伙伴问过我,想要做一个学校的学生管理的系统,所以今天就来做一个简单的学生管理系统吧!

一、首先是我们需要用到的开发环境

  • Python 3.8

  • Pycharm 2021.2

 

二、我们会涉及到的知识点

  • Python基础语法

  • 基本的数据类型与结构

  • 基本的逻辑控制语句

  • 实战小项目

三、然后就开始敲代码了

第一步:制作学生管理系统的界面

  1. 程序启动,显示信息管理系统欢迎界面,并显示功能菜单 (print)

  2. 用户用数字选择不同的功能 (input)

  3. 根据功能选择,执行不同的功能 (if 判断 多分支选择)

  4. 需要记录学生的 姓名、语文成绩、数学成绩、英语成绩 、总分 (input, 数据容器存储输入的学生信息)

  5. 如果查询到指定的学生信息,用户可以选择 修改 或者 删除 信息 (多分支选择里面的逻辑)

  6. 进入或退出时加载或保存数据 (文件操作)

  1. """
  2. str_info = """**************************************************
  3. 欢迎使用【学生信息管理系统】V1.0
  4. 请选择你想要进行的操作
  5. 1. 新建学生信息
  6. 2. 显示全部信息
  7. 3. 查询学生信息
  8. 4. 删除学生信息
  9. 5. 修改学生信息
  10. 0. 退出系统
  11. **************************************************"""
  12. while True:
  13. # 1. 程序启动,显示信息管理系统欢迎界面,并显示功能菜单 (print)
  14. print(str_info)
  15. # 2.用户用数字选择不同的功能(input)
  16. action = input('请选择你要进行的操作(输入数字):')
  17. if action == '1':
  18. print('1. 新建学生信息')
  19. elif action == '2':
  20. print('2. 显示全部信息')
  21. elif action == '3':
  22. print('3. 查询学生信息')
  23. elif action == '4':
  24. print('4. 删除学生信息')
  25. elif action == '5':
  26. print('5. 修改学生信息')
  27. elif action == '0':
  28. print('0. 退出系统')
  29. break
  30. else:
  31. print('请输入正确的选项!')

效果:

  1. **************************************************
  2. 欢迎使用【学生信息管理系统】V1.0
  3. 请选择你想要进行的操作
  4. 1. 新建学生信息
  5. 2. 显示全部信息
  6. 3. 查询学生信息
  7. 4. 删除学生信息
  8. 5. 修改学生信息
  9. 0. 退出系统
  10. **************************************************

第二步:新建学生信息

需要记录学生的 姓名、语文成绩、数学成绩、英语成绩 、总分 (input, 数据容器存储输入的学生信息)

  1. name = input('请输入学生的姓名:')
  2. chinese = int(input('请输入学生的语文成绩:'))
  3. math = int(input('请输入学生的数学成绩:'))
  4. english = int(input('请输入学生的英语成绩:'))
  5. total = chinese + math + english
  6. # 用什么数据容器接受比较好? 存储信息, 取值 采用字典
  7. students = [
  8. {'name': name, 'chinese': chinese, 'math': math, 'english': english, 'total': total}
  9. ]
  10. print(students)

第三步:显示全部学生信息

  1. students = [
  2. {'name': '正心', 'chinese': 59, 'math': 59, 'english': 59, 'total': 177},
  3. {'name': '张三', 'chinese': 59, 'math': 59, 'english': 59, 'total': 177},
  4. {'name': '李四', 'chinese': 59, 'math': 59, 'english': 59, 'total': 177},
  5. {'name': '王五', 'chinese': 59, 'math': 59, 'english': 59, 'total': 177},
  6. ]
  7. print('姓名\t语文\t数学\t英语\t总分')
  8. for stu in students:
  9. # print(stu)
  10. print(f'{stu["name"]}\t{stu["chinese"]}\t\t{stu["math"]}\t\t{stu["english"]}\t\t{stu["total"]}')

第四步:查询学生信息

  1. students = [
  2. {'name': '正心', 'chinese': 59, 'math': 59, 'english': 59, 'total': 177},
  3. {'name': '张三', 'chinese': 59, 'math': 59, 'english': 59, 'total': 177},
  4. {'name': '李四', 'chinese': 59, 'math': 59, 'english': 59, 'total': 177},
  5. {'name': '王五', 'chinese': 59, 'math': 59, 'english': 59, 'total': 177},
  6. ]
  7. # 5. 如果查询到指定的学生信息,用户可以选择 修改 或者 删除 信息 (多分支选择里面的逻辑)
  8. name = input('请输入你要查询学生的姓名:')
  9. # 先遍历所有学生
  10. for stu in students:
  11. # 如果满足条件, 就是查询到了
  12. if name == stu['name']:
  13. print('姓名\t语文\t数学\t英语\t总分')
  14. print(f'{stu["name"]}\t{stu["chinese"]}\t\t{stu["math"]}\t\t{stu["english"]}\t\t{stu["total"]}')
  15. # 一旦查询到了就停止查询
  16. break
  17. else:
  18. # 没找到
  19. print('该学生不存在, 请检查名字是否输入正确!')

第五步:修改学生信息

  1. import pprint
  2. students = [
  3. {'name': '正心', 'chinese': 59, 'math': 59, 'english': 59, 'total': 177},
  4. {'name': '张三', 'chinese': 59, 'math': 59, 'english': 59, 'total': 177},
  5. {'name': '李四', 'chinese': 59, 'math': 59, 'english': 59, 'total': 177},
  6. {'name': '王五', 'chinese': 59, 'math': 59, 'english': 59, 'total': 177},
  7. ]
  8. # 5. 如果查询到指定的学生信息,用户可以选择 修改 或者 删除 信息 (多分支选择里面的逻辑)
  9. name = input('请输入你要修改学生的姓名:')
  10. # 先遍历所有学生
  11. for stu in students:
  12. # 如果满足条件, 就是查询到了, 找到了这个学生
  13. # 找到了需要修改的学生
  14. if name == stu['name']:
  15. # 不想修改, 直接回车
  16. print('(如果不想修改,直接回车!)')
  17. name = input('请重新输入学生的姓名:')
  18. chinese = input('请重新输入学生的语文成绩:')
  19. math = input('请重新输入学生的数学成绩:')
  20. english = input('请重新输入学生的英语成绩:')
  21. # total = chinese + math + english
  22. # 用户输入了数据才修改
  23. if name:
  24. stu['name'] = name
  25. if chinese:
  26. stu['chinese'] = int(chinese)
  27. if math:
  28. stu['math'] = int(math)
  29. if english:
  30. stu['english'] = int(english)
  31. stu['total'] = stu['chinese'] + stu['math'] + stu['english']
  32. break
  33. else:
  34. # 没找到
  35. print('该学生不存在, 请检查名字是否输入正确!')
  36. pprint.pprint(students)

第六步:删除学生信息

  1. import pprint
  2. students = [
  3. {'name': '正心', 'chinese': 59, 'math': 59, 'english': 59, 'total': 177},
  4. {'name': '张三', 'chinese': 59, 'math': 59, 'english': 59, 'total': 177},
  5. {'name': '李四', 'chinese': 59, 'math': 59, 'english': 59, 'total': 177},
  6. {'name': '王五', 'chinese': 59, 'math': 59, 'english': 59, 'total': 177},
  7. ]
  8. # 5. 如果查询到指定的学生信息,用户可以选择 修改 或者 删除 信息 (多分支选择里面的逻辑)
  9. name = input('请输入你要删除学生的姓名:')
  10. # 先遍历所有学生
  11. for stu in students:
  12. # 找到学生
  13. if name == stu['name']:
  14. # 删除学生
  15. students.remove(stu)
  16. break
  17. else:
  18. # 没找到
  19. print('该学生不存在, 请检查名字是否输入正确!')
  20. pprint.pprint(students)

然后把他们拼接起来,就完成了我们简单的一个学生管理系统!

五、最后代码

  1. import json
  2. str_info = """**************************************************
  3. 欢迎使用【学生信息管理系统】V1.0
  4. 请选择你想要进行的操作
  5. 1. 新建学生信息
  6. 2. 显示全部信息
  7. 3. 查询学生信息
  8. 4. 删除学生信息
  9. 5. 修改学生信息
  10. 0. 退出系统
  11. **************************************************"""
  12. # 读取文件
  13. with open('students.json', mode='r', encoding='utf-8') as f:
  14. students_str = f.read()
  15. students = json.loads(students_str)
  16. while True:
  17. # 1. 程序启动,显示信息管理系统欢迎界面,并显示功能菜单 (print)
  18. print(str_info)
  19. # 2.用户用数字选择不同的功能(input)
  20. action = input('请选择你要进行的操作(输入数字):')
  21. if action == '1':
  22. print('1. 新建学生信息')
  23. name = input('请输入学生的姓名:')
  24. chinese = int(input('请输入学生的语文成绩:'))
  25. math = int(input('请输入学生的数学成绩:'))
  26. english = int(input('请输入学生的英语成绩:'))
  27. total = chinese + math + english
  28. # 新的学生
  29. stu = {'name': name, 'chinese': chinese, 'math': math, 'english': english, 'total': total}
  30. students.append(stu)
  31. elif action == '2':
  32. print('2. 显示全部信息')
  33. print('姓名\t语文\t数学\t英语\t总分')
  34. for stu in students:
  35. print(f'{stu["name"]}\t{stu["chinese"]}\t\t{stu["math"]}\t\t{stu["english"]}\t\t{stu["total"]}')
  36. elif action == '3':
  37. print('3. 查询学生信息')
  38. name = input('请输入你要查询学生的姓名:')
  39. # 先遍历所有学生
  40. for stu in students:
  41. # 如果满足条件, 就是查询到了
  42. if name == stu['name']:
  43. print('姓名\t语文\t数学\t英语\t总分')
  44. print(f'{stu["name"]}\t{stu["chinese"]}\t\t{stu["math"]}\t\t{stu["english"]}\t\t{stu["total"]}')
  45. # 一旦查询到了就停止查询
  46. break
  47. else:
  48. # 没找到
  49. print('该学生不存在, 请检查名字是否输入正确!')
  50. elif action == '4':
  51. print('4. 删除学生信息')
  52. name = input('请输入你要删除学生的姓名:')
  53. # 先遍历所有学生
  54. for stu in students:
  55. # 找到学生
  56. if name == stu['name']:
  57. # 删除学生
  58. students.remove(stu)
  59. break
  60. else:
  61. # 没找到
  62. print('该学生不存在, 请检查名字是否输入正确!')
  63. elif action == '5':
  64. print('5. 修改学生信息')
  65. name = input('请输入你要修改学生的姓名:')
  66. # 先遍历所有学生
  67. for stu in students:
  68. # 如果满足条件, 就是查询到了, 找到了这个学生
  69. # 找到了需要修改的学生
  70. if name == stu['name']:
  71. # 不想修改, 直接回车
  72. print('(如果不想修改,直接回车!)')
  73. name = input('请重新输入学生的姓名:')
  74. chinese = input('请重新输入学生的语文成绩:')
  75. math = input('请重新输入学生的数学成绩:')
  76. english = input('请重新输入学生的英语成绩:')
  77. # total = chinese + math + english
  78. # 用户输入了数据才修改
  79. if name:
  80. stu['name'] = name
  81. if chinese:
  82. stu['chinese'] = int(chinese)
  83. if math:
  84. stu['math'] = int(math)
  85. if english:
  86. stu['english'] = int(english)
  87. stu['total'] = stu['chinese'] + stu['math'] + stu['english']
  88. break
  89. else:
  90. # 没找到
  91. print('该学生不存在, 请检查名字是否输入正确!')
  92. elif action == '0':
  93. print('0. 退出系统')
  94. with open('students.json', mode='w', encoding='utf-8') as f:
  95. # 把列表对象转化成字符串 ascii 编码
  96. students_str = json.dumps(students, ensure_ascii=False)
  97. f.write(students_str)
  98. print(students_str)
  99. break
  100. else:
  101. print('请输入正确的选项!')

 其实一步步操作下来,还是挺简单的,只要思路步骤理清了,一步步的操作我们都可以自己做一个管理系统的,很多同学大概不知道可以用Python制作学校的管理系统,Python的应用范围真的很广呢,所以大家加油学起来吧,每天一个小知识,迟早变成Python大神!

喜欢记得点赞、评论、收藏哦~