Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

4.3 KiB

Общее контрольное задание по теме 9

Бушманов А.С. А-01-23

Задание:

Создайте и запишите в модуль класс, содержащий следующие компоненты:

  • конструктор, задающий четырем атрибутам (fio,otdel,dolzhnost,oklad), представляющим фамилии сотрудников, название отделов, названия должностей сотрудников и размеры их окладов,  некоторые начальные значения;
  • метод для обеспечения операции повышения оклада сотрудника на заданное значение;
  • метод для обеспечения перевода сотрудника из одного отдела в другой;
  • метод для изменения должности сотрудника;
  • свойство, содержащее перечень (список) поощрений сотрудника. Создайте 2 экземпляра класса, задайте им некоторые значения атрибутов и свойства. Отобразите эти значения. Попробуйте с этими экземплярами операции перевода из отдела в отдел, изменения должности и оклада, объявления благодарности.

Решение:

class Employee:
    def __init__(self, fio="", otdel="", dolzhnost="", oklad=0):
        self.fio = fio
        self.otdel = otdel
        self.dolzhnost = dolzhnost
        self.oklad = oklad
        self._pooshreniya = []   # список поощрений

    def info(self):
        print(f"{self.fio}, {self.otdel}, {self.dolzhnost}, оклад: {self.oklad}")

    def povyshenie_oklada(self, summa):
        self.oklad += summa

    def perevod(self, new_otdel):
        self.otdel = new_otdel

    def smena_dolzhnosti(self, new_dolzhnost):
        self.dolzhnost = new_dolzhnost

    # property: только чтение списка поощрений
    @property
    def pooshreniya(self):
        return self._pooshreniya

    # добавить поощрение
    def add_pooshrenie(self, text):
        self._pooshreniya.append(text)

    # удалить поощрение
    def del_pooshrenie(self, text):
        if text in self._pooshreniya:
            self._pooshreniya.remove(text)

Ответ:

>>> emp_1 = Employee("Обычайко Д.С.", "Кафедра Управления и информационных технологий", "Ассистент", 100000)
>>> emp_2 = Employee("Бобряков А.В.", "Кафедра Управления и ИТ", "Заведующий кафедрой", 1500000)
>>> emp_1.info()
Обычайко Д.С., Кафедра Управления и информационных технологий, Ассистент, оклад: 100000
>>> emp_2.info()
Бобряков А.В., Кафедра Управления и ИТ, Заведующий кафедрой, оклад: 1500000
>>> emp_1.povyshenie_oklada(15000)
>>> emp_1.add_pooshrenie("Премия за научную работу")
>>> emp_2.smena_dolzhnosti("Декан факультета")
>>> emp_2.perevod("Деканат")
>>> emp_2.add_pooshrenie("Надбавка за руководство")
>>> print("Поощрения", emp_1.fio, ":", emp_1.pooshreniya)
Поощрения Обычайко Д.С. : ['Премия за научную работу']
>>> print("Поощрения", emp_2.fio, ":", emp_2.pooshreniya)
Поощрения Бобряков А.В. : ['Надбавка за руководство']
>>> emp_1.del_pooshrenie("Премия за научную работу")
>>> print("После удаления поощрения у", emp_1.fio, ":", emp_1.pooshreniya)
После удаления поощрения у Обычайко Д.С. : []
>>> emp_1.info()
Обычайко Д.С., Кафедра Управления и информационных технологий, Ассистент, оклад: 115000
>>> emp_2.info()
Бобряков А.В., Деканат, Декан факультета, оклад: 1500000