首頁 > 軟體

python實現學生資訊管理系統(物件導向)

2022-06-05 14:00:45

本文範例為大家分享了python實現學生資訊管理系統的具體程式碼,供大家參考,具體內容如下

1.主要內容

python種的.py檔案如圖所示

第一個檔案是用來管理檔案中包中各個模組的關係的檔案

第二個檔案是主函數檔案,就是在主函數檔案呼叫其餘檔案和模組

第三個模組式學生資訊管理的模組

第四個檔案是用來存放學生資料的檔案

第五個檔案是學生資訊的定義和顯示模組

2.實現程式碼

1)第一個檔案是包中的管理檔案自動生成且不需要修改

2)main.py檔案

from managerSystem import *#匯入模組managerSystem,可以使用其中的功能

if __name__=='__main__':#定義只能在執行main.py檔案中執行,才執行的程式碼
    student_manager=StudentManager()
    student_manager.run()

3)學生資訊管理模組

from student import *


class StudentManager(object):

    def __init__(self):
        self.student_list = []

    def run(self):
        self.load_student()

        while True:
            self.show_menu()
            ret = int(input('請輸入數位1——7:'))
            if ret == 1:
                self.add_student()
            elif ret == 2:
                self.del_student()
            elif ret == 3:
                self.modify_student()
            elif ret == 4:
                self.search_student()
            elif ret == 5:
                self.show_student()
            elif ret == 6:
                self.save_student()
            elif ret == 7:
                break

    @staticmethod#此方法在執行時,不需要傳入任何引數
    def show_menu():
        print('請選擇如下序號:')
        print('1.新增學員')
        print('2.刪除學員')
        print('3.修改學員資訊')
        print('4.查詢學員')
        print('5.顯示學員資訊')
        print('6.儲存學員資訊')
        print('7.退出系統')

    def add_student(self):
        name = input('請輸入學員姓名:')
        gender = input('請輸入學員性別:')
        tel = input('請輸入電話號碼:')
        student = Student(name, gender, tel)
        self.student_list.append(student)
        # print(self.student_list)
        # print(student)

    def del_student(self):
        del_name = input('請輸入需要刪除的學員姓名:')
        for i in self.student_list:
            if i.name == del_name:
                self.student_list.remove(i)
                break
        else:
            print('查無此人')
        # print(self.student_list)

    def modify_student(self):
        modify_name = input('請輸入需要修改的學員姓名:')
        for i in self.student_list:
            if i.name == modify_name:
                i.name = input('親輸入需要修改的學員姓名:')
                i.gender = input('請輸入需要修過的學員性別:')
                i.tel = input('請輸入需要修改的學員手機號:')
                print(f'修改的資訊為{i.name},{i.gender},{i.tel}')
                break
        else:
            print('需要修改的學員不存在')

    def search_student(self):
        searce_name = input('請輸入需要查詢的學員姓名:')
        for i in self.student_list:
            if i.name == searce_name:
                print(f'姓名:{i.name},性別:{i.gender},手機號:{i.tel}')
                break
        else:
            print('查無此人')

    def show_student(self):
        print('姓名:t性別:t手機號:')
        for i in self.student_list:
            print(f'{i.name}t{i.gender}t{i.tel}')

    def save_student(self):
        f = open('student.data', 'w')
        new_list = [i.__dict__ for i in self.student_list]
        print(new_list)
        f.write(str(new_list))
        f.close()

    def load_student(self):
        # 1. 開啟檔案:嘗試r開啟,如果有異常w
        try:
            f = open('student.data', 'r')
        except:
            f = open('student.data', 'w')
        else:
            # 2. 讀取資料:檔案讀取出的資料是字串還原列表型別;[{}] 轉換 [學員物件]
            data = f.read()  # 字串
            if data != '':  # 此時需要新增判斷檔案是否為空,否則會發生報錯
                new_list = eval(data)
                self.student_list = [Student(i['name'], i['gender'], i['tel']) for i in new_list]
        finally:
            # 3. 關閉檔案
            f.close()

4)儲存資料的檔案不需要編輯

5)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}'

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援it145.com。


IT145.com E-mail:sddin#qq.com