Python基础案例练习:制作学生信息管理系统
一.前言
学生信息管理系统,相信大家或多或少都有做过
最近看很多学生作业都是制作一个学生信息管理系统
于是,今天带大家做一个简单的学生信息管理系统
二.开发环境:
我用到的开发环境
- Python 3.8
- Pycharm 2021.2
三.涉及知识点
- Python基础语法
- 基本的数据类型与结构
- 基本的逻辑控制语句
- 实战小项目
四.接下来我们开始敲代码
我们一步步来完成学生信息管理系统
第一步:制作学生信息管理系统的界面
- 程序启动,显示信息管理系统欢迎界面,并显示功能菜单 (print)
- 用户用数字选择不同的功能 (input)
- 根据功能选择,执行不同的功能 (if 判断 多分支选择)
- 需要记录学生的 姓名、语文成绩、数学成绩、英语成绩 、总分 (input, 数据容器存储输入的学生信息)
- 如果查询到指定的学生信息,用户可以选择 修改 或者 删除 信息 (多分支选择里面的逻辑)
- 进入或退出时加载或保存数据 (文件操作)
"""
str_info = """**************************************************
欢迎使用【学生信息管理系统】V1.0
请选择你想要进行的操作
1. 新建学生信息
2. 显示全部信息
3. 查询学生信息
4. 删除学生信息
5. 修改学生信息
0. 退出系统
**************************************************"""
while True:
# 1. 程序启动,显示信息管理系统欢迎界面,并显示功能菜单 (print)
print(str_info)
# 2.用户用数字选择不同的功能(input)
action = input("请选择你要进行的操作(输入数字):")
if action == "1":
print("1. 新建学生信息")
elif action == "2":
print("2. 显示全部信息")
elif action == "3":
print("3. 查询学生信息")
elif action == "4":
print("4. 删除学生信息")
elif action == "5":
print("5. 修改学生信息")
elif action == "0":
print("0. 退出系统")
break
else:
print("请输入正确的选项!")
效果:
**************************************************
欢迎使用【学生信息管理系统】V1.0
请选择你想要进行的操作
1. 新建学生信息
2. 显示全部信息
3. 查询学生信息
4. 删除学生信息
5. 修改学生信息
0. 退出系统
**************************************************
第二步:新建学生信息
需要记录学生的 姓名、语文成绩、数学成绩、英语成绩 、总分 (input, 数据容器存储输入的学生信息)
name = input("请输入学生的姓名:")
chinese = int(input("请输入学生的语文成绩:"))
math = int(input("请输入学生的数学成绩:"))
english = int(input("请输入学生的英语成绩:"))
total = chinese + math + english
# 用什么数据容器接受比较好? 存储信息, 取值 采用字典
students = [
{"name": name, "chinese": chinese, "math": math, "english": english, "total": total}
]
print(students)
第三步:显示全部学生信息
students = [
{"name": "正心", "chinese": 59, "math": 59, "english": 59, "total": 177},
{"name": "张三", "chinese": 59, "math": 59, "english": 59, "total": 177},
{"name": "李四", "chinese": 59, "math": 59, "english": 59, "total": 177},
{"name": "王五", "chinese": 59, "math": 59, "english": 59, "total": 177},
]
print("姓名 语文 数学 英语 总分")
for stu in students:
# print(stu)
print(f"{stu["name"]} {stu["chinese"]} {stu["math"]} {stu["english"]} {stu["total"]}")
第四步:查询学生信息
students = [
{"name": "正心", "chinese": 59, "math": 59, "english": 59, "total": 177},
{"name": "张三", "chinese": 59, "math": 59, "english": 59, "total": 177},
{"name": "李四", "chinese": 59, "math": 59, "english": 59, "total": 177},
{"name": "王五", "chinese": 59, "math": 59, "english": 59, "total": 177},
]
# 5. 如果查询到指定的学生信息,用户可以选择 修改 或者 删除 信息 (多分支选择里面的逻辑)
name = input("请输入你要查询学生的姓名:")
# 先遍历所有学生
for stu in students:
# 如果满足条件, 就是查询到了
if name == stu["name"]:
print("姓名 语文 数学 英语 总分")
print(f"{stu["name"]} {stu["chinese"]} {stu["math"]} {stu["english"]} {stu["total"]}")
# 一旦查询到了就停止查询
break
else:
# 没找到
print("该学生不存在, 请检查名字是否输入正确!")
第五步:修改学生信息
import pprint
students = [
{"name": "正心", "chinese": 59, "math": 59, "english": 59, "total": 177},
{"name": "张三", "chinese": 59, "math": 59, "english": 59, "total": 177},
{"name": "李四", "chinese": 59, "math": 59, "english": 59, "total": 177},
{"name": "王五", "chinese": 59, "math": 59, "english": 59, "total": 177},
]
# 5. 如果查询到指定的学生信息,用户可以选择 修改 或者 删除 信息 (多分支选择里面的逻辑)
name = input("请输入你要修改学生的姓名:")
# 先遍历所有学生
for stu in students:
# 如果满足条件, 就是查询到了, 找到了这个学生
# 找到了需要修改的学生
if name == stu["name"]:
# 不想修改, 直接回车
print("(如果不想修改,直接回车!)")
name = input("请重新输入学生的姓名:")
chinese = input("请重新输入学生的语文成绩:")
math = input("请重新输入学生的数学成绩:")
english = input("请重新输入学生的英语成绩:")
# total = chinese + math + english
# 用户输入了数据才修改
if name:
stu["name"] = name
if chinese:
stu["chinese"] = int(chinese)
if math:
stu["math"] = int(math)
if english:
stu["english"] = int(english)
stu["total"] = stu["chinese"] + stu["math"] + stu["english"]
break
else:
# 没找到
print("该学生不存在, 请检查名字是否输入正确!")
pprint.pprint(students)
第六步: 删除学生信息
import pprint
students = [
{"name": "正心", "chinese": 59, "math": 59, "english": 59, "total": 177},
{"name": "张三", "chinese": 59, "math": 59, "english": 59, "total": 177},
{"name": "李四", "chinese": 59, "math": 59, "english": 59, "total": 177},
{"name": "王五", "chinese": 59, "math": 59, "english": 59, "total": 177},
]
# 5. 如果查询到指定的学生信息,用户可以选择 修改 或者 删除 信息 (多分支选择里面的逻辑)
name = input("请输入你要删除学生的姓名:")
# 先遍历所有学生
for stu in students:
# 找到学生
if name == stu["name"]:
# 删除学生
students.remove(stu)
break
else:
# 没找到
print("该学生不存在, 请检查名字是否输入正确!")
pprint.pprint(students)
然后把他们拼接起来,就完成了我们简单的一个学生管理系统!
五、最后代码
import json
str_info = """**************************************************
欢迎使用【学生信息管理系统】V1.0
请选择你想要进行的操作
1. 新建学生信息
2. 显示全部信息
3. 查询学生信息
4. 删除学生信息
5. 修改学生信息
0. 退出系统
**************************************************"""
# 读取文件
with open("students.json", mode="r", encoding="utf-8") as f:
students_str = f.read()
students = json.loads(students_str)
while True:
# 1. 程序启动,显示信息管理系统欢迎界面,并显示功能菜单 (print)
print(str_info)
# 2.用户用数字选择不同的功能(input)
action = input("请选择你要进行的操作(输入数字):")
if action == "1":
print("1. 新建学生信息")
name = input("请输入学生的姓名:")
chinese = int(input("请输入学生的语文成绩:"))
math = int(input("请输入学生的数学成绩:"))
english = int(input("请输入学生的英语成绩:"))
total = chinese + math + english
# 新的学生
stu = {"name": name, "chinese": chinese, "math": math, "english": english, "total": total}
students.append(stu)
elif action == "2":
print("2. 显示全部信息")
print("姓名 语文 数学 英语 总分")
for stu in students:
print(f"{stu["name"]} {stu["chinese"]} {stu["math"]} {stu["english"]} {stu["total"]}")
elif action == "3":
print("3. 查询学生信息")
name = input("请输入你要查询学生的姓名:")
# 先遍历所有学生
for stu in students:
# 如果满足条件, 就是查询到了
if name == stu["name"]:
print("姓名 语文 数学 英语 总分")
print(f"{stu["name"]} {stu["chinese"]} {stu["math"]} {stu["english"]} {stu["total"]}")
# 一旦查询到了就停止查询
break
else:
# 没找到
print("该学生不存在, 请检查名字是否输入正确!")
elif action == "4":
print("4. 删除学生信息")
name = input("请输入你要删除学生的姓名:")
# 先遍历所有学生
for stu in students:
# 找到学生
if name == stu["name"]:
# 删除学生
students.remove(stu)
break
else:
# 没找到
print("该学生不存在, 请检查名字是否输入正确!")
elif action == "5":
print("5. 修改学生信息")
name = input("请输入你要修改学生的姓名:")
# 先遍历所有学生
for stu in students:
# 如果满足条件, 就是查询到了, 找到了这个学生
# 找到了需要修改的学生
if name == stu["name"]:
# 不想修改, 直接回车
print("(如果不想修改,直接回车!)")
name = input("请重新输入学生的姓名:")
chinese = input("请重新输入学生的语文成绩:")
math = input("请重新输入学生的数学成绩:")
english = input("请重新输入学生的英语成绩:")
# total = chinese + math + english
# 用户输入了数据才修改
if name:
stu["name"] = name
if chinese:
stu["chinese"] = int(chinese)
if math:
stu["math"] = int(math)
if english:
stu["english"] = int(english)
stu["total"] = stu["chinese"] + stu["math"] + stu["english"]
break
else:
# 没找到
print("该学生不存在, 请检查名字是否输入正确!")
elif action == "0":
print("0. 退出系统")
with open("students.json", mode="w", encoding="utf-8") as f:
# 把列表对象转化成字符串 ascii 编码
students_str = json.dumps(students, ensure_ascii=False)
f.write(students_str)
print(students_str)
break
else:
print("请输入正确的选项!")
是不是很简单!欢迎留言讨论!
喜欢记得点赞哦!
最后要是代码看不懂,还有视频教程
学生管理系统视频教程地址:←点击左边蓝色文字就可以跳转观看了
Python基础入门教程推荐:←点击左边蓝色文字就可以跳转观看了