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 模块化开发信息管理系统案例
目录 需求分析 问题分析 开发阶段 需求分析 总体需求 学员信息管理系统支持以下功能 增加学员信息功能 删除学员信息功能 查询学员信息功能 修改学员信息功能 输出所有学员信息功能 退出系统 其他需求 ...
随机推荐
- mysql数据库卸载和安装
背景: 由于之前一个项目中用的数据库版本是免安装的mysql5.5.36,但是后来经过第三方测试公司测试出该数据库存在很多漏洞需要升级数据库才能解决.所以觉得将数据库更换为mysql-5.7.21-w ...
- Trickbot增加的远程应用程序凭证抓取功能
来源 https://blog.trendmicro.com/trendlabs-security-intelligence/trickbot-adds-remote-application-cred ...
- python下划线,私有变量
转自:http://blog.sina.com.cn/s/blog_58649eb30100g4zo.html Python用下划线作为变量前缀和后缀指定特殊变量. "单下划线" ...
- jenkins服务器上安装配置Android SDK
1.下载Android SDK http://tools.android-studio.org/index.php/sdk/ 我下载的是:android-sdk_r24.4.1-linux.tgz ...
- axios请求接口的踩坑之路
1.跨域问题除了前端安装插件还需要后端php设置,设置如下 Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, ...
- jQuery插件开发jQuery.extend(object)和jQuery.fn.extend()
jQuery插件开发 知识1:用JQuery写插件时,最核心的方法有如下两个: $.extend(object) 可以理解为JQuery 添加一个静态方法. $.fn.extend(object) 可 ...
- python3+requests库框架设计06-测试脚本
在项目下新建TestCase文件夹,然后新建.py文件在文件中写关于接口具体的测试脚本,一般我喜欢按照模块来分,一个模块一个.py文件,建议以test开头命名文件 把配置文件改成这样 url:http ...
- 出现警告“user1 不在 sudoers 文件中。此事将被报告。”
linux中不是每个用户都有sudo权限. 在/etc/下有个文件sudoers 由此文件可知只有用户为sudo这个组的成员之后才能执行sudo命令 此时,我们查看用户user1的属性: 由此看出us ...
- Redis学习之一 安装
一.简介 定义 Remote DIctionary Server(Redis) 是一个由Salvatore Sanfilippo写的key-value存储系统. Redis是一个开源的使用ANSI C ...
- codeforces 462div.2
A A Compatible Pair standard input/output 1 s, 256 MB x1916 B A Prosperous Lot standard input/out ...