python實現(xiàn)學員管理系統(tǒng)(面向?qū)ο蟀?
前言
使用面向?qū)ο缶幊趟枷胪瓿蓪W員管理系統(tǒng)的開發(fā),具體如下:
- 系統(tǒng)要求:使用面向?qū)ο蟮姆椒?/li>
- 系統(tǒng)功能:添加學員、刪除學員、修改學員信息、查詢學員信息、顯示所有學員信息、保存學員信息及退出系統(tǒng)等功能。
分析
- 角色分析
- 學員
- 管理系統(tǒng)
- 工作中注意事項
-為了方便維護代碼,一般一個角色一個程序文件
- 項目要有主程序入口,習慣稱為main.py
創(chuàng)建程序文件
1.創(chuàng)建項目目錄,例如:StudentmangerSystem
2.程序文件如下:
- 程序入口文件:main.py
- 學員文件:studnet.py
- 管理系統(tǒng)文件:mangerSystem.py
書寫程序
- student.py
需求:儲存數(shù)據(jù)的形式:列表存儲學員對象
- 管理系統(tǒng)框架
需求:系統(tǒng)功能循環(huán)使用,用戶輸入不同的功能序號執(zhí)行不同的功能
- 步驟:
- 定義程序入口函數(shù)
- 顯示功能菜單
- 用戶輸入功能序號
- 根據(jù)用戶駛?cè)氲墓δ苄蛱枅?zhí)行不同的功能
- 定義系統(tǒng)功能函數(shù),添加、刪除學員等
student.py
需求是讓我們把學員的數(shù)據(jù)放在列表里面,而且要用到面向?qū)ο蟆S纱宋覀儗W員看成是一個類,一個個學員就是實例對象。注意:這個時候列表里放的將是對象,而非其他數(shù)據(jù)類型。切記切記!
class Student(object): ?? ?# 初始化學生類,傳入學員的三個參數(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},電話號碼是{self.tel}'
managerSystem
同樣也是要用到面向?qū)ο螅纱?,將需求中的各種功能看成是一個個實例方法。
功能面板也看成是一個實例方法
要求使用循環(huán),則需要一個運行程序,將功能面板,實例方法調(diào)用。同時使用if判斷語句判斷將用戶輸入的功能序號和功能的運行相對應(yīng)。
from Student import * class managerSystem(object): ?? ?# 初始化 ?? ?def __init__(self): ?? ??? ?self.student_list = [] ?? ?# 定義功能面板 ?? ?def show_menu(self): ?? ??? ?print("請選擇如下功能:") ? ? ? ? print("1.添加學員") ? ? ? ? print("2.刪除學員") ? ? ? ? print("3.修改學員信息") ? ? ? ? print("4.查詢學員信息") ? ? ? ? print("5.顯示所有學員信息") ? ? ? ? print("6.保存學員信息") ? ? ? ? print("7.退出系統(tǒng)") ? ? # 定義功能函數(shù):添加學員 ? ? def student_add(self): ? ? ?? ?name = input('請輸入姓名:') ? ? ?? ?for i in self.student_list: ? ? ?? ??? ?if i.name != name: ? ? ?? ??? ??? ?gender = input('請輸入性別:') ? ? ?? ??? ??? ?tel = input('請輸入電話號:') ? ? ?? ??? ??? ?break ? ? ?? ??? ?else: ? ? ?? ??? ??? ?print('庫中已有此人!') ? ? ?? ?student = Student(name,gender,tel) ? ? ?? ?self.student_list.append(student) ? # 注意:這里加入到列表中的是一個實例對象,打印只會得到一個內(nèi)存地址 ? ? # 定義功能函數(shù):刪除學員 ? ? def student_del(self): ? ? ?? ?name = input('請輸入刪除學員的姓名:') ? ? ?? ?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('請輸入電話號:') ? ? ?? ??? ??? ?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}電話號是{i.tel}') ? ? ?? ??? ??? ?break ? ? ?? ??? ?else: ? ? ?? ??? ??? ?print('查無此人!') ? ? # 定義功能函數(shù):顯示所有信息 ? ? def student_show_all(self): ? ? ?? ?for i in student_list: ? ? ?? ??? ?print(f'{i.name}的性別是{i.gender}電話號是{i.tel}') ? ? # 定義功能函數(shù):保存學員信息 ? ? def student_save(self): ? ? ?? ?print('保存信息成功!') ? ? # 定義功能函數(shù):退出系統(tǒng) ? ? def student_exit(self): ? ? ?? ?print('退出成功!') ?? ?“”“ ?? ?定義主運行程序 ?? ?”“” ?? ?def run(self): ?? ??? ?# 定義一個變量,用以跳出循環(huán) ?? ??? ?i = 0 ?? ??? ?while i == 0: ?? ??? ??? ?srlf.show_menu() ?? ??? ??? ?func_sum = input('請輸入功能序號:') ?? ??? ??? ?if func_sum == '1': ?? ??? ??? ??? ?self.student_add() ? ? ? ? # 添加學員 ?? ??? ??? ?elif func_sum == '2': ?? ??? ??? ??? ?self.student_del()?? ? ? ? ? # 刪除學員 ?? ??? ??? ?elif func_sun == '3': ?? ??? ??? ??? ?self.student_change()?? ? ? # 修改學員信息 ?? ??? ??? ?elif func_sum == '4': ?? ??? ??? ??? ?self.student_search()?? ? ? # 查詢學員信息 ?? ??? ??? ?elif func_sum == '5': ?? ??? ??? ??? ?self.student_show_all()?? ? ? # 顯示所有信息 ?? ??? ??? ?elif func_sum == '6': ?? ??? ??? ??? ?self.studnet_save() ? ? ? ?# 保存信息 ?? ??? ??? ?else: ?? ??? ??? ??? ?i += 1 ? ? ? ? ? ? ? ? ? ? # 當i不等于0時,跳出循環(huán) ?? ??? ??? ??? ?self.student_exit() ? ? ? ?# 退出程序
main.py
管理學員系統(tǒng)的執(zhí)行文件
from managerSystem import * if __name__ == '__main__': ?? ?Mangersystem = managerSystem() ?? ?Mangersystem.run()
最后,這三個文件要在同一個目錄下,最好先在pycharm中創(chuàng)建一個項目后,再創(chuàng)建者三個文件。
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
新版Pycharm中Matplotlib不會彈出獨立的顯示窗口的問題
這篇文章主要介紹了解決新版Pycharm中Matplotlib不會彈出獨立的顯示窗口的問題,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-06-06python怎樣判斷一個數(shù)值(字符串)為整數(shù)
這篇文章主要介紹了python怎樣判斷一個數(shù)值(字符串)為整數(shù)問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-02-02