Py学生信息管理系统 案例(优化版)
# 第一题:设计一个全局变量,来保存很多个学生信息;学生(学号, 姓名,年龄);思考要用怎样的结构来保存;
# 第二题:在第一题基础上,完成:让用户输入一个新的学生信息(学号,姓名,年龄);你将其保存在全局变量中;并提供给用户查看当前有多少个学生的功能;
# 第三题:向用户提供根据学号查看指定学员具体信息,指定学号删除学员功能 # 定一个列表,用来存储所有的学生信息(每个学生是一个字典)
info_list = [] def print_menu():
print("=" * 42)
print("*" * 10 + "简单的学生信息管理系统" + "*" * 10)
print("=" * 42)
print("1.添加学生信息")
print("2.删除学生信息")
print("3.给定学号查询学生信息")
print("4.显示当前所有学生信息")
print("5.保存数据")
print("0.退出系统")
print("=" * 42) def add_new_info():
"""添加学生信息"""
global info_list
new_sno = input("请输入学生的学号:")
new_stuName = input("请输入学生的姓名:")
new_sutAge = input("请输入学生的年龄:")
for temp_info in info_list:
if temp_info['sno'] == new_sno:
print("此用户名已经被占用,请重新输入")
return # 如果一个函数只有return就相当于让函数结束,没有返回值
# 定义一个字典,用来存储用户的学生信息(这是一个字典)
info = {}
# 向字典中添加数据
info["sno"] = new_sno
info["name"] = new_stuName
info["age"] = new_sutAge
# 向列表中添加这个字典
info_list.append(info) def del_info():
"""删除学生信息"""
global info_list
del_sno = input("请输入要删除的学生学号:")
i = 0
for temp_info in info_list:
if temp_info['sno'] == del_sno:
del_flag = input("你确定要删除么?(yes or no)")
if del_flag == "yes":
del info_list[i]
print("\n\n删除成功!")
else:
print("输入学号有误,请重新输入")
i += 1 def search_info():
"""查询学生信息"""
search_sno = input("请输入要查询的学生学号:")
for temp_info in info_list:
if temp_info['sno'] == search_sno:
print("查询到的信息如下:")
print("sno:%s, stuName:%s, stuAge:%s" % (temp_info['sno'],
temp_info['name'], temp_info['age']))
break
else:
print("没有您要找的信息....") def print_all_info():
"""遍历学生信息查询当前所有学生信息"""
print("序号\t学号\t\t姓名\t\t年龄")
i = 0
for temp in info_list:
# temp是一个字典
print("%d\t%s\t\t%s\t\t%s" % (i, temp['sno'], temp['name'], temp['age']))
i += 1 def save_data():
"""加载之前存储的数据"""
f = open("info_data.data","w")
f.write(str(info_list))
f.close() def load_data():
global info_list
"""加载之前存储的数据"""
f = open("info_data.data")
content = f.read()
info_list = eval(content)
f.close() def main():
"""用来控制整个流程"""
# 加载数据(先存好数据再打开这个就可以直接读数据了)
# load_data()
while True:
# 1. 打印功能
print_menu()
# 2. 获取用户的选择
key = input("请输入要进行的操作(数字):")
# 3. 根据用户选择,做相应的事情
if key == "1":
# 添加学生
add_new_info()
elif key == "2":
# 删除学生
del_info()
elif key == "3":
# 给定学号查询学生信息
search_info()
elif key == "4":
# 遍历所有的信息
print_all_info()
elif key == "5":
# 保存数据
save_data()
elif key == "0":
# 退出系统
exit_flag = input("你确定要退出么?(yes or no) ")
if exit_flag == "yes":
break
else:
print("输入有误,请重新输入......")
input("\n\n\n按回车键继续....")
continue
# 程序的开始
main()
Py学生信息管理系统 案例(优化版)的更多相关文章
- Android(java)学习笔记195:学生信息管理系统案例(SQLite + ListView)
1.首先说明一个知识点,通常我们显示布局文件xml都是如下: setContentView(R.layout.activity_main): 其实每一个xml布局文件就好像一个气球,我们可以使用Vie ...
- Android(java)学习笔记188:学生信息管理系统案例(SQLite + ListView)
1.首先说明一个知识点,通常我们显示布局文件xml都是如下: setContentView(R.layout.activity_main): 其实每一个xml布局文件就好像一个气球,我们可以使用Vie ...
- PHP实现简单的学生信息管理系统(web版)
(∩_∩) 1.概述 学了php的一些基础,包括HTML,php,pdo,mysql操作等,一直都没有将它们有机结合.最近写了一个简单的网页版学生信息管理系统,前台用HTML,脚本用到了JavaScr ...
- 学生信息管理系统应用ios源码iPad版
学生信息管理系统应用iPad版,该应用源码比较完整的,而且也很详细,这也是一款学校用的学生和老师管理系统,里面涉及到了很多ipad常用的控件,操作和数据存储. <ignore_js_op> ...
- 面向对象案例-学生信息管理系统V0.6
更新版本 面向对象案例 - 学生信息管理系统V1.0 项目要求: 实体类: 学生类: id, 姓名,年龄,性别,成绩 需要使用数组保存学生信息 Student[] allStu 需要完成的方法 1. ...
- Python基础案例练习:制作学生信息管理系统
一.前言 学生信息管理系统,相信大家或多或少都有做过 最近看很多学生作业都是制作一个学生信息管理系统 于是,今天带大家做一个简单的学生信息管理系统 二.开发环境: 我用到的开发环境 Python 3. ...
- 【Python3.6+Django2.0+Xadmin2.0系列教程之二】学生信息管理系统(入门篇)
上一篇我们已经创建好了一个Xadmin的基础项目,现在我们将在此基础上构建一个同样很基础的学生信息管理系统. 一.创建模型 模型是表示我们的数据库表或集合类,并且其中所述类的每个属性是表或集合的字段, ...
- 【Python3.6+Django2.0+Xadmin2.0系列教程之三(入门篇-下)】学生信息管理系统
上一篇我们已经初步的构建起了一个学生管理系统的模型,现在接着来继续完善它吧. 1.上传图片/文件等资源 有时候需要添加一些附件,例如,新生刚入学,大家相互之间还不熟悉,希望能通过照片来加深印象,并且方 ...
- C07 模块化开发信息管理系统案例
目录 需求分析 问题分析 开发阶段 需求分析 总体需求 学员信息管理系统支持以下功能 增加学员信息功能 删除学员信息功能 查询学员信息功能 修改学员信息功能 输出所有学员信息功能 退出系统 其他需求 ...
随机推荐
- 【转载】Latex定制章节编号格式和计数器
原文: http://www.chengkaiblog.com/software-application/latex/customize-section-format-counter.html _1. ...
- 百度统计api 关于搜索引擎返回参数问题
当 post 的参数: 返回参数为: 很显然没有搜索引擎的相关名称返回,无法分辨相关引擎的数据量: 改:去掉 gran 参数 正常: 关于百度统计文档有很多模糊不清的地方,可以发邮件给官方了解,一般处 ...
- java高级 - java利用listener实现回调,即观察者模式
https://blog.csdn.net/lin_sir6/article/details/70052954
- SpringCloud Config(分布式配置中心)
⒈是什么? Spring Cloud Config分为服务端和客户端两部分. 服务端也称为分布式配置中心,它是一个独立的微服务应用,用来连接配置服务器并为客户端提供获取配置信息,加密/解密信心等接口. ...
- python目标定位(借鉴csdn上大神)
写博客是为了记录下来,毕竟好多东西记不住,看过就忘了,收藏又太多,还不如搬运到自己博客下面,随时可翻~~~ 近期再学目标识别与定位,看着原理都很简单,但是真自己做,又觉得困难重重. csdn上一个大神 ...
- 10分钟搭建Kubernetes容器集群平台【转】
官方提供3种方式部署Kubernetes minikube Minikube是一个工具,可以在本地快速运行一个单点的Kubernetes,尝试Kubernetes或日常开发的用户使用.不能用于生产环境 ...
- jQuery中如何实现多库并存?
多库共存就是“$ ”符号的冲突. 方法一: 利用jQuery的实用函数$.noConflict();这个函数归还$的名称控制权给另一个库,因此可以在页面上使用其他库.这时,我们可以用"jQu ...
- 005_elasticsearch的数据导入导出
一.全部备份和导入 安装:git clone https://github.com/taskrabbit/elasticsearch-dump.gitcd elasticsearch-dumpnpm ...
- matlab常用命令
clc; %清屏 clear; %清除变量 close all; %关闭 doc %查看文档 meshgrid%采样mesh %网格曲面surf %光滑曲面plot %ezplotdiff figur ...
- linux-history显示历史命令执行时间
vim ~/.bashrc 或者 ~/.bash_profile 增加:export HISTTIMEFORMAT="%F %T " 一次会话的话先执行 然后使用history ...