Files
python-labs/TEMA9/task.md

4.7 KiB

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

Соловьёва Екатерина, А-01-23

Задание

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

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

Решение

class Employee:
    """Класс для работы с данными сотрудников"""
    
    def __init__(self, fio, otdel, dolzhnost, oklad):
        self.fio = fio            
        self.otdel = otdel       
        self.dolzhnost = dolzhnost  
        self.oklad = oklad       
        self.__pooshreniya = []   
        
    def povysit_oklad(self, summa_povysheniya):
        """
        Метод для повышения оклада сотрудника на заданное значение
        """
        if summa_povysheniya <= 0:
            raise ValueError("Сумма повышения должна быть положительной!")
        self.oklad += summa_povysheniya
        return self.oklad
    
    def perevesti_v_drugoi_otdel(self, novy_otdel):
        """Перевод сотрудника в другой отдел"""
        self.otdel = novy_otdel
        print(f"Сотрудник {self.fio} переведен в отдел: {novy_otdel}")

    def izmenit_dolzhnost(self, novaya_dolzhnost):
        """Метод изменения должности"""
        self.dolzhnost = novaya_dolzhnost

    def get_pooshreniya(self):
        """Получить список поощрений"""
        return self.__pooshreniya.copy()
    
    def dobavit_pooshrenie(self, text):
        """Добавить поощрение в список"""
        self.__pooshreniya.append(text)
    
    @property #вызывает метод, который возвращает копию текущего списка поощрений.
    def pooshreniya(self):
        """Свойство для получения списка поощрений"""
        return self.__pooshreniya.copy()

Вывод программы

emp1=Employee ("Обычайко Д.С.", "Кафедра Управления и информационных технологий", "Ассистент", 100000)
emp2=Employee ("Пронин А.С.", "Кафедра Управления и информационных технологий", "Ассистент", 100000)

print(f"{emp1.fio}, {emp1.otdel}, {emp1.dolzhnost}, оклад: {emp1.oklad}")
Обычайко Д.С., Кафедра Управления и информационных технологий, Ассистент, оклад: 100000
print(f"{emp2.fio}, {emp2.otdel}, {emp2.dolzhnost}, оклад: {emp2.oklad}")
Пронин А.С., Кафедра Управления и информационных технологий, Ассистент, оклад: 100000

emp2.perevesti_v_drugoi_otdel("Деканат")
Сотрудник Пронин А.С. переведен в отдел: Деканат

emp1.izmenit_dolzhnost("Старший преподаватель")
print(f"Новая должность {emp1.fio}: {emp1.dolzhnost}")
Новая должность Обычайко Д.С.: Старший преподаватель

novy_oklad1 = emp1.povysit_oklad(20000)
emp2.dobavit_pooshrenie("За публикацию научной статьи")
print(f"  Поощрения: {emp2.get_pooshreniya()}")
Поощрения: ['За публикацию научной статьи']
employee1.povysit_oklad(15000)
65000