學生管理系統 面向對象

創建一個實例對象后 把實例對象添加到列表后
每次遍歷列表 都能獲得一個實例對象
然后就可以使用實例對象的屬性和方法了

'''
學生管理系統 面向對象
兩個類 學生管理類 學生類
'''# 學生類
# 屬性 姓名 電話
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.pswp.cn/bicheng/19201.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/19201.shtml
英文地址,請注明出處:http://en.pswp.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。 這…