当前位置: 首页 > news >正文

学生管理系统 面向对象

创建一个实例对象后 把实例对象添加到列表后
每次遍历列表 都能获得一个实例对象
然后就可以使用实例对象的属性和方法了

'''
学生管理系统 面向对象
两个类 学生管理类 学生类
'''# 学生类
# 属性 姓名 电话
class Student:def __init__(self, name, phone):self.name = nameself.phone = phonedef __str__(self):return 'name:{}, phone:{}'.format(self.name, self.phone)# 学生管理类
# 属性 学生列表
class StudentManager:def __init__(self):self.student_lst = []  # 学生列表# 静态方法 菜单功能@staticmethoddef menu():print('欢迎使用学生管理系统')print('1.添加学生')print('2.删除学生')print('3.修改学生')print('4.查询学生')print("5.展示所有学生")print('6.退出系统')# 执行各种方法的 总函数 类似于main()函数def run(self):while True:self.menu()choice = input('请输入你的选择:')if choice == '1':self.add_student()elif choice == '2':self.delete_student()elif choice == '3':self.update_student()elif choice == '4':self.query_student()elif choice == '5':self.show_all_student()elif choice == '6':breakelse:print('请输入正确的选择')# 1.添加学生def add_student(self):name = input('请输入学生姓名:')# #判断是否已经存在了# for student in self.student_lst:#  if student['name'] == name:#     print('该学生已经存在')#     break# else:#  phone = input('请输入学生电话:')##  student = Student(name, phone)#  self.student_lst.append(student)#  print('添加成功')#  print(student.__dict__) # 打印字典# 面向对象for student in self.student_lst:if student.name == name:print('该学生已经存在')breakelse:phone = input('请输入学生电话:')student = Student(name, phone) ## 创建一个Student实例self.student_lst.append(student) # 将实例添加到列表中print('添加成功')# print(student.__dict__)# 2.删除学生def delete_student(self):name = input('请输入要删除的学生姓名:')for student in self.student_lst:if student.name == name:self.student_lst.remove(student)print('删除成功')breakelse:print('该学生不存在')return# 3.修改学生def update_student(self):name = input('请输入要修改的学生姓名:')for student in self.student_lst:if student.name == name:re_name = input('请输入要修改的学生姓名:')phone = input('请输入要修改的学生电话:')student.name = re_namestudent.phone = phoneprint('修改成功')breakelse:print('该学生不存在')return# 4.查询学生def query_student(self):name = input('请输入要查询的学生姓名:')for student in self.student_lst: #student变量在每次迭代中引用列表中的不同Student实例。if student.name == name:print(student)breakelse:print('该学生不存在')return# 5.展示所有学生def show_all_student(self):for student in self.student_lst:print(student.__dict__) # 打印字典# print(student) # 打印实例if __name__ == '__main__':s = StudentManager()s.run()

相关文章:

  • 微火问答:全域外卖和本地生活服务是同个项目吗?
  • SQL刷题笔记day6-1
  • php TP8 阿里云短信服务SDKV 2.0(跳大坑)
  • MySQL(一) 库和表的基础操作
  • Go语言数据库框架 — Gorm
  • 关于 CSS 的那些事儿,我竟然都不知道
  • [Leetcode LCR 106.判断二分图]
  • redis数据类型之Hash,Bitmaps
  • R语言入门 | 使用 dplyr 进行数据转换
  • redis 集群 底层原理以及实操
  • C++修改文件后缀名;链表循环删除乘积为10的元素
  • 手摸手教你uniapp原生插件开发
  • 【ai】livekit:Agents 3 : pythonsdk和livekit-agent的可编辑模式下的安装
  • 朋友圈定时发送设置
  • 华发股份:加强业务协同 新政下项目热销
  • “大数据应用场景”之隔壁老王(连载四)
  • 【402天】跃迁之路——程序员高效学习方法论探索系列(实验阶段159-2018.03.14)...
  • Android单元测试 - 几个重要问题
  •  D - 粉碎叛乱F - 其他起义
  • Effective Java 笔记(一)
  • gcc介绍及安装
  • JAVA SE 6 GC调优笔记
  • JS 面试题总结
  • js中forEach回调同异步问题
  • Less 日常用法
  • npx命令介绍
  • Puppeteer:浏览器控制器
  • Python 使用 Tornado 框架实现 WebHook 自动部署 Git 项目
  • python学习笔记 - ThreadLocal
  • React-flux杂记
  • redis学习笔记(三):列表、集合、有序集合
  • Vue.js 移动端适配之 vw 解决方案
  • Webpack4 学习笔记 - 01:webpack的安装和简单配置
  • Web标准制定过程
  • 坑!为什么View.startAnimation不起作用?
  • 那些年我们用过的显示性能指标
  • 前嗅ForeSpider采集配置界面介绍
  • 区块链将重新定义世界
  • 因为阿里,他们成了“杭漂”
  • 在Mac OS X上安装 Ruby运行环境
  • AI算硅基生命吗,为什么?
  • ​2020 年大前端技术趋势解读
  • ​Linux·i2c驱动架构​
  • # wps必须要登录激活才能使用吗?
  • #每日一题合集#牛客JZ23-JZ33
  • #免费 苹果M系芯片Macbook电脑MacOS使用Bash脚本写入(读写)NTFS硬盘教程
  • $.extend({},旧的,新的);合并对象,后面的覆盖前面的
  • (1)Map集合 (2)异常机制 (3)File类 (4)I/O流
  • (C++17) optional的使用
  • (delphi11最新学习资料) Object Pascal 学习笔记---第14章泛型第2节(泛型类的类构造函数)
  • (Python) SOAP Web Service (HTTP POST)
  • (zt)最盛行的警世狂言(爆笑)
  • (动态规划)5. 最长回文子串 java解决
  • (非本人原创)史记·柴静列传(r4笔记第65天)
  • (附源码)spring boot儿童教育管理系统 毕业设计 281442