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