python實現學生信息管理系統(面向對象)

本文實例為大傢分享瞭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}'

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

推薦閱讀: