這篇“實現(xiàn)Python面向?qū)ο蟀鎸W(xué)員管理系統(tǒng)的示例”除了程序員外大部分人都不太理解,今天小編為了讓大家更加理解“實現(xiàn)Python面向?qū)ο蟀鎸W(xué)員管理系統(tǒng)的示例”,給大家總結(jié)了以下內(nèi)容,具有一定借鑒價值,內(nèi)容詳細步驟清晰,細節(jié)處理妥當,希望大家通過這篇文章有所收獲,下面讓我們一起來看看具體內(nèi)容吧。
創(chuàng)新互聯(lián)建站從2013年開始,先為西寧等服務(wù)建站,西寧等地企業(yè),進行企業(yè)商務(wù)咨詢服務(wù)。為西寧企業(yè)網(wǎng)站制作PC+手機+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。
Python是一種編程語言,內(nèi)置了許多有效的工具,Python幾乎無所不能,該語言通俗易懂、容易入門、功能強大,在許多領(lǐng)域中都有廣泛的應(yīng)用,例如最熱門的大數(shù)據(jù)分析,人工智能,Web開發(fā)等。
一. 系統(tǒng)需求
使用面向?qū)ο缶幊趟枷胪瓿蓪W(xué)員管理系統(tǒng)的開發(fā),具體如下:
系統(tǒng)要求:學(xué)員數(shù)據(jù)存儲在文件中
系統(tǒng)功能:添加學(xué)員、刪除學(xué)員、修改學(xué)員信息、查詢學(xué)員信息、顯示所有學(xué)員信息、保存學(xué)員信息及退出系統(tǒng)等功能。
二. 準備程序文件
2.1 分析
角色分析
學(xué)員
管理系統(tǒng)
工作中注意事項
為了方便維護代碼,一般一個角色一個程序文件;
項目要有主程序入口,習(xí)慣為
main.py
2.2 創(chuàng)建程序文件
創(chuàng)建項目目錄,例如:StudentManagerSystem
程序文件如下:
程序入口文件:main.py
學(xué)員文件:student.py
管理系統(tǒng)文件:managerSystem.py
三. 書寫程序
3.1 student.py
需求:
學(xué)員信息包含:姓名、性別、手機號;
添加__str__
魔法方法,方便查看學(xué)員對象信息
3.1.2 程序代碼
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}'
3.2 managerSystem.py
需求:
存儲數(shù)據(jù)的位置:文件(student.data)
加載文件數(shù)據(jù)
修改數(shù)據(jù)后保存到文件
存儲數(shù)據(jù)的形式:列表存儲學(xué)員對象
系統(tǒng)功能
添加學(xué)員
刪除學(xué)員
修改學(xué)員
查詢學(xué)員信息
顯示所有學(xué)員信息
保存學(xué)員信息
退出系統(tǒng)
3.2.1 定義類
class StudentManager(object): def __init__(self): # 存儲數(shù)據(jù)所用的列表 self.student_list = []
3.2.2 管理系統(tǒng)框架
需求:系統(tǒng)功能循環(huán)使用,用戶輸入不同的功能序號執(zhí)行不同的功能。
步驟
加載數(shù)據(jù)
顯示功能菜單
用戶輸入功能序號
根據(jù)用戶輸入的功能序號執(zhí)行不同的功能
定義程序入口函數(shù)
定義系統(tǒng)功能函數(shù),添加、刪除學(xué)員等
class StudentManager(object): def __init__(self): # 存儲數(shù)據(jù)所用的列表 self.student_list = [] # 一. 程序入口函數(shù),啟動程序后執(zhí)行的函數(shù) def run(self): # 1. 加載學(xué)員信息 self.load_student() while True: # 2. 顯示功能菜單 self.show_menu() # 3. 用戶輸入功能序號 menu_num = int(input('請輸入您需要的功能序號:')) # 4 根據(jù)用戶輸入的功能序號執(zhí)行不同的功能 if menu_num == 1: # 添加學(xué)員 self.add_student() elif menu_num == 2: # 刪除學(xué)員 self.del_student() elif menu_num == 3: # 修改學(xué)員信息 self.modify_student() elif menu_num == 4: # 查詢學(xué)員信息 self.search_student() elif menu_num == 5: # 顯示所有學(xué)員信息 self.show_student() elif menu_num == 6: # 保存學(xué)員信息 self.save_student() elif menu_num == 7: # 退出系統(tǒng) break # 二. 定義功能函數(shù) # 2.1 顯示功能菜單 @staticmethod def show_menu(): print('請選擇如下功能-----------------') print('1:添加學(xué)員') print('2:刪除學(xué)員') print('3:修改學(xué)員信息') print('4:查詢學(xué)員信息') print('5:顯示所有學(xué)員信息') print('6:保存學(xué)員信息') print('7:退出系統(tǒng)') # 2.2 添加學(xué)員 def add_student(self): pass # 2.3 刪除學(xué)員 def del_student(self): pass # 2.4 修改學(xué)員信息 def modify_student(self): pass # 2.5 查詢學(xué)員信息 def search_student(self): pass # 2.6 顯示所有學(xué)員信息 def show_student(self): pass # 2.7 保存學(xué)員信息 def save_student(self): pass # 2.8 加載學(xué)員信息 def load_student(self): pass
3.3 main.py
# 1. 導(dǎo)入managerSystem模塊from managerSystem import *# 2. 啟動學(xué)員管理系統(tǒng)if __name__ == '__main__': student_manager = StudentManager() student_manager.run()
3.4 定義系統(tǒng)功能函數(shù)
3.4.1 添加功能
需求:用戶輸入學(xué)員姓名、性別、手機號,將學(xué)員添加到系統(tǒng)。
步驟
用戶輸入姓名、性別、手機號
創(chuàng)建該學(xué)員對象
將該學(xué)員對象添加到列表
代碼
# 添加學(xué)員函數(shù)內(nèi)部需要創(chuàng)建學(xué)員對象,故先導(dǎo)入student模塊from student import *class StudentManager(object): ...... # 2.2 添加學(xué)員 def add_student(self): # 1. 用戶輸入姓名、性別、手機號 name = input('請輸入您的姓名:') gender = input('請輸入您的性別:') tel = input('請輸入您的手機號:') # 2. 創(chuàng)建學(xué)員對象:先導(dǎo)入學(xué)員模塊,再創(chuàng)建對象 student = Student(name, gender, tel) # 3. 將該學(xué)員對象添加到列表 self.student_list.append(student) # 打印信息 print(self.student_list) print(student)
3.4.2 刪除學(xué)員
需求:用戶輸入目標學(xué)員姓名,如果學(xué)員存在則刪除該學(xué)員。
步驟
用戶輸入目標學(xué)員姓名
遍歷學(xué)員數(shù)據(jù)列表,如果用戶輸入的學(xué)員姓名存在則刪除,否則則提示該學(xué)員不存在。
代碼
# 2.3 刪除學(xué)員:刪除指定姓名的學(xué)員 def del_student(self): # 1. 用戶輸入目標學(xué)員姓名 del_name = input('請輸入要刪除的學(xué)員姓名:') # 2. 如果用戶輸入的目標學(xué)員存在則刪除,否則提示學(xué)員不存在 for i in self.student_list: if i.name == del_name: self.student_list.remove(i) break else: print('查無此人!') # 打印學(xué)員列表,驗證刪除功能 print(self.student_list)
3.4.3 修改學(xué)員信息
需求:用戶輸入目標學(xué)員姓名,如果學(xué)員存在則修改該學(xué)員信息。
步驟
用戶輸入目標學(xué)員姓名;
遍歷學(xué)員數(shù)據(jù)列表,如果用戶輸入的學(xué)員姓名存在則修改學(xué)員的姓名、性別、手機號數(shù)據(jù),否則則提示該學(xué)員不存在。
代碼
# 2.4 修改學(xué)員信息 def modify_student(self): # 1. 用戶輸入目標學(xué)員姓名 modify_name = input('請輸入要修改的學(xué)員的姓名:') # 2. 如果用戶輸入的目標學(xué)員存在則修改姓名、性別、手機號等數(shù)據(jù),否則提示學(xué)員不存在 for i in self.student_list: if i.name == modify_name: i.name = input('請輸入學(xué)員姓名:') i.gender = input('請輸入學(xué)員性別:') i.tel = input('請輸入學(xué)員手機號:') print(f'修改該學(xué)員信息成功,姓名{i.name},性別{i.gender}, 手機號{i.tel}') break else: print('查無此人!')
3.4.5 查詢學(xué)員信息
需求:用戶輸入目標學(xué)員姓名,如果學(xué)員存在則打印該學(xué)員信息
步驟
用戶輸入目標學(xué)員姓名
遍歷學(xué)員數(shù)據(jù)列表,如果用戶輸入的學(xué)員姓名存在則打印學(xué)員信息,否則提示該學(xué)員不存在。
代碼
# 2.5 查詢學(xué)員信息 def search_student(self): # 1. 用戶輸入目標學(xué)員姓名 search_name = input('請輸入要查詢的學(xué)員的姓名:') # 2. 如果用戶輸入的目標學(xué)員存在,則打印學(xué)員信息,否則提示學(xué)員不存在 for i in self.student_list: if i.name == search_name: print(f'姓名{i.name},性別{i.gender}, 手機號{i.tel}') break else: print('查無此人!')
3.4.6 顯示所有學(xué)員信息
打印所有學(xué)員信息
步驟
遍歷學(xué)員數(shù)據(jù)列表,打印所有學(xué)員信息
代碼
# 2.6 顯示所有學(xué)員信息 def show_student(self): print('姓名\t性別\t手機號') for i in self.student_list: print(f'{i.name}\t{i.gender}\t{i.tel}')
3.4.7 保存學(xué)員信息
需求:將修改后的學(xué)員數(shù)據(jù)保存到存儲數(shù)據(jù)的文件。
步驟
打開文件
文件寫入數(shù)據(jù)
關(guān)閉文件
思考
文件寫入的數(shù)據(jù)是學(xué)員對象的內(nèi)存地址嗎?
文件內(nèi)數(shù)據(jù)要求的數(shù)據(jù)類型是什么?
拓展__dict__
class A(object): a = 0 def __init__(self): self.b = 1aa = A()# 返回類內(nèi)部所有屬性和方法對應(yīng)的字典print(A.__dict__)# 返回實例屬性和值組成的字典print(aa.__dict__)
在Python中
代碼
# 2.7 保存學(xué)員信息 def save_student(self): # 1. 打開文件 f = open('student.data', 'w') # 2. 文件寫入學(xué)員數(shù)據(jù) # 注意1:文件寫入的數(shù)據(jù)不能是學(xué)員對象的內(nèi)存地址,需要把學(xué)員數(shù)據(jù)轉(zhuǎn)換成列表字典數(shù)據(jù)再做存儲 new_list = [i.__dict__ for i in self.student_list] # [{'name': 'aa', 'gender': 'nv', 'tel': '111'}] print(new_list) # 注意2:文件內(nèi)數(shù)據(jù)要求為字符串類型,故需要先轉(zhuǎn)換數(shù)據(jù)類型為字符串才能文件寫入數(shù)據(jù) f.write(str(new_list)) # 3. 關(guān)閉文件 f.close()
3.4.8 加載學(xué)員信息
需求:每次進入系統(tǒng)后,修改的數(shù)據(jù)是文件里面的數(shù)據(jù)
步驟
讀取數(shù)據(jù)
轉(zhuǎn)換數(shù)據(jù)類型為列表并轉(zhuǎn)換列表內(nèi)的字典為對象
存儲學(xué)員數(shù)據(jù)到學(xué)員列表
嘗試以"r"
模式打開學(xué)員數(shù)據(jù)文件,如果文件不存在則以"w"
模式打開文件
如果文件存在則讀取數(shù)據(jù)并存儲數(shù)據(jù)
關(guān)閉文件
代碼
# 2.8 加載學(xué)員信息 def load_student(self): # 嘗試以"r"模式打開數(shù)據(jù)文件,文件不存在則提示用戶;文件存在(沒有異常)則讀取數(shù)據(jù) try: f = open('student.data', 'r') except: f = open('student.data', 'w') else: # 1. 讀取數(shù)據(jù) data = f.read() # 2. 文件中讀取的數(shù)據(jù)都是字符串且字符串內(nèi)部為字典數(shù)據(jù),故需要轉(zhuǎn)換數(shù)據(jù)類型再轉(zhuǎn)換字典為對象后存儲到學(xué)員列表 new_list = eval(data) self.student_list = [Student(i['name'], i['gender'], i['tel']) for i in new_list] finally: # 3. 關(guān)閉文件 f.close()
四. 總結(jié)
函數(shù)
定義和調(diào)用
參數(shù)的使用
面向?qū)ο?/p>
定義類
創(chuàng)建對象
定義和調(diào)用實例屬性
定義和調(diào)用實例方法
數(shù)據(jù)類型
增加刪除數(shù)據(jù)
列表推導(dǎo)式
列表
字典
字符串
文件操作
打開文件
讀取或?qū)懭?/p>
關(guān)閉文件
感謝你的閱讀,希望你對“實現(xiàn)Python面向?qū)ο蟀鎸W(xué)員管理系統(tǒng)的示例”這一關(guān)鍵問題有了一定的理解,具體使用情況還需要大家自己動手實驗使用過才能領(lǐng)會,快去試試吧,如果想閱讀更多相關(guān)知識點的文章,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!
網(wǎng)頁名稱:實現(xiàn)Python面向?qū)ο蟀鎸W(xué)員管理系統(tǒng)的示例
當前路徑:http://chinadenli.net/article46/giojeg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供做網(wǎng)站、云服務(wù)器、響應(yīng)式網(wǎng)站、網(wǎng)站設(shè)計、面包屑導(dǎo)航、企業(yè)建站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)