python實現學員管理系統(面向對象版)

前言

使用面向對象編程思想完成學員管理系統的開發,具體如下:

  • 系統要求:使用面向對象的方法
  • 系統功能:添加學員、刪除學員、修改學員信息、查詢學員信息、顯示所有學員信息、保存學員信息及退出系統等功能。

分析

  • 角色分析

– 學員
– 管理系統

  • 工作中註意事項

-為瞭方便維護代碼,一般一個角色一個程序文件
– 項目要有主程序入口,習慣稱為main.py

創建程序文件

1.創建項目目錄,例如:StudentmangerSystem
2.程序文件如下:

  • 程序入口文件:main.py
  • 學員文件:studnet.py
  • 管理系統文件:mangerSystem.py

書寫程序

  • student.py

需求:儲存數據的形式:列表存儲學員對象

  • 管理系統框架

需求:系統功能循環使用,用戶輸入不同的功能序號執行不同的功能

  • 步驟:
  • 定義程序入口函數
  • 顯示功能菜單
  • 用戶輸入功能序號
  • 根據用戶駛入的功能序號執行不同的功能
  • 定義系統功能函數,添加、刪除學員等

student.py

需求是讓我們把學員的數據放在列表裡面,而且要用到面向對象。由此我們將學員看成是一個類,一個個學員就是實例對象。註意:這個時候列表裡放的將是對象,而非其他數據類型。切記切記!

class Student(object):
    # 初始化學生類,傳入學員的三個參數
    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

同樣也是要用到面向對象,由此,將需求中的各種功能看成是一個個實例方法。
功能面板也看成是一個實例方法
要求使用循環,則需要一個運行程序,將功能面板,實例方法調用。同時使用if判斷語句判斷將用戶輸入的功能序號和功能的運行相對應。

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.退出系統")
    # 定義功能函數:添加學員
    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)   # 註意:這裡加入到列表中的是一個實例對象,打印隻會得到一個內存地址
    # 定義功能函數:刪除學員
    def student_del(self):
        name = input('請輸入刪除學員的姓名:')
        for i in self.student_list:
            if i.name == name:
                del i
            else:
                print('查無此人!')
    # 定義功能函數:修改信息
    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('查無此人!')
    # 定義功能函數:查詢功能信息
    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('查無此人!')
    # 定義功能函數:顯示所有信息
    def student_show_all(self):
        for i in student_list:
            print(f'{i.name}的性別是{i.gender}電話號是{i.tel}')
    # 定義功能函數:保存學員信息
    def student_save(self):
        print('保存信息成功!')
    # 定義功能函數:退出系統
    def student_exit(self):
        print('退出成功!')
    “”“
    定義主運行程序
    ”“”
    def run(self):
        # 定義一個變量,用以跳出循環
        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時,跳出循環
                self.student_exit()        # 退出程序

main.py

管理學員系統的執行文件

from managerSystem import *
if __name__ == '__main__':
    Mangersystem = managerSystem()
    Mangersystem.run()

最後,這三個文件要在同一個目錄下,最好先在pycharm中創建一個項目後,再創建者三個文件。

以上就是本文的全部內容,希望對大傢的學習有所幫助,也希望大傢多多支持WalkonNet。

推薦閱讀: