当前位置:
首页 > temp > 简明python教程 >
-
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('姓名\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('请输入正确的选项!')
是不是很简单!欢迎留言讨论!
原文:https://www.cnblogs.com/djdjdj123/p/15775745.html
栏目列表
最新更新
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
Python初学者友好丨详解参数传递类型
如何有效管理爬虫流量?
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
SQL Server -- 解决存储过程传入参数作为s
关于JS定时器的整理
JS中使用Promise.all控制所有的异步请求都完
js中字符串的方法
import-local执行流程与node模块路径解析流程
检测数据类型的四种方法
js中数组的方法,32种方法
前端操作方法
数据类型
window.localStorage.setItem 和 localStorage.setIte
如何完美解决前端数字计算精度丢失与数