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")

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/273263.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/273263.shtml
英文地址,請注明出處:http://en.pswp.cn/news/273263.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

elasticsearch 刪除滿足條件的語句_ELK從入門到還未精通(二)——ElasticSearch上篇

大家好,我是泥腿子安尼特,5個月沒在李佬都公眾號更新文章了。上一篇,大致介紹了作為工具人的我是如何基本使用這一套ELK 系統的。今天就講講這個最重要的E——基于Lucene的搜索引擎ElasticSearch(后面簡稱ES)。最近剛搬家,沒想到隔…

mysql004操作表.增刪改

-- 查詢表中數據 DQL 注意在mydb數據庫下面 SELECT * FROM stdent; -- 新增數據 這種寫法數據的循序和數據庫的字段循序保持一致。 INSERT INTO stdent values (1,"張三","男",25,"2021.1.1","java","123qq.com"); --…

python2.面向對象.學生管理

main.py(程序主入口) #1.導入管理系統模塊 from mangerSystem import * #2.啟動管理系統 #保證是當前文件運行才啟動管理系統:if -- 創建對象并調用run()方法 if __name__"__main__": student_managerStudentManager() student_manager.run() student…

紙板怎么切割光滑_激光切割機大PK!光纖、CO2、YAG,你選誰?!

問:我也是鈑金人,怎么加入組織?答:點標題下方藍字“鈑金家園光纖激光切割機之所以能在市場快速站穩腳跟并且逐步替代傳統切割工藝,是由于其在各方面獨具優勢,那么他到底優秀在哪里呢?我們把CO2激…

mysql007.算數運算.別名.去重.排序

-- 創建DEPT表 CREATE TABLE DEPT( DEPTNO int(2) not null, DNAME VARCHAR(14), LOC VARCHAR(13) ); -- 查詢DEPT表 SELECT * FROM DEPT; -- 修改表,添加主鍵 ALTER TABLE DEPT add CONSTRAINT PK_DEPT PRIMARY KEY(DEPTNO); -- 查詢表結構。 desc DEPT; …

loadrunner11錄制不成功解決方法(收集)

問題一:loadrunner11錄制時events為0的解決辦法 剛安裝好的11.0,系統環境是:WINXPIE8LR11 OR WIN7IE11LR11 1、ie去掉工具—internet選項中->高級—>去掉“啟用第三方瀏覽器擴展”,重啟ie后發現還不行,繼續&…

c# 藍牙虛擬串口_藍牙模塊——基礎知識介紹

1. 數據透傳藍牙模塊可以通過串口(SPI、IIC)和MCU控制設備進行數據傳輸。藍牙模塊可以做為主機和從機。主機就是能夠搜索別的藍牙模塊并主動建立連接,從機則不能主動建立連接,只能等別人連接自己。2. 低功耗低功耗藍牙(Bluetooth Low Energy)&#xff0c…

