Python 测开27期 - WL - 学习笔记 - 作业2

项目简介:随着学校的规模变大,对应的学员回越来越多,相应的管理越来越难。 学员信息管理系统主要是对学员的各种信息进行管理,能够让学员的信息关系变得科学化、系统化和规范化。
知识点:实体类、成员变量属性、方法、集合
受众:中级测试工程师
作业内容:

  1. 编写学员实体类 Student,对应成员变量包含:学号 id、姓名 name、性别 sex;
  2. 编写学员管理类 StudentManagement ,实现添加学员方法 addStudent()。
  3. 编写StudentManagement的main()方法进行学员信息的添加:
    学号:1001,姓名:张三,性别:男。
    学号:1002,姓名:莉丝,性别:女。
    学号:1003,姓名:王武,性别:男。
  4. 编写学员管理类 StudentManagement ,实现删除学员方法 deleteStudent(),根据学员id 删除以下学员:
    学号:1002,姓名:莉丝,性别:女。
    示例效果
    命令行输出打印效果如下:
    添加的学员信息:
    学号:1001,姓名:张三,性别:男。
    学号:1002,姓名:莉丝,性别:女。
    学号:1003,姓名:王武,性别:男。
    删除后的学员信息:
    学号:1001,姓名:张三,性别:男。
    学号:1003,姓名:王武,性别:男。
list = [[1001, "张三", "男"], [1002, "莉丝", "女"], [1003, "王武", "男"]]
sutdent = []
sutdents = []


class Student:
    def __init__(self, id, name, sex):
        self.id = id
        self.name = name
        self.sex = sex


class StudentManagement:
    def adstu(func):
        def inner(*args, **kwargs):
            print('添加学员信息如下:')
            func(*args, **kwargs)

        return inner

    @adstu
    def addStudent(self):
        for i in range(0, len(list)):
            aa = list[i]
            ss = Student(aa[0], aa[1], aa[2])
            print(f'学号:{ss.id},姓名:{ss.name},性别:{ss.sex}')
            sutdent.append({"id": ss.id, "name": ss.name, "sex": ss.sex})

    def main(self):
        ss = StudentManagement.addStudent(list)

    def destu(func):
        def inners(*args, **kwargs):
            print('要删除的学员信息如下:')
            func(*args, **kwargs)

        return inners
    @destu
    def deleteStudent(self):
        for k in range(0, len(sutdent)):
            if int(sutdent[k]["id"]) == 1002:
                sss = sutdent[k]
                dd = Student(sss["id"], sss["name"], sss["sex"])
                print(f'学号:{dd.id},姓名:{dd.name},性别:{dd.sex}')
                sutdent.pop(k)
                break
            else:
                continue
    def dedadd(func):
        def innerss(*args, **kwargs):
            print('删除后的学员信息如下:')
            func(*args, **kwargs)

        return innerss
    @dedadd
    def new_addn(self):
        for j in range(0,len(sutdent)):
            cc= sutdent[j]
            # print(cc)
            dd = Student(cc["id"], cc["name"], cc["sex"])
            # print(f'dd={dd}')
            print(f'学号:{dd.id},姓名:{dd.name},性别:{dd.sex}')
            sutdents.append({"id": dd.id, "name": dd.name, "sex": dd.sex})


StudentManagement.main(list)
StudentManagement.deleteStudent(sutdent)
StudentManagement.new_addn(sutdent)