Files
python-labs/TEMA9/task.md
2025-12-14 18:22:42 +03:00

3.6 KiB

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

Киреев Юрий А-02-23

Задание

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

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

Решение

Модуль OKZ:

class SOTRUDNIKI:
    def __init__ (self, fio="", otdel="", dolzhnost="", oklad=1):
        self.fio=fio
        self.otdel=otdel
        self.dolzhnost=dolzhnost
        self.oklad=oklad
        self.__reward=[]
    def oklad_increase (self, znach):
        self.oklad += znach
    def perevod (self, new_otdel):
        self.otdel = new_otdel
    def dolzhnost_change(self, new_dolzhnost):
        self.dolzhnost = new_dolzhnost
    def get_reward(self):
        return list(self.__reward)
    def set_reward(self,reward):
        self.__reward.append(reward)
    def __str__(self):
        return (f"Сотрудник: {self.fio}\n"
                f"Отдел: {self.otdel}\n"
                f"Должность: {self.dolzhnost}\n"
                f"Оклад: {self.oklad}\n"
                f"Поощрения: {self.__reward}")
    reward = property(get_reward, set_reward)

Проверка модуля:

>>> import OKZ
>>> emp1 = OKZ.SOTRUDNIKI("Киреев Ю.П", "CЭО Сила тока", "Командир", -1000)
>>> emp2 = OKZ.SOTRUDNIKI("Калякин П.А", "СЭО Сила тока", "Комиссар", 0)
>>> print(emp1)
Сотрудник: Киреев Ю.П
Отдел: CЭО Сила тока
Должность: Командир
Оклад: -1000
Поощрения: []
>>> print(emp2)
Сотрудник: Калякин П.А
Отдел: СЭО Сила тока
Должность: Комиссар
Оклад: 0
Поощрения: []
>>> emp1.perevod ("СЭО База")
>>> emp2.oklad_increase(5000)
>>> emp1.dolzhnost_change("Кандидат")
>>> emp2.set_reward("Значок лучшего бойца")
>>> emp1.set_reward("Пачка кириешек")
>>> print(emp1)
Сотрудник: Киреев Ю.П
Отдел: СЭО База
Должность: Кандидат
Оклад: -1000
Поощрения: ['Пачка кириешек']
>>> print(emp2)
Сотрудник: Калякин П.А
Отдел: СЭО Сила тока
Должность: Комиссар
Оклад: 5000
Поощрения: ['Значок лучшего бойца']