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

96 строки
4.9 KiB
Markdown

This file contains invisible Unicode characters!

This file contains invisible Unicode characters that may be processed differently from what appears below. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to reveal hidden characters.

# Общее контрольное задание по теме 9
Подольский Никита, А-01-23
## Задание
Создайте и запишите в модуль класс, содержащий следующие компоненты:
- конструктор, задающий четырем атрибутам (fio,otdel, dolzhnost,oklad), представляющим фамилии сотрудников, название отделов, названия должностей сотрудников и размеры их окладов,  некоторые начальные значения;
- метод для обеспечения операции повышения оклада сотрудника на заданное значение;
- метод для обеспечения перевода сотрудника из одного отдела в другой;
- метод для изменения должности сотрудника;
- свойство, содержащее перечень (список) поощрений сотрудника.
Создайте 2 экземпляра класса, задайте им некоторые значения атрибутов и свойства. Отобразите эти значения. Попробуйте с этими экземплярами операции перевода из отдела в отдел, изменения должности и оклада, объявления благодарности.
## Решение
``` python
class staff:
def __init__(self, fio, otdel, dolzhnost, oklad):
self.fio = fio
self.otdel = otdel
self.dolzhnost = dolzhnost
self.oklad = oklad
self._pooshrenia = [] # список поощрений (внутренний)
def salary_raise(self, summa):
if summa > 0:
self.oklad += summa
print(f"Оклад сотрудника {self.fio} увеличен на {summa}. Новый оклад: {self.oklad}")
else:
print("Сумма для повышения оклада должна быть больше нуля.")
def change_department(self, new_department):
print(f"Сотрудник {self.fio} переведен из отдела {self.otdel} в отдел {new_department}.")
self.otdel = new_department
def change_position(self, new_position):
print(f"Должность сотрудника {self.fio} изменена с {self.dolzhnost} на {new_position}.")
self.dolzhnost = new_position
#СВОЙСТВО
def get_pooshrenia(self):
return self._pooshrenia
pooshrenia = property(get_pooshrenia) #свойство со списком поощрений
def add_encouragement(self, tekst):
self._pooshrenia.append(tekst)
print(f"Сотрудник {self.fio} теперь имеет поощрение: {tekst}")
emp1 = staff("Сидорова Е.Ю.", "Кафедра Управления и информационных технологий",
"Старший преподаватель", 75000)
emp2 = staff("Иваненко К.А.", "Дирекция ИВТИ",
"Заместитель директора института", 200000)
print(f"{emp1.fio}, {emp1.otdel}, {emp1.dolzhnost}, оклад: {emp1.oklad}")
print(f"{emp2.fio}, {emp2.otdel}, {emp2.dolzhnost}, оклад: {emp2.oklad}")
emp1.salary_raise(20000)
emp2.change_department("Дирекция ГПИ")
emp1.change_position("Заведующий кафедрой")
emp2.add_encouragement("За перевыполнение плана")
emp1.add_encouragement("За сложные КМ")
print(f"Поощрения {emp1.fio}: {emp1.pooshrenia}")
print(f"Поощрения {emp2.fio}: {emp2.pooshrenia}")
Сидорова Е.Ю., Кафедра Управления и информационных технологий, Старший преподаватель, оклад: 75000
Иваненко К.А., Дирекция ИВТИ, Заместитель директора института, оклад: 200000
Оклад сотрудника Сидорова Е.Ю. увеличен на 20000. Новый оклад: 95000
Сотрудник Иваненко К.А. переведен из отдела Дирекция ИВТИ в отдел Дирекция ГПИ.
Должность сотрудника Сидорова Е.Ю. изменена с Старший преподаватель на Заведующий кафедрой.
Сотрудник Иваненко К.А. теперь имеет поощрение: За преданность делу
Сотрудник Сидорова Е.Ю. теперь имеет поощрение: За красивые глазки
Поощрения Сидорова Е.Ю.: ['За сложные КМ']
Поощрения Иваненко К.А.: ['За перевыпонение плана']
```