Error: could not open `C:\Java\jre7\lib\i386\jvm.cfg

打開eclipse時出現Error: could not open C:\Program Files\Java\jre7\lib\i586\jvm.cfg’) 刪除 c:\windows\system32\java, c:\windows\system32\javaw, c:\windows\system32\javaws, 如果是64位系統,還要刪除 c:\windows\SysWOW64\java&am…

java項目001.雙色球游戲

package Suangseq; //雙色球游戲制作。 import java.awt.SystemColor; import java.util.Arrays; import java.util.Scanner; public class TextA { public static void main(String[] args) { boolean flagfalse;//定義一個布爾類型的變量。 int[] mynull;//定義一個變量 in…

華為手機30s桌面循環滑動_華為發飆了!麒麟820+雙模5G,從2699元跌至2499元,超出消費者預期...

閱讀本文前,請您先點擊上面的“藍色字體”,再點擊“關注”,這樣您就可以繼續免費收到文章了。每天都會有分享,都是免費訂閱,請您放心關注。注圖文來源網絡,侵刪 …

混合模式程序集是針對“v2.0.50727”版的運行時生成的,在沒有配置其他信息的情況下,無法在 4.0 運行時中加載該程序集...

其調用的方法是從sqlite數據庫中獲取原來已經使用過的數據庫連接,當時也沒注意,就是準備設斷點然后單步調試,結果竟然是斷點無法進入方法體內,后來仔細看了一下方法體的時候發現了一個問題,就是現有的System.Data.Sqli…

mysql008where.or.in查詢

-- 創建EMP表 CREATE TABLE EMP ( EMPNO int(4) PRIMARY KEY, ENAME VARCHAR(10), JOB VARCHAR(9), MGR INT(4), HIREDATE DATE, SAL DOUBLE(7,2), COMM DOUBLE(7,2), DEPTNO INT(2) ); -- where查詢 語句 SELECT * from emp; SELECT * FROM DEPT; SELECT * FROM…

支持與不支持in-place操作的OpenCV函數匯總

支持In-Place操作cvSmoothCV_BLUR 、CV_GAUSSIAN支持,另三種不支持 cvDilate cvMorphologyEx對于“禮帽”和“黑帽”操作,in-place情況下,臨時圖像是必須的 cvFilter2D cvAdaptiveThreshold 備注在OpenCV官方文檔中,函數中最后一…

微信接口請求次數_接口簽名驗證常用方案

前面的文章說了接口數據如何獲取,今天就來聊聊接口數據的安全問題。說到接口加密驗證,通常都稱作“簽名”,類似于名人的個性簽名,讓其它人無法模仿。比如說請求接口刪除自己寫的文章,又或者請求接口查詢自己的帳單明細…

mysql009模糊查詢like.是否為null

-- 創建EMP表 CREATE TABLE EMP ( EMPNO int(4) PRIMARY KEY, ENAME VARCHAR(10), JOB VARCHAR(9), MGR INT(4), HIREDATE DATE, SAL DOUBLE(7,2), COMM DOUBLE(7,2), DEPTNO INT(2) ); -- where查詢 語句 SELECT * from emp; -- 模糊查詢 -- 搜索emp表中還有A的…

28335接兩個spi設備_SPI淺析

01 SPI簡介SPI,全稱為Serial Peripheral interface,即串行外圍設備接口。由摩托羅拉率先在產品上使用。SPI是一種高速全雙工,同步(full duplex synchronous)的通信總線協議,且占用硬件端口只有4個(SO,SI, SCLK 和CSN),所以出于這…

mysql010函數使用.單行函數.多行函數

-- 函數使用 -- 1.單行函數 執行QSL語句時候 分別產生了一條記錄影響的是多行。 -- 2.多行函數 執行QSL語句時候 只產生一條結果 -- 自己理解:多行函數,就是需要多條數據才能執行的結果。 -- max() min() sum() avg() count() SELECT ENAME,LOWER(E…

JS在線壓縮

http://dean.edwards.name/packer/轉載于:https://www.cnblogs.com/fery/p/4531804.html

java mongo 獲取所有數據庫_Spring Batch —從XML讀取并寫入Mongo

Java面試必備之JVMGC教程這幾天閑著在優銳課的java學習必備中學習了,在本文中,了解如何使用Spring Batch通過StaxEventItemReader使用ItemReader讀取XML文件并將其數據寫入NoSQL。在本文中,我們將向展示如何使用Spring Batch使用StaxEventIte…

001多表查詢.交叉鏈接cross JOIN.自然鏈接natural JOIN.using鏈接.on鏈接

-- 需求:查詢每一個員工信息,并且顯示每一個員工所在的部門名稱 -- mysql中多表查詢有四種,交叉鏈接cross JOIN,自然鏈接natural JOIN,using鏈接,on鏈接 -- 交叉鏈接cross JOIN SELECT * FROM emp; --6…