python實(shí)現(xiàn)學(xué)員管理系統(tǒng)(面向?qū)ο蟀?
前言
使用面向?qū)ο缶幊趟枷胪瓿蓪W(xué)員管理系統(tǒng)的開發(fā),具體如下:
- 系統(tǒng)要求:使用面向?qū)ο蟮姆椒?/li>
- 系統(tǒng)功能:添加學(xué)員、刪除學(xué)員、修改學(xué)員信息、查詢學(xué)員信息、顯示所有學(xué)員信息、保存學(xué)員信息及退出系統(tǒng)等功能。
分析
- 角色分析
- 學(xué)員
- 管理系統(tǒng)
- 工作中注意事項(xiàng)
-為了方便維護(hù)代碼,一般一個(gè)角色一個(gè)程序文件
- 項(xiàng)目要有主程序入口,習(xí)慣稱為main.py
創(chuàng)建程序文件
1.創(chuàng)建項(xiàng)目目錄,例如:StudentmangerSystem
2.程序文件如下:
- 程序入口文件:main.py
- 學(xué)員文件:studnet.py
- 管理系統(tǒng)文件:mangerSystem.py
書寫程序
- student.py
需求:儲(chǔ)存數(shù)據(jù)的形式:列表存儲(chǔ)學(xué)員對象
- 管理系統(tǒng)框架
需求:系統(tǒng)功能循環(huán)使用,用戶輸入不同的功能序號(hào)執(zhí)行不同的功能
- 步驟:
- 定義程序入口函數(shù)
- 顯示功能菜單
- 用戶輸入功能序號(hào)
- 根據(jù)用戶駛?cè)氲墓δ苄蛱?hào)執(zhí)行不同的功能
- 定義系統(tǒng)功能函數(shù),添加、刪除學(xué)員等
student.py
需求是讓我們把學(xué)員的數(shù)據(jù)放在列表里面,而且要用到面向?qū)ο?。由此我們將學(xué)員看成是一個(gè)類,一個(gè)個(gè)學(xué)員就是實(shí)例對象。注意:這個(gè)時(shí)候列表里放的將是對象,而非其他數(shù)據(jù)類型。切記切記!
class Student(object):
?? ?# 初始化學(xué)生類,傳入學(xué)員的三個(gè)參數(shù)
?? ?def __init__(self,sname,sgender,stel):
?? ??? ?self.name = sname
?? ??? ?self.gender = sgender
?? ??? ?self.tel = stel
?? ?# 便于格式化返回字符串,浙江影響到對象的打印
?? ?def __str__(self):
?? ??? ?return f'{self.name}的性別是{self.gender},電話號(hào)碼是{self.tel}'managerSystem
同樣也是要用到面向?qū)ο?,由此,將需求中的各種功能看成是一個(gè)個(gè)實(shí)例方法。
功能面板也看成是一個(gè)實(shí)例方法
要求使用循環(huán),則需要一個(gè)運(yùn)行程序,將功能面板,實(shí)例方法調(diào)用。同時(shí)使用if判斷語句判斷將用戶輸入的功能序號(hào)和功能的運(yùn)行相對應(yīng)。
from Student import *
class managerSystem(object):
?? ?# 初始化
?? ?def __init__(self):
?? ??? ?self.student_list = []
?? ?# 定義功能面板
?? ?def show_menu(self):
?? ??? ?print("請選擇如下功能:")
? ? ? ? print("1.添加學(xué)員")
? ? ? ? print("2.刪除學(xué)員")
? ? ? ? print("3.修改學(xué)員信息")
? ? ? ? print("4.查詢學(xué)員信息")
? ? ? ? print("5.顯示所有學(xué)員信息")
? ? ? ? print("6.保存學(xué)員信息")
? ? ? ? print("7.退出系統(tǒng)")
? ? # 定義功能函數(shù):添加學(xué)員
? ? def student_add(self):
? ? ?? ?name = input('請輸入姓名:')
? ? ?? ?for i in self.student_list:
? ? ?? ??? ?if i.name != name:
? ? ?? ??? ??? ?gender = input('請輸入性別:')
? ? ?? ??? ??? ?tel = input('請輸入電話號(hào):')
? ? ?? ??? ??? ?break
? ? ?? ??? ?else:
? ? ?? ??? ??? ?print('庫中已有此人!')
? ? ?? ?student = Student(name,gender,tel)
? ? ?? ?self.student_list.append(student) ? # 注意:這里加入到列表中的是一個(gè)實(shí)例對象,打印只會(huì)得到一個(gè)內(nèi)存地址
? ? # 定義功能函數(shù):刪除學(xué)員
? ? def student_del(self):
? ? ?? ?name = input('請輸入刪除學(xué)員的姓名:')
? ? ?? ?for i in self.student_list:
? ? ?? ??? ?if i.name == name:
? ? ?? ??? ??? ?del i
? ? ?? ??? ?else:
? ? ?? ??? ??? ?print('查無此人!')
? ? # 定義功能函數(shù):修改信息
? ? def student_change(self):
? ? ?? ?name = input('請輸入姓名:')
? ? ?? ?for i in self.student_list:
? ? ?? ??? ?if i.name == name:
? ? ?? ??? ??? ?i.gender = input('請輸入性別:')
? ? ?? ??? ??? ?i.tel = input('請輸入電話號(hào):')
? ? ?? ??? ??? ?break
? ? ?? ??? ?else:
? ? ?? ??? ??? ?print('查無此人!')
? ? # 定義功能函數(shù):查詢功能信息
? ? def student_search(self):
? ? ?? ?name = input('請輸入姓名:')
? ? ?? ?for i in student_list:
? ? ?? ??? ?if i.name == name:
? ? ?? ??? ??? ?print(f'{i.name}的性別{i.gender}電話號(hào)是{i.tel}')
? ? ?? ??? ??? ?break
? ? ?? ??? ?else:
? ? ?? ??? ??? ?print('查無此人!')
? ? # 定義功能函數(shù):顯示所有信息
? ? def student_show_all(self):
? ? ?? ?for i in student_list:
? ? ?? ??? ?print(f'{i.name}的性別是{i.gender}電話號(hào)是{i.tel}')
? ? # 定義功能函數(shù):保存學(xué)員信息
? ? def student_save(self):
? ? ?? ?print('保存信息成功!')
? ? # 定義功能函數(shù):退出系統(tǒng)
? ? def student_exit(self):
? ? ?? ?print('退出成功!')
?? ?“”“
?? ?定義主運(yùn)行程序
?? ?”“”
?? ?def run(self):
?? ??? ?# 定義一個(gè)變量,用以跳出循環(huán)
?? ??? ?i = 0
?? ??? ?while i == 0:
?? ??? ??? ?srlf.show_menu()
?? ??? ??? ?func_sum = input('請輸入功能序號(hào):')
?? ??? ??? ?if func_sum == '1':
?? ??? ??? ??? ?self.student_add() ? ? ? ? # 添加學(xué)員
?? ??? ??? ?elif func_sum == '2':
?? ??? ??? ??? ?self.student_del()?? ? ? ? ? # 刪除學(xué)員
?? ??? ??? ?elif func_sun == '3':
?? ??? ??? ??? ?self.student_change()?? ? ? # 修改學(xué)員信息
?? ??? ??? ?elif func_sum == '4':
?? ??? ??? ??? ?self.student_search()?? ? ? # 查詢學(xué)員信息
?? ??? ??? ?elif func_sum == '5':
?? ??? ??? ??? ?self.student_show_all()?? ? ? # 顯示所有信息
?? ??? ??? ?elif func_sum == '6':
?? ??? ??? ??? ?self.studnet_save() ? ? ? ?# 保存信息
?? ??? ??? ?else:
?? ??? ??? ??? ?i += 1 ? ? ? ? ? ? ? ? ? ? # 當(dāng)i不等于0時(shí),跳出循環(huán)
?? ??? ??? ??? ?self.student_exit() ? ? ? ?# 退出程序main.py
管理學(xué)員系統(tǒng)的執(zhí)行文件
from managerSystem import * if __name__ == '__main__': ?? ?Mangersystem = managerSystem() ?? ?Mangersystem.run()
最后,這三個(gè)文件要在同一個(gè)目錄下,最好先在pycharm中創(chuàng)建一個(gè)項(xiàng)目后,再創(chuàng)建者三個(gè)文件。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
如何用scheduler實(shí)現(xiàn)learning-rate學(xué)習(xí)率動(dòng)態(tài)變化
這篇文章主要介紹了如何用scheduler實(shí)現(xiàn)learning-rate學(xué)習(xí)率動(dòng)態(tài)變化問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-09-09
Python實(shí)現(xiàn)周期性抓取網(wǎng)頁內(nèi)容的方法
這篇文章主要介紹了Python實(shí)現(xiàn)周期性抓取網(wǎng)頁內(nèi)容的方法,涉及Python時(shí)間函數(shù)及正則匹配的相關(guān)操作技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-11-11
使用python統(tǒng)計(jì)文件行數(shù)示例分享
當(dāng)文件的尺寸非常大的時(shí)候(10G之上吧),想知道行數(shù)是個(gè)問題,提供一個(gè)使用python統(tǒng)計(jì)文件行數(shù)的示例,需要的朋友可以參考下2014-02-02
Python實(shí)現(xiàn)去除圖片中指定顏色的像素功能示例
這篇文章主要介紹了Python實(shí)現(xiàn)去除圖片中指定顏色的像素功能,結(jié)合具體實(shí)例形式分析了Python基于pil與cv2模塊的圖形載入、運(yùn)算、轉(zhuǎn)換等相關(guān)操作技巧,需要的朋友可以參考下2019-04-04
使用Pytorch+PyG實(shí)現(xiàn)MLP的詳細(xì)過程
圖神經(jīng)網(wǎng)絡(luò)是最近 AI 領(lǐng)域最熱門的方向之一,下面這篇文章主要給大家介紹了關(guān)于使用Pytorch+PyG實(shí)現(xiàn)MLP的詳細(xì)過程,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-03-03
python:接口間數(shù)據(jù)傳遞與調(diào)用方法
今天小編就為大家分享一篇python:接口間數(shù)據(jù)傳遞與調(diào)用方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-12-12

