栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

面向对象的学员管理系统

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

面向对象的学员管理系统

面向对象的学员管理系统
  • 拓展知识“ _ _dict _ _”
class A(object):
	a = 0
def __init__(self):
	self.b = 1

aa = A()
# 返回类内部所有属性和方法对应的字典
print('A.__dict__')
# 返回实例属性和值组成的字典
print('aa.__dict__')
程序——三个文件

main.py

from managerSystem import *

if __name__ == '__main__':
    student_manager = StudentManager()
    student_manager.run()

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

managerSystem.py

from student import *


class StudentManager(object):
    def __init__(self):
        self.student_list = []

    def run(self):
        # self.load_student()
        while True:
            self.show_menu()
            menu_num = int(input('请输入您想要的功能序号:'))
            if menu_num == 1:
                self.add_student()
                pass
            elif menu_num == 2:
                self.del_student()
                pass
            elif menu_num == 3:
                self.modify_student()
                pass
            elif menu_num == 5:
                self.show_student()
                pass
            elif menu_num == 4:
                self.search_student()
                pass
            elif menu_num == 6:
                self.save_student()
                pass
            elif menu_num == 7:  # 退出系统
                break

    @staticmethod  # 不用改变和传参的静态方法
    def show_menu():
        print('------------------------------------------------------------')
        print('选择你的功能:')
        print('1.添加学员')
        print('2.删除学员')
        print('3.修改学员信息')
        print('4.查询学员信息')
        print('5.查询所有学员信息')
        print('6.保存学员信息')
        print('7.退出系统')
        print('------------------------------------------------------------')

    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)
        pass

    def del_student(self):
        name = input('请输入您想删除学员的姓名:')
        for i in self.student_list:
            if i.name == name:
                self.student_list.remove(i)
                print('删除成功!!!')
                break
            else:
                print('查无此人')
        pass

    def modify_student(self):
        name = input('请输入您想修改学员的姓名:')
        for i in self.student_list:
            if i.name == name:
                self.student_list.remove(i)
                self.add_student()
                print('修改成功')
                break
            else:
                print('查无此人')
        pass

    def search_student(self):
        name = input('请输入您想查询学员的姓名:')
        for i in self.student_list:
            if i.name == name:
                print(f'学员名字是{i.name},性别是{i.gender},电话号码是{i.tel}')
                break
            else:
                print('查无此人')
        pass

    def show_student(self):
        print('名字t性别t电话号码')
        for i in self.student_list:
            print(f'{i.name}t{i.gender}t{i.tel}')
        pass

    def save_student(self):
        # 打开文件
        f = open('student.data', 'w')
        # 文件写入数据
        # 注意一 列表推导式,将列表里面的数据转换成字典
        new_list = [i.__dict__ for i in self.student_list]
        # 注意二 文件内数据要求为字符串类型,需要先将数据类型转换成字符串才能进行文件写入
        f.write(str(new_list))

        f.close()
        pass

    def load_student(self):
        try:
            f = open('student.data', 'r')
        except:
            f = open('student.data', 'w')
        else:
            data = f.read()
            # 文件读取数据都是字符串且字符传内部为字典数据,需要转换数据类型在转换字典为对象后存储到学员列表
            # 文件读取数据都是字符串且字符传内部为字典数据,需要转换数据类型在转换字典为对象后存储到学员列表
            new_list = eval(data)
            self.student_list = [Student(i['name'], i['gender'], i['tel']) for i in new_list]
        finally:
            f.close()
        pass

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/302541.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号