当前位置:   article > 正文

【项目实战】Python 学生管理系统(两种思路)_学生管理系统python

学生管理系统python

前言

许多和我一样的编程小白遇到的第一个Python项目都是学生管理系统,今天这篇博客我将和各位一起实战这样一个简单的项目——学生管理系统。该项目最终呈现效果为增加学生、删除学生、编辑学生、查找学生、输出所有学生信息,也就是经典的增、删、改、查

每个方法的完整代码都在该方法的末尾,话不多说,我们开始。

本文仅个人观点,如果你有更好的方法,欢迎评论区讨论交流,共同进步。

第一种方法:用字典(dict)嵌套列表(list)实现

这种方法仅需要用到两个知识:字典与列表,不需要用到面向对象的知识

首先,该方法的原理是用学号作为字典的键(key),因为每一个学生的学号都是不同的,满足字典中key的互异性,否则如果用姓名作为key,那如果有同名的学生,处理起来就会特别麻烦。

用姓名、性别、年龄所组成的列表作为该键所对应的值(value),进而完成学生信息的储存。

我们先创建一个字典,用来储存所有学生的信息:

  1. stu_dict = {}
  2. # stu_dict = dict() 也可以使用函数 dict() 来创建字典

增加学生

我们定义一个函数用于增加学生,函数体中的功能很简单:如果该学生的学号已经在字典的key中了(即已存在该学生),就更新该key所对应的value,否则就新增一个学生。我们可以用一条语句就实现该效果:

  1. def Add_stu(id,name,gender,age): # 传入姓名、学号、性别、年龄四个参数
  2. stu_dict[id] = [name,gender,age] # 列表从0到2号位分别为姓名、性别、年龄
  3. print("添加成功。\n") # 加一个换行符 \n ,使最终效果更美观

删除学生

这个函数中我们使用到了 if...in... 语句,让我们很方便的查找传入的学号是否在所有学号中。要注意的是,不同于列表有多种删除元素的方式,在字典中,我们只能通过 del... 来删除元素。

  1. def Del_stu(id): # 传入学生的学号
  2. if id in stu_dict.keys(): # 查找该学号是否在字典的keys(即所有学生的学号)中
  3. del stu_dict[id] # 删除所对应的字典元素
  4. print("删除成功。\n")
  5. else:
  6. print("未找到该学生,无法删除。\n")

修改学生

  1. def Mod_stu(id):
  2. if id in stu_dict.keys():
  3. name = input("学生姓名:")
  4. gender = input("学生性别:")
  5. age = input("学生年龄:")
  6. stu_dict[id] = [name,gender,age] # 用新信息覆盖旧信息
  7. print("修改成功。\n")
  8. else:
  9. print("未找到该学生,无法修改。\n")

查找学生

在上文中,我们已经知道了姓名、性别、年龄在列表中的下标索引分别为0、1、2,我们可以通过 字典名[key][嵌套列表中想要访问的元素的下标] 来获得嵌套列表中对应下标的值。

  1. def Find_stu(id):
  2. if id in stu_dict.keys():
  3. name = stu_dict[id][0]
  4. gender = stu_dict[id][1]
  5. age = stu_dict[id][2]
  6. print("经查询,该学生信息如下:")
  7. print(f"姓名:{name},学号:{id},性别:{gender},年龄:{age}\n")
  8. else:
  9. print("未找到该学生。\n")

输出所有学生信息

输出所有学生的信息,也就是输出所有字典元素,我们只需要用简单的for循环即可实现:

  1. def View_stu():
  2. if stu_dict: # 如果字典中不为空,则进入if语句
  3. for id in stu_dict.keys():
  4. name = stu_dict[id][0]
  5. gender = stu_dict[id][1]
  6. age = stu_dict[id][2]
  7. print(f"姓名:{name},学号:{id},性别:{gender},年龄:{age}")
  8. print() # 添加一个空行,使最终效果更美观
  9. else:
  10. print("无学生。")

制作菜单

写完了以上五个功能,学生管理系统的开发就接近尾声了,最后,我们只需要制作一个菜单即可:

  1. while (True):
  2. print("请输入1-5的数值,输入-1结束程序:")
  3. print("1.增加学生\t2.删除学生")
  4. print("3.修改学生\t4.查找学生")
  5. print("5.输出所有学生信息")
  6. i = input()
  7. if i == '-1':
  8. exit()
  9. elif i == '1':
  10. name = input("学生姓名:")
  11. id = input("学生学号:")
  12. gender = input("学生性别:")
  13. age = input("学生年龄:")
  14. Add_stu(id,name,gender,age) # 注意传参顺序不要错
  15. elif i == '2':
  16. id = input("请输入要删除学生的学号:")
  17. Del_stu(id)
  18. elif i == '3':
  19. id = input("请输入要修改学生的学号:")
  20. Mod_stu(id)
  21. elif i == '4':
  22. id = input("请输入要查找学生的学号:")
  23. Find_stu(id)
  24. elif i == '5':
  25. View_stu()
  26. else:
  27. print("请输入有效的数字。")

完整代码

  1. stu_dict = {}
  2. # stu_dict = dict() 也可以使用函数 dict() 来创建字典
  3. def Add_stu(id,name,gender,age): # 传入姓名、学号、性别、年龄四个参数
  4. stu_dict[id] = [name,gender,age] # 列表从0到2号位分别为姓名、性别、年龄
  5. print("添加成功。\n") # 加一个换行符 \n ,使最终效果更美观
  6. def Del_stu(id): # 传入学生的学号
  7. if id in stu_dict.keys(): # 查找该学号是否在字典的keys(即所有学生的学号)中
  8. del stu_dict[id] # 删除所对应的字典元素
  9. print("删除成功。\n")
  10. else:
  11. print("未找到该学生,无法删除。\n")
  12. def Mod_stu(id):
  13. if id in stu_dict.keys():
  14. name = input("学生姓名:")
  15. gender = input("学生性别:")
  16. age = input("学生年龄:")
  17. stu_dict[id] = [name,gender,age] # 用新信息覆盖旧信息
  18. print("修改成功。\n")
  19. else:
  20. print("未找到该学生,无法修改。\n")
  21. def Find_stu(id):
  22. if id in stu_dict.keys():
  23. name = stu_dict[id][0]
  24. gender = stu_dict[id][1]
  25. age = stu_dict[id][2]
  26. print("经查询,该学生信息如下:")
  27. print(f"姓名:{name},学号:{id},性别:{gender},年龄:{age}\n")
  28. else:
  29. print("未找到该学生。\n")
  30. def View_stu():
  31. if stu_dict: # 如果字典中不为空,则进入if语句
  32. for id in stu_dict.keys():
  33. name = stu_dict[id][0]
  34. gender = stu_dict[id][1]
  35. age = stu_dict[id][2]
  36. print(f"姓名:{name},学号:{id},性别:{gender},年龄:{age}")
  37. print() # 添加一个空行,使最终效果更美观
  38. else:
  39. print("无学生。")
  40. while (True):
  41. print("请输入1-5的数值,输入-1结束程序:")
  42. print("1.增加学生\t2.删除学生")
  43. print("3.修改学生\t4.查找学生")
  44. print("5.输出所有学生信息")
  45. i = input()
  46. if i == '-1':
  47. exit()
  48. elif i == '1':
  49. name = input("学生姓名:")
  50. id = input("学生学号:")
  51. gender = input("学生性别:")
  52. age = input("学生年龄:")
  53. Add_stu(id,name,gender,age) # 注意传参顺序不要错
  54. elif i == '2':
  55. id = input("请输入要删除学生的学号:")
  56. Del_stu(id)
  57. elif i == '3':
  58. id = input("请输入要修改学生的学号:")
  59. Mod_stu(id)
  60. elif i == '4':
  61. id = input("请输入要查找学生的学号:")
  62. Find_stu(id)
  63. elif i == '5':
  64. View_stu()
  65. else:
  66. print("请输入有效的数字。")

第二种方法:用类(class)实现

待更新...

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/170291?site
推荐阅读
相关标签
  

闽ICP备14008679号