|
|
# Общее контрольное задание по теме 9
|
|
|
## Бушманов А.С. А-01-23
|
|
|
## Задание:
|
|
|
Создайте и запишите в модуль класс, содержащий следующие компоненты:
|
|
|
|
|
|
- конструктор, задающий четырем атрибутам (fio,otdel,dolzhnost,oklad), представляющим фамилии сотрудников, название отделов, названия должностей сотрудников и размеры их окладов, некоторые начальные значения;
|
|
|
- метод для обеспечения операции повышения оклада сотрудника на заданное значение;
|
|
|
- метод для обеспечения перевода сотрудника из одного отдела в другой;
|
|
|
- метод для изменения должности сотрудника;
|
|
|
- свойство, содержащее перечень (список) поощрений сотрудника.
|
|
|
Создайте 2 экземпляра класса, задайте им некоторые значения атрибутов и свойства. Отобразите эти значения. Попробуйте с этими экземплярами операции перевода из отдела в отдел, изменения должности и оклада, объявления благодарности.
|
|
|
|
|
|
|
|
|
## Решение:
|
|
|
```python
|
|
|
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)
|
|
|
```
|
|
|
## Ответ:
|
|
|
```python
|
|
|
>>> 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
|
|
|
``` |