From 4522dd5962bcb5fd6867414cd9dc12ff8f371444 Mon Sep 17 00:00:00 2001 From: KuzmenkoEA Date: Sat, 13 Dec 2025 19:07:53 +0000 Subject: [PATCH] =?UTF-8?q?=D0=BE=D0=BA=D0=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- TEMA9/task.md | 140 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 140 insertions(+) create mode 100644 TEMA9/task.md diff --git a/TEMA9/task.md b/TEMA9/task.md new file mode 100644 index 0000000..7b210d8 --- /dev/null +++ b/TEMA9/task.md @@ -0,0 +1,140 @@ +## Общее контрольное задание по Теме 9 + +Кузьменко Елена, А-02-23 + +## Задание + + Создайте и запишите в модуль класс, содержащий следующие компоненты: + - конструктор, задающий четырем атрибутам (fio, otdel, dolzhnost, oklad), представляющим фамилии сотрудников, название отделов, названия должностей сотрудников и размеры их окладов, некоторые начальные значения; + + - метод для обеспечения операции повышения оклада сотрудника на заданное значение; + + - метод для обеспечения перевода сотрудника из одного отдела в другой; + + - метод для изменения должности сотрудника; + + - свойство, содержащее перечень (список) поощрений сотрудника. + + Создайте 2 экземпляра класса, задайте им некоторые значения атрибутов и свойства. Отобразите эти значения. Попробуйте с этими экземплярами операции перевода из отдела в отдел, изменения должности и оклада, объявления благодарности. + +## Решение + +### Модуль task_mod.py представляет из себя: + +#### 1) Конструктор, задающий атрибутам начальные значения. + +```py +# Модуль task_mod.py +class Rabotnik: +def __init__(self, fio, otdel, dolzhnost, oklad): +self.fio = fio +self.otdel = otdel +self.dolzhnost = dolzhnost +self.oklad = oklad +self.__pooshreniya = [] # приватный атрибут для хранения поощрений +``` + +#### 2) Метод для повышения оклада. + +```py +def povysit_oklad(self, summa): + if summa > 0: + self.oklad += summa + return f"Оклад повышен на {summa}" + return "Не повышен" +``` + +#### 3) Метод для перевода между отделами. + +```py +def perevod_v_otdel(self, noviy_otdel): + self.otdel = noviy_otdel +``` + +#### 4) Метод для изменения должности. + +```py +def izm_dolzhnost(self, new_dolzhnost): + self.dolzhnost = new_dolzhnost +``` + +#### 5) Свойство, содержащее перечень поощрений сотрудника. + +```py +def chten_pooshreniy(self): + return self.__pooshreniya + +def zapis_pooshreniy(self, pooshrenie): + self.__pooshreniya.append(pooshrenie) + +def udalenie_pooshreniy(self): + self.__pooshreniya.clear() + +pooshreniya = property(chten_pooshreniy, zapis_pooshreniy, udalenie_pooshreniy) +``` + +#### 6) Отображение(дополнительный метод) + +```py +def __str__(self): # автоматически вызывается при print() + poosh = ', '.join(self.pooshreniya) if self.pooshreniya else 'нет' + return f"{self.fio}, {self.dolzhnost}, {self.otdel}, оклад: {self.oklad}, поощрения: {poosh}" +``` + +### Проверка + +#### 1)Создание двух экземпляров и отображение значений: + +```py +>>> import task_mod +>>> from task_mod import Rabotnik +>>> z1 = Rabotnik("Иванов И.И.", "IT", "Программист", 170000) +>>> z2 = Rabotnik("Петров П.П.", "Бухгалтерия", "Бухгалтер", 155000) +>>> print(z1) +Иванов И.И., Программист, IT, оклад: 170000, поощрения: нет +>>> print(z2) +Петров П.П., Бухгалтер, Бухгалтерия, оклад: 155000, поощрения: нет +``` +### 2)Операции перевода из отдела в отдел: + +```py +>>> z1.perevod_v_otdel("Разработка программного обеспечения") +>>> z2.perevod_v_otdel("Финансовый отдел") +>>> print(z1) +Иванов И.И., Программист, Разработка программного обеспечения, оклад: 170000, поощрения: нет +>>> print(z2) +Петров П.П., Бухгалтер, Финансовый отдел, оклад: 155000, поощрения: нет +``` + +#### 3) Изменение должности и оклада: + +```py +>>> z1.izm_dolzhnost("Старший программист") +>>> z2.izm_dolzhnost("Главный бухгалтер") +>>> print(z1.povysit_oklad(15000)) +Оклад повышен на 15000 +>>> print(z2.povysit_oklad(30000)) +Оклад повышен на 30000 +>>> print(z1) +Иванов И.И., Старший программист, Разработка программного обеспечения, оклад: 185000, поощрения: нет +>>> print(z2) +Петров П.П., Главный бухгалтер, Финансовый отдел, оклад: 185000, поощрения: нет +``` + +#### 4) Объявление благодарности: + +```py +>>> z1.zapis_pooshreniy("Благодарность за успешный проект") +>>> z1.zapis_pooshreniy("Премия") +>>> z2.zapis_pooshreniy("Грамота") +>>> print(f"{z1.pooshreniya}") # чтение через свойство +['Благодарность за успешный проект', 'Премия'] +>>> print(f"{z2.chten_pooshreniy()}") # чтение через метод +['Грамота'] +>>> print(z2) +Петров П.П., Главный бухгалтер, Финансовый отдел, оклад: 185000, поощрения: Грамота +>>> print(z2) +Петров П.П., Главный бухгалтер, Финансовый отдел, оклад: 185000, поощрения: Грамота +>>> z1.udalenie_pooshreniy() # удаление поощрений +>>> print(z1) +```