学生管理系统 面向对象

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

'''
学生管理系统 面向对象
两个类 学生管理类 学生类
'''# 学生类
# 属性 姓名 电话
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()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/19201.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

各大翻译软件代码——浔川AI翻译研发社团

一、前言 有道翻译API(主要推荐) 百度翻译API(需要申请key与密钥,每月100万免费字符) 谷歌翻译API(需要梯子,而且不稳定,不推荐) 二、代码 1、有道翻译 def is_Chi…

高性价比、超强功能的开源工单解决方案

在企业日常运营中,工单管理系统是不可或缺的工具。高效的工单管理不仅能提升工作效率,还能显著提高客户满意度。今天,我们为您推荐搭贝工单派单系统——一款超高性价比、功能齐全的开源工单管理系统。 🔍 为什么选择搭贝工单派单…

LangChain入门开发教程(一):Model I/O

官方文档:https://python.langchain.com/docs/get_started/introduction/ LangChain是一个能够利用大语言模型(LLM,Large Language Model)能力进行快速应用开发的框架: 高度抽象的组件,可以像搭积木一样&a…

Nginx R31 doc-17-debugging 调试

前言 大家好,我是老马。很高兴遇到你。 我们为 java 开发者实现了 java 版本的 nginx https://github.com/houbb/nginx4j 如果你想知道 servlet 如何处理的,可以参考我的另一个项目: 手写从零实现简易版 tomcat minicat 手写 nginx 系列 …

【PB案例学习笔记】-13 徒手做个电子时钟

写在前面 这是PB案例学习笔记系列文章的第11篇,该系列文章适合具有一定PB基础的读者。 通过一个个由浅入深的编程实战案例学习,提高编程技巧,以保证小伙伴们能应付公司的各种开发需求。 文章中设计到的源码,小凡都上传到了gite…

python基础-数据结构-leetcode刷题必看-queue---队列-python的底层构建

文章目录 队列双端队列 deque底层存储deque接口1. __init__(self, iterable: Iterable[_T], maxlen: int | None None) -> None2. append(self, __x: _T) -> None3. appendleft(self, __x: _T) -> None4. copy(self) -> Self5. count(self, __x: _T) -> int6. …

java项目启动报错

java项目启动报错:java: java.lang.NoSuchFieldError: Class com.sun.tools.javac.tree.JCTree$JCImport does not have member field ‘com.sun.tools.javac.tree.JCTree qualid’ 原因:编译和运行的版本不一样 点击idea文件 点击项目结构 把这两个版本…

软件架构设计属性之一:功能性属性浅析

引言 软件架构设计属性中的功能性属性是评估软件架构是否满足其预定功能需求的关键指标。功能性属性确保软件能够执行其设计中的任务,并提供所需的服务。以下是对软件架构设计中功能性属性的浅析: 一、定义 功能性属性是指软件系统所具备的功能特性&a…

解决Android studio 一直提示下载gradle-xxx-all.zip问题

今天用AndroidStdiod打开一个新工程的时候,发现项目一直卡在正在下载gradle-xxx-all.zip的任务上,网络出奇的慢,即使配了VPN也无济于事,于是按照以往经验:将gradle-xxx-all.zip下载到.gradle\gradle\wrapper\dists目录…

【ESP32之旅】ESP32 PlatformIO 固件单独烧录

背景 有时候使用PIO编写的代码需要发给客户去验证,相比较于发送源码直接发送bin文件,更加的安全而且高效。不用担心源码的泄漏,也不用帮客户配置PIO环境。 操作方法 1.编译 首先进行代码编译,如编译成功会在 .pio\build\airm2…

python之any用法

写法对比 代码一: any(i for i in [0,1]) 代码2: any([i for i in [0,1]]) 优劣 结论:代码一写法更好 解释: 在 Python 中,any() 函数可以接受一个可迭代对象作为参数,并返回 True 如果可迭代对象…

详解 Java 泛型:核心概念与实用示例

详解 Java 泛型:核心概念与实用示例 Java 泛型(Generics)是Java SE 5引入的一项特性,旨在提高代码的可重用性和类型安全性。通过泛型,开发者可以编写一个通用的类、接口或方法,可以与多种类型一起工作&…

汽车电子学习【车载网络CAN/LIN】

车载网络CAN/LIN知识总结 STM32F1开发板测试 STM32测试程序 /** CAN 通信报文内容设置*/ void CAN_SetMsg(void) { #if CAN_STDTxMessage.StdId 0x12;TxMessage.IDE CAN_ID_STD; #elseTxMessage.ExtId 0x1314; //使用的扩展IDTxMessage.IDE CAN_ID_EXT; //扩展模式 #…

C++进程间通信 消息队列

C进程间通信 消息队列 消息队列概述消息队列代码示例1. 创建和发送消息的程序(sender.cpp)2. 接收消息的程序(receiver.cpp) 代码解释运行步骤运行结果 消息队列概述 消息队列是一种进程间通信机制,允许一个或多个进程…

Django 做migrations时出错,解决方案

在做migrations的时候,偶尔会出现出错。 在已有数据的表中新增字段时,会弹出下面的信息 运行这个命令时 python manage.py makemigrationsTracking file by folder pattern: migrations It is impossible to add a non-nullable field ‘example’ to …

Linux---网络相关配置

文章目录 前言一、pandas是什么?二、使用步骤 1.引入库2.读入数据总结 前言 一台主机需要配置必要的网络信息,才可以连接到互联网,需要的配置网络信息包括IP,子网掩码,网关和DNS。 一.查看网络信息 查看IP信息可以通…

echarts高级应用

目录 一、显示相关 1.1、主题 1.1.1、内置主题 1.1.2、自定义主题 1.2、调色盘和颜色渐变 1.2.1、主题调色盘<全局调色盘<局部调色盘 1.2.2、线性渐变(linear)、径向渐变(radial) 1.3、直接样式和高亮样式 1.3.1、直接样式 1.3.2、高亮样式 1.4、图表自适应 …

Fine-tuning和模型训练的关系

概述 Fine-tuning和模型训练不是完全相同的概念&#xff0c;但它们之间有密切的关系&#xff0c;都是机器学习和深度学习过程中的重要步骤。 模型训练是一个更广泛的概念&#xff0c;指的是使用数据去调整模型的内部参数&#xff0c;以使得模型能够从输入数据中学习并做出预测…

软件架构设计属性之三:结构性属性浅析

文章目录 引言一、结构性属性的定义二、结构性属性的关键要素1. 组件化2. 模块化3. 层次化4. 接口定义5. 数据流6. 依赖管理 三、结构性属性的设计原则1. 高内聚低耦合2. 松耦合3. 清晰的接口4. 可维护性5. 可扩展性 四、结构性属性的实现策略1. 组件划分2. 模块化设计3. 接口设…

【AREngine BUG 解决方法】无法获取有效的相机图像尺寸

近期拿了一台 华为mate20 Pro的手机&#xff0c;在运行AR示例的过程中出现了黑屏。 问题排查 SDK版本&#xff1a;com.huawei.hms:arenginesdk:3.7.0.3 定位 经排查&#xff0c;发现(ARCamera对象的相机内参) getImageDimensions()返回的图像尺寸的width和height都为0。 这…