基于python实现学生管理系统
前言
学生管理系统是每门编程语言最经典的基础案例,它基本囊概了前面的知识点,下面是我的思路及代码,可以了解了解。
一、先建立思路
0.开始展示操作
1.查看全部
2.指定查看
3.增加
4.修改
5.删除
二、效果演示
三、代码开始
1.先导入整篇文章所要用的模块
如下:
import time
import json
2.实现操作0
代码如下(示例):
text = f"""
-----------------------------------------------------------------------------------------------------
| 学生 输入1: 查看所有学生信息列表 |
| 管理 输入2: 查看指定学生信息 |
| 系统 输入3: 增加学生信息 |
| 操作 输入4: 修改学生信息 |
| 说明 输入5: 删除学生信息 |
| ^~^ 输入0: 保存退出 |
| {time.strftime('%Y-%m-%d %H:%M:%S')} |
------------------------------------------------------------------------------------------------------
"""
print(text)
with open('studens.json', 'r', encoding='utf-8') as f:
students = f.read( ) # 此处需要自己创建一个名为studens的json文件,并一开始就进行读取。
2.实现操作1
while True: # 开始运行程序
a = input("请输入你要操作的指令:")
if a == '1':
print("查看所有学生信息列表")
for stu in student:
print(f"姓名:{stu['name']}\t语文:{stu['chinese']}\t数学:{stu['math']}\t英语:{stu['english']}\t总分:{stu['total']}")
else:
print('请输入正确的指令')
2.实现操作2
elif a == '2':
print('查看指定学生信息')
b = input("请输入要查询的学生姓名:")
for stu in student:
if b == stu['name']:
print(f"姓名:{stu['name']}\t语文:{stu['chinese']}\t数学:{stu['math']}\t英语:{stu['english']}\t总分:{stu['total']}")
print("*******查询成功********")
break
else:
print("该学生不存在")
2.实现操作3
elif a == '3':
print('增加学生信息')
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}
student.append(stu)
2.实现操作4
elif a == '4':
print('修改学生信息 ')
name = input('请输入您要修改学生的名字:')
for stu in student:
# 如果输入的学生姓名等于学生列表里面某个学生, 代表找到了该学生
if name == stu['name']:
"""执行修改学生信息的操作, 原有的数据不想修改, 直接回车"""
print('(如果输入为空, 就使用原有的数据)')
name = input('请重新输入学生的姓名:')
chinese = input('请重新输入学生语文成绩:')
math = input('请重新输入学生数学成绩:')
english = input('请重新输入学生英语成绩:')
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']
print('########----- 修改成功 -----#######')
break
else:
print('该学生不存在, 请检查名字是否输入正确!')
2.实现操作5
elif a == '5':
print('删除学生信息')
name = input('你想要删除的学生姓名:')
for stu in student:
if name == stu['name']:
student.remove(stu)
print('*********删除成功**********')
break
else:
print('该学生不存在,请检查或者重新创建一个')
2.实现操作0
elif a == '0':
students_str = json.dumps(student, ensure_ascii=False)
with open('studens.json', 'w', encoding='utf-8') as e:
e.write(students_str)
print('保存成功')
break
四、完整代码
import time
import json
text = f"""
-----------------------------------------------------------------------------------------------------
| 学生 输入1: 查看所有学生信息列表 |
| 管理 输入2: 查看指定学生信息 |
| 系统 输入3: 增加学生信息 |
| 操作 输入4: 修改学生信息 |
| 说明 输入5: 删除学生信息 |
| ^~^ 输入0: 保存退出 |
| {time.strftime('%Y-%m-%d %H:%M:%S')} |
------------------------------------------------------------------------------------------------------
"""
print(text)
with open('studens.json', 'r', encoding='utf-8') as f:
students = f.read( )
student = json.loads(students)
while True:
a = input("请输入你要操作的指令:")
if a == '1':
print("查看所有学生信息列表")
for stu in student:
print(f"姓名:{stu['name']}\t语文:{stu['chinese']}\t数学:{stu['math']}\t英语:{stu['english']}\t总分:{stu['total']}")
elif a == '2':
print('查看指定学生信息')
b = input("请输入要查询的学生姓名:")
for stu in student:
if b == stu['name']:
print(f"姓名:{stu['name']}\t语文:{stu['chinese']}\t数学:{stu['math']}\t英语:{stu['english']}\t总分:{stu['total']}")
print("*******查询成功********")
break
else:
print("该学生不存在")
elif a == '3':
print('增加学生信息')
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}
student.append(stu)
elif a == '4':
print('修改学生信息 ')
name = input('请输入您要修改学生的名字:')
for stu in student:
# 如果输入的学生姓名等于学生列表里面某个学生, 代表找到了该学生
if name == stu['name']:
"""执行修改学生信息的操作, 原有的数据不想修改, 直接回车"""
print('(如果输入为空, 就使用原有的数据)')
name = input('请重新输入学生的姓名:')
chinese = input('请重新输入学生语文成绩:')
math = input('请重新输入学生数学成绩:')
english = input('请重新输入学生英语成绩:')
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']
print('########----- 修改成功 -----#######')
break
else:
print('该学生不存在, 请检查名字是否输入正确!')
elif a == '5':
print('删除学生信息')
name = input('你想要删除的学生姓名:')
for stu in student:
if name == stu['name']:
student.remove(stu)
print('*********删除成功**********')
break
else:
print('该学生不存在,请检查或者重新创建一个')
elif a == '0':
students_str = json.dumps(student, ensure_ascii=False)
with open('studens.json', 'w', encoding='utf-8') as e:
e.write(students_str)
print('保存成功')
break
else:
print('请输入正确的指令')
总结
以上基于基础知识所设计的,未使用到函数封装思想,若自己想要加强,可尝试实现一下封装。有不懂的可留言,有什么想法同样。