Python基础案例练习:制作学生信息管理系统(用python做学生信息管理系统)

网友投稿 339 2022-06-19


一.前言

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

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

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

二.开发环境:

我用到的开发环境

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('姓名\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('请输入正确的选项!')


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:居然长得的还没一只熊好看?用Python做一个颜值检测,结果就离了大谱
下一篇:Python 中让你相见恨晚的 20 个"骚操作"
相关文章

 发表评论

暂时没有评论,来抢沙发吧~