python2.面向对象.学生管理
main.py(程序主入口)
#1.导入管理系统模块
from mangerSystem import *
#2.启动管理系统
#保证是当前文件运行才启动管理系统:if -- 创建对象并调用run()方法
if __name__=="__main__":
student_manager=StudentManager()
student_manager.run()
student.Py
class Student(object):
def __init__(self,name,gender,tel):
#姓名,性别,手机号
self.name=name
self.gender=gender
self.tel=tel
def __str__(self):
return f'{self.name},{self.gender},{self.tel}'
# aa=Student("aa","女",111)
# print(aa)
mangerSystem
from student import *
class StudentManager(object):
def __init__(self):
#存储学员数据 -- 列表
self.student__list=[]
#一.程序入口函数
def run(self):
#1.加载文件里的学员数据
# self.load_student()
while True:
#2.显示功能菜单
self.showmenu()
#3.用户输入目标功能序号
menu_num=int(input("请输入你需要的功能序号:"))
#4.根据用户输入的序号执行不同的功能 -- 如果用户输入1,执行添加
if menu_num==1:
#添加学员
self.add_student()
elif menu_num==2:
#删除学员
self.del_student()
elif menu_num==3:
#修改学员信息
self.modif_student()
elif menu_num==4:
#查询学员信息
self.search_student()
elif menu_num==5:
#显示所有学员信息
self.show_student()
elif menu_num==6:
#保存学员信息
self.save_student()
elif menu_num==7:
#退出系统--退出循环
# break
self.load_student()
elif menu_num == 8:
# 退出系统--退出循环
# break
# 程序想要结束,退出终止while True -- break
exit_flag = input("确定要退出吗?yes or no")
if exit_flag == 'yes':
print("退出系统")
break
else:
print("输入的功能序号有误!")
#二.系统功能函数
#2.1显示功能菜单 -- 打印序号功能对应关系--静态
@staticmethod
def showmenu():
print("请选择如下功能:")
print("1:添加学员")
print("2:删除学员")
print("3:修改学员信息")
print("4:查询学员信息")
print("5:显示所有学员信息")
print("6:保存学员信息")
print("7:加载学员信息")
print("8:退出系统")
# 2.2添加学员
def add_student(self):
# print("添加学员")
#1.用户输入姓名,性别,手机号
name=input("请输入你的姓名:")
gender=input("请输入你的性别:")
tel=input("请输入你的手机号:")
#2.创建学员对象--类,类在student文件里面 先导入student模块,在创建对象
student=Student(name,gender,tel)
#3.将该对象添加到学员列表
self.student__list.append(student)
# print(123)
# print(self.student__list)
print(student)
# 2.3删除学员
def del_student(self):
# print("删除学员")
#1.用户输入目标学员姓名
del_name=input("请输入要删除的学员姓名:")
#2.遍历学员列表,如果用户输入的学员存在,则删除学员对象。否则提示学员不存在
for i in self.student__list:
if del_name==i.name:
#删除学员对象
# self.student__list.remove(i)
break
else:
#循环正常结束执行代码:循环结束都没有删除任何一个对象,所以说明用户输入的目标学员不存在。
print("查无此人!")
print(self.student__list)
# 2.4修改学员信息
def modif_student(self):
#print("修改学员信息")
# 1.用户输入目标学员姓名
modify_name=input("请输入要修改的学员姓名:")
#2遍历列表数据,如果学员存在,修改姓名,性别,手机号。否则提示学员不存在
for i in self.student__list:
if modify_name==i.name:
i.name=input("姓名:")
i.gender=input("性别:")
i.tel=input("手机号:")
print(f"修改学员信息成功,姓名:{i.name},性别:{i.gender},手机号:{i.tel}")
break
else:
print("查无此人!")
# 2.5查询学员信息
def search_student(self):
# print("查询学员信息")
#1.用户输入目标学员姓名
search_name=input("请输入你要搜索的学员姓名:")
#2.遍历列表。如果学员存在打印学员信息,否则提示学员不存在
for i in self.student__list:
if search_name==i.name:
print(f"姓名是:{i.name},性别是:{i.gender},手机号是:{i.tel}")
break
else:
print("查无此人!")
# 2.6显示所有学员信息
def show_student(self):
# print("显示所有学员信息")
#1.打印表头
print("姓名\t性别\t手机号")
#2.打印学员数据
for i in self.student__list:
print(f"{i.name}\t{i.gender}\t{i.tel}")
# 2.7保存学员信息
def save_student(self):
# print("保存学员信息")
#1.打印文件
f=open("student.data","a")
#2.文件写入数据
#2.1[学员对象]转换成[字典]
new_list=[i.__dict__ for i in self.student__list]
#2.2文件写入 字符串数据
f.write(str(new_list))
#3.关闭文件
f.close()
# 2.8加载学员信息
def load_student(self):
# print("加载学员信息")
with open("student.data","r") as file:
showAll=file.read()
print(showAll,"\n")
python2.面向对象.学生管理相关推荐
- python2.面向对象学生管理系统
main.py(程序主入口) #1.导入管理系统模块 from mangerSystem import * #2.启动管理系统 #保证是当前文件运行才启动管理系统:if -- 创建对象并调用run() ...
- C++课程设计:学生管理系统设计
高级程序设计课程设计 一.教学目标和基本要求 本课程全面系统的学习面向对象程序设计的基本概念,基本语法和编程方法.正确理解掌握C++面向对象程序设计的基本特性:类,对象,继承与派生,多态,虚函 ...
- php简单学生管理系统设计与实现,基于PHP的学生成绩管理系统的设计与实现.doc...
基于PHP的学生成绩管理系统的设计与实现.doc 基于PHP的学生成绩管理系统的设计与实现 摘 要: 我国高等职业教育迎来了蓬勃发展的新局面,各院校招生规模不断扩大,学校的教学管理负担越来越重.为了提 ...
- 【高校宿舍管理系统】第八章 学生管理和楼宇管理以及寝室管理
第八章 学生管理和楼宇管理以及宿舍管理 提示:本博客个为人独立博客,不是权威,仅供参考!所有思路只做交流之用!如有不足之处,望各位在评论区友善指正. 文章目录 第八章 学生管理和楼宇管理以及宿舍管理 ...
- Axure高保真学校后台管理作品管理教师管理资源审核学生管理家长管理权限管理资源管理web端后台模板管理教师审核统计分析教育后台管理系统学校后台管理系统校园后台管理系统
作品介绍:Axure高保真学校后台管理&作品管理&教师管理&资源审核&学生管理&家长管理&权限管理&资源管理&web端后台模板管理&am ...
- 学生信息系统求助_学生管理信息系统_示例
第 1 页 共 3 页 学生信息管理数据库系统设计与开发 一 . 项目说明 一.概述 1 .项目背景:数据库程序设计 2 .编写目的:掌握数据库设计原理及相关软件的使用 3 .软件定义:学生信息管理系 ...
- 乐山计算机学校学籍管理,乐山计算机学校学生管理系统设计与实现
摘要: 中等职业教育因其教育的职业性.专业的多样性.技术的进步性和管理的多样性而不同于普通教育,因此不能象普通中小学一样在管理信息化建设方面使用通用的软件管理平台.乐山市计算机学校现有在校生规模在45 ...
- servlet+mysql实现的学生评教系统(角色:学生、教师、管理员 功能:评教、修改密码、评教规则管理、评教结果查看、学生管理、教师管理、班级管理、学生信息、评教结果可视化展示等)
博客目录 servlet+mysql实现的学生评教系统 实现功能截图 使用技术 实现的功能 代码 写在最后 servlet+mysql实现的学生评教系统 本系统学生评教的管理,分为学生.教师.管理员三 ...
- Vue+SpringBoot+ElementUI实战学生管理系统-10.学生管理模块
1.章节介绍 前一篇介绍了教师管理模块,这一篇编写学生管理模块,需要的朋友可以拿去自己定制.:) 2.获取源码 源码是捐赠方式获取,详细请QQ联系我 :)! 3.实现效果 学生列表 修改学生 4.模块 ...
最新文章
- 查看mongodb数据路径_【数据库】mongodb数据库安装
- 解决GitHub加载和下载慢问题
- GOOD MEETINGS CREATE SHARED UNDERSTANDING, NOT BRDS!
- android的padding属性,以编程方式获取android:padding属性
- 《火球——UML大战需求分析》(第1章 大话UML)——1.5 小结和练习
- Ant 构建文件的一种写法
- Windows域策略设置 IE信任站点【全域策略生效】
- 朋友圈点赞截图在线生成源码
- 【软件工具篇02】使用Anki克服遗忘曲线
- 如何快速搭建”疫情问答“小助手服务
- Pytorch TextCNN实现中文文本分类(附完整训练代码)
- 2020上半年主要国产OA厂商业绩
- “+智能”与混合云成为战略主线 郑叶来如何解码华为云2018年终总结...
- 美国9·11事件永远不能忘记的22张照片(内附高清大图)
- rdo远程计算机需要,Remote Desktop Organizer
- 基于android的数码交流社区
- 人工智能猴子摘香蕉问题
- 服务器至强芯片,英特尔重磅发布新款至强Scalable服务器处理器及Agilex芯片
- 明日方舟 -19年我最喜欢的手游
- Vue2与Vue3 setup的使用差异与对比
热门文章
- java 单例设计_Java 之单例设计模式
- oracle动态性能视图和静态,oracle最重要的9个动态性能视图
- 网站等保测评针对服务器,互联互通测评知识分享之信息安全建设要点
- java 并发模型总类_java并发编程系列-内存模型基础
- 设置堆内存大小_jmap和jhat命令行工具的配合使用,更好的掌握堆内存状况
- docker基础应用
- 【C#】解析C#中JSON.NET的使用
- 20159302 《网络攻击与防范》第四周学习总结
- fedora20开机启动配置:systemctl
- tab标签的另一种写法