python面向對象版學生信息管理系統

本文實例為大傢分享瞭python面向對象版的學生信息管理系統的具體代碼,供大傢參考,具體內容如下

功能:

1.能循環輸入內容

2.展示功能

-1.新增名片
-2.顯示全部
-3.查詢名片
-0.退出系統

3.讓用戶輸入希望執行的操作 例如輸入1,2,3,0

4.新增列表

提示用戶輸入姓名,
輸入電話
輸入qq號
輸入郵箱
提示新增名片成功。

5.顯示全部

將所有的名片打印出來,格式如下:
姓名    電話       QQ               郵箱
zs       110    1337765076    [email protected]

6.查詢名片

提示請輸入要搜索查找用戶的姓名
如果用戶存在—>顯示用戶的信息
-提示用戶【1】修改 【2】刪除 【0】返回上一級菜單,請選擇要執行的操作。
-修改操作,可以修改用戶名,電話,qq、郵箱。

刪除操作,將用戶刪除。
返回上一級操作,回到歡迎界面,讓用戶繼續操作。
如果用戶不存在–>提示查找的用戶不存在。 

class StudentManger(object):
    student_info_lst = []  # 保存所有學生的信息
    @staticmethod
    def show_menu():
        '''顯示所有功能'''
        print('歡迎來到學生管理系統')
        print('新增學員請按[1]')
        print('顯示全部請按[2]')
        print('查詢學員請按[3]')
        print('退出系統請按[0]')
 
    def add_student(self):
        '''這是新增學員的功能'''
        print('-------新增學員功能-------')
        name = input('請輸入姓名:')
        age = input('請輸入年齡:')
        gender = input('請輸入性別:')
        phone = input('請輸入手機:')
        # print(name,age,gender,phone)
        # 將用戶輸入的信息保存到一個字典中。
        dic = {}
        dic['name'] = name
        dic['age'] = age
        dic['gender'] = gender
        dic['phone'] = phone
        # print(dic)
        # 註意:將用戶數的信息保存到全局變量student_info_lst
        # 列表中,讓其他功能使用列表中的數據。
        self.student_info_lst.append(dic)
        # print(student_info_lst)
        print('添加成功瞭...')
 
    def alignment(self,s, space):
        '''輸出對齊'''
        s1 = s.encode('gbk')
        space = space - len(s1)
        s = s + ' ' * space
        return s
 
    def show_all_student(self):
        print('-------顯示所有的學員功能-------')
        if not self.student_info_lst:
            print('還沒有學員呢,請添加學員')
            return
 
        # 顯示學員的信息
        name = self.alignment('name', 15)
        age = self.alignment('age', 15)
        gender = self.alignment('gender', 15)
        phone = self.alignment('phone', 15)
        print(name, age, gender, phone)
 
        for dic in self.student_info_lst:
            name = dic['name']
            age = dic['age']
            gender = dic['gender']
            phone = dic['phone']
            name = self.alignment(name, 15)
            age = self.alignment(age, 15)
            gender = self.alignment(gender, 15)
            phone = self.alignment(phone, 15)
            print(name, age, gender, phone)
 
    def modify_student_info(self,old_value, msg):
        '''處理修改用戶名時不輸入問題'''
        new_name = input(msg)
        if new_name.strip():
            return new_name
        else:
            return old_value
 
    def deal_student(self,dic):
        action_str = input("【1】修改 【2】刪除 【0】返回上一級菜單,請選擇要執行的操作:")
        if action_str == '1':
            # 第一版修改
            # dic['name'] = input('請輸入姓名:')
            # dic['age'] = input('請輸入年齡:')
            # dic['gender'] = input('請輸入性別:')
            # dic['phone'] = input('請輸入電話:')
            # 第二版--輸入空格後能繼續運行。
            dic['name'] = self.modify_student_info(dic['name'], '請輸入姓名:')
            dic['age'] = self.modify_student_info(dic['age'], '請輸入年齡:')
            dic['gender'] = self.modify_student_info(dic['gender'], '請輸入性別:')
            dic['phone'] = self.modify_student_info(dic['phone'], '請輸入電話:')
 
            print('修改成功!!!')
 
        elif action_str == '2':
            self.student_info_lst.remove(dic)
            print('刪除成功瞭!!!')
        elif action_str == '0':
            pass
 
    def search_student_by_name(self):
        '''搜索學生'''
        print('-------歡迎來到查詢學員功能-------')
        if self.student_info_lst:
            name = input('請輸入要查詢學員的姓名:')
            for dic in self.student_info_lst:
                if dic['name'] == name:
                    name = self.alignment('name', 15)
                    age = self.alignment('age', 15)
                    gender = self.alignment('gender', 15)
                    phone = self.alignment('phone', 15)
                    print(name, age, gender, phone)
 
                    name = dic['name']
                    age = dic['age']
                    gender = dic['gender']
                    phone = dic['phone']
                    name = self.alignment(name, 15)
                    age = self.alignment(age, 15)
                    gender = self.alignment(gender, 15)
                    phone = self.alignment(phone, 15)
                    print(name, age, gender, phone)
                    # 處理學生信息
                    self.deal_student(dic)
 
                    break
            else:
                print('not have such student')
        else:
            print('not have student please add student')
 
 
while True:
    StudentManger.show_menu()
    student_manager=StudentManger()
    action_str = input('請輸入你要選擇數字:')
    lst = ['0', '1', '2', '3']
    if action_str in lst:
        if action_str == '1':
            student_manager.add_student()
        elif action_str == '2':
            student_manager.show_all_student()
        elif action_str == '3':
            student_manager.search_student_by_name()
        elif action_str == '0':
            print('三位慢走,歡迎下次光臨')
            break
 
    else:
        print('-------sb 輸出錯瞭請重新輸入...-------')

運行結果:

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

推薦閱讀: