一.前言

学生信息管理系统,相信大家或多或少都有做过

最近看很多学生作业都是制作一个学生信息管理系统

于是,今天带大家做一个简单的学生信息管理系统

二.开发环境:

我用到的开发环境

  • 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基础案例练习:制作学生信息管理系统的更多相关文章

  1. 基于Spring MVC + Spring + MyBatis的【学生信息管理系统】

    资源下载:https://download.csdn.net/download/weixin_44893902/45603211 练习点设计: 模糊查询.删除.新增 一.语言和环境 实现语言:JAVA ...

  2. Android(java)学习笔记195:学生信息管理系统案例(SQLite + ListView)

    1.首先说明一个知识点,通常我们显示布局文件xml都是如下: setContentView(R.layout.activity_main): 其实每一个xml布局文件就好像一个气球,我们可以使用Vie ...

  3. Py学生信息管理系统 案例(优化版)

    # 第一题:设计一个全局变量,来保存很多个学生信息:学生(学号, 姓名,年龄):思考要用怎样的结构来保存:# 第二题:在第一题基础上,完成:让用户输入一个新的学生信息(学号,姓名,年龄):你将其保存在 ...

  4. Python学生信息管理系统的开发

    # 第一题:设计一个全局变量,来保存很多个学生信息:学生(学号, 姓名,年龄):思考要用怎样的结构来保存:# 第二题:在第一题基础上,完成:让用户输入一个新的学生信息(学号,姓名,年龄):你将其保存在 ...

  5. Android(java)学习笔记188:学生信息管理系统案例(SQLite + ListView)

    1.首先说明一个知识点,通常我们显示布局文件xml都是如下: setContentView(R.layout.activity_main): 其实每一个xml布局文件就好像一个气球,我们可以使用Vie ...

  6. 面向对象案例-学生信息管理系统V0.6

    更新版本 面向对象案例 - 学生信息管理系统V1.0 项目要求: 实体类: 学生类: id, 姓名,年龄,性别,成绩 需要使用数组保存学生信息 Student[] allStu 需要完成的方法 1. ...

  7. python 04 学生信息管理系统

    今天任务不多,做了学生信息管理系统1.0,使用字典存储学生个体信息,列表存储学生字典.注意dict定义要在循环体内,若定义成全局变量或循环体外,则旧数据会被新数据覆盖.dict属于可变类型数据,内容改 ...

  8. 【python免费代码】设计一个简单的学生信息管理系统

    文章目录 前言 一.理解 二.部分截图展示 三.代码 四.总结 前言 设计一个简单的学生信息管理系统,实现以下功能(bug) : 录入学生信息,信息以文件方式存储 以学生学号或者学生姓名为条件查询该学 ...

  9. PHP实现简单的学生信息管理系统(web版)

    (∩_∩) 1.概述 学了php的一些基础,包括HTML,php,pdo,mysql操作等,一直都没有将它们有机结合.最近写了一个简单的网页版学生信息管理系统,前台用HTML,脚本用到了JavaScr ...

随机推荐

  1. Dubbo多版本控制

    当系统进行升级时,一般都是采用"灰度发布(又称为金丝雀发布)"过程.即在低压力时段,让部分消费者先调用新的提供者实现类,其余的仍然调用老的实现类,在新的实现类运行没有问题的情况下, ...

  2. linux系统的一些常用命令

    cd 进入某个目录 ifconfig 查看本机的ip cp (要复制的文件的位置) (要把文件复制的位置) ll 查看文件下,文件的操作权限 ls查看该文件夹下的有那些文件和文件夹 vi filena ...

  3. 【HarmonyOS】【Json解析】ZSON 与 HiJson 使用

    HiLog配置 为了方便调试,查看,先设置好Hilog public static final HiLogLabel loglabel = new HiLogLabel(HiLog.LOG_APP,0 ...

  4. GIS应用|快速开发在线路径导航应用

    导航应用可用于路径规划及仿真,并且常作为一个重要模块融入到各类企业管理业务中,如面向物流管理.商品配送.车辆监控等场景,那么如何开发一个简单的在线路径导航应用呢?SuperMap Online为您解答 ...

  5. DDS协议解读及测试开发实践

    DDS概述 DDS是OMG在2004年发布的中间件协议和应用程序接口(API)标准,它为分布式系统提供了低延迟.高可靠性.可扩展的通信架构标准.DDS目前在工业.医疗.交通.能源.国防领域都有广泛的应 ...

  6. Google earth engine 绘制图像间散点图

    这段代码实现了在Google earth engine中绘制图像/波段间的散点图,得到相关关系.适用于探究数据间的相关性,进行数据的交叉验证. 代码来源于官方帮助:https://developers ...

  7. LuoguP7593 凑数 题解

    Content 给定 \(n\) 个整数 \(1,2,\dots,n\),请问是否能从这 \(n\) 个数中恰好选 \(k\) 个数,使得这 \(k\) 个数的和为 \(s\). 数据范围:\(t\) ...

  8. ffmpeg 系列博客

    https://www.ffmpeg.org/download.html#build-macffmpeg 系列博文https://me.csdn.net/blog/leixiaohua1020http ...

  9. java 编程基础 Class对象 反射 :参数反射

    方法参数反射 Java8在java.lang.reflect包下新增了Executable抽象基类,该对象代表可执行的类成员,该类派生了Constructor和Method两个子类.Executabl ...

  10. java 多线程:线程安全问题,示例DateFormat多线程执行冲突解决方案ThreadLocal、方法内变量

    SimpleDateFormat多线程中执行报错 java.lang.NumberFormatException: For input string: ""   import ja ...