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 模块化开发信息管理系统案例
目录 需求分析 问题分析 开发阶段 需求分析 总体需求 学员信息管理系统支持以下功能 增加学员信息功能 删除学员信息功能 查询学员信息功能 修改学员信息功能 输出所有学员信息功能 退出系统 其他需求 ...
随机推荐
- 一言难尽的js变量提升
基础知识 在这个课题开始之前我们先做一些基础知识的讲解 1.在顶级的区域内声明的变量为 window级别的变量. 也就是说var a=100 等价于 window.a=100; 2.局部的重新声明变 ...
- LwIP Application Developers Manual3---链路层和网络层协议之IPV6,ICMP,IGMP
1.前言 本文主要讲述链路层和网络层的协议IPV6,ICMP 2.IPV6 2.1 IPV6特性 IPv6是IPv4的更新.其最显著的差别在于地址空间由32位转换成128位 2.2 从应用的角度看IP ...
- eMMC基础技术11:flash memory
[转]http://www.wowotech.net/basic_tech/367.html 0.前言 eMMC 是 Flash Memory 的一类,在详细介绍 eMMC 之前,先简单介绍一下 Fl ...
- go学习笔记
安装 brew install go 国际惯例hello,world. 创建文件hello.go go文件的main方法为函数的主入口,必须有这个方法. hello.go package main i ...
- 设计模式C++学习笔记之十三(Decorator装饰模式)
装饰模式,动态地给一个对象添加一些额外的职责.就增加功能来说,Decorator模式相比生成子类更为灵活. 13.1.解释 main(),老爸 ISchoolReport,成绩单接口 CFourt ...
- Django 中的 model 继承
Django 中的 model 继承和 Python 中的类继承非常相似,只不过你要选择具体的实现方式:让父 model 拥有独立的数据库:还是让父 model 只包含基本的公共信息,而这些信息只能由 ...
- Python-递归、三元表达式列表生成式等
一.函数递归 1.什么是函数递归:函数的递归调用是函数嵌套的一种特殊形式,在调用一个函数的过程中又直接或者间接地调用该函数本身,称之为函数的递归调用 2.递归调用必须明确的两个阶段: 1.回溯:一次次 ...
- Linux 的 OOM 终结者(Out Of Memory killer)
现在是早晨6点钟.已经醒来的我正在总结到底是什么事情使得我的起床闹铃提前了这么多.故事刚开始的时候,手机铃声恰好停止.又困又烦躁的我看了下手机,看看是不是我自己疯了把闹钟调得这么早,居然是早晨5点.然 ...
- hbase搭建
0. 软件版本下载 http://mirror.bit.edu.cn/apache/hbase/ 1. 集群环境 Master 172.16.11.97 Slave1 172.16.11.98 S ...
- (转)整理 node-sass 安装失败的原因及解决办法
转载地址:https://segmentfault.com/a/1190000010984731