一.前言
学生信息管理系统,相信大家或多或少都有做过
最近看很多学生作业都是制作一个学生信息管理系统
于是,今天带大家做一个简单的学生信息管理系统
二.开发环境:
我用到的开发环境
- Python 3.8
- Pycharm 2021.2
三.涉及知识点
- Python基础语法
- 基本的数据类型与结构
- 基本的逻辑控制语句
- 实战小项目
四.接下来我们开始敲代码
我们一步步来完成学生信息管理系统
第一步:制作学生信息管理系统的界面
\"\"\"
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(\'姓名\\t语文\\t数学\\t英语\\t总分\')
for stu in students:
# print(stu)
print(f\'{stu[\"name\"]}\\t{stu[\"chinese\"]}\\t\\t{stu[\"math\"]}\\t\\t{stu[\"english\"]}\\t\\t{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(\'姓名\\t语文\\t数学\\t英语\\t总分\')
print(f\'{stu[\"name\"]}\\t{stu[\"chinese\"]}\\t\\t{stu[\"math\"]}\\t\\t{stu[\"english\"]}\\t\\t{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(\'姓名\\t语文\\t数学\\t英语\\t总分\')
for stu in students:
print(f\'{stu[\"name\"]}\\t{stu[\"chinese\"]}\\t\\t{stu[\"math\"]}\\t\\t{stu[\"english\"]}\\t\\t{stu[\"total\"]}\')
elif action == \'3\':
print(\'3. 查询学生信息\')
name = input(\'请输入你要查询学生的姓名:\')
# 先遍历所有学生
for stu in students:
# 如果满足条件, 就是查询到了
if name == stu[\'name\']:
print(\'姓名\\t语文\\t数学\\t英语\\t总分\')
print(f\'{stu[\"name\"]}\\t{stu[\"chinese\"]}\\t\\t{stu[\"math\"]}\\t\\t{stu[\"english\"]}\\t\\t{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基础入门教程推荐:←点击左边蓝色文字就可以跳转观看了
来源:https://www.cnblogs.com/djdjdj123/p/15775745.html
图文来源于网络,如有侵权请联系删除。