4.1 KiB
Общее контрольное задание по Теме 9
Таболин Иван, А-01-23
Задание
Создайте и запишите в модуль класс, содержащий следующие компоненты: - конструктор, задающий четырем атрибутам (fio, otdel, dolzhnost, oklad), представляющим фамиилии сотрудников, название отделов, названия должностей сотрудников и размеры их окладов, некоторые начальные значения; - метод для обеспечения операции повышения оклада сотрудника на заданное значение; - метод для обеспечения перевода сотрудника из одного отдела в другой; - метод для изменения должности сотрудника; - свойство, содержащее перечень (список) поощрений сотрудника. Создайте 2 экземпляра класса, задайте им некоторые значения атрибутов и свойства. Отобразите эти значения. Попробуйте с этими экземплярами операции перевода из отдела в отдел, изменения должности и оклада, объявления благодарности.
Решение
class Workers:
def __init__(self,fio='',otdel='',dolznost='',oklad=0):
self.fio=fio
self.otdel=otdel
self.dolznost=dolznost
self.oklad=oklad
self.__poos=[]
def pov_oklad(self,uvel):
self.oklad+=uvel
print('Сотрудник', self.fio, 'теперь имеет оклад', self.oklad)
return self.oklad
def perevod(self,new_otdel):
self.otdel=new_otdel
print('Сотрудник', self.fio, 'переведен в отдел', self.otdel)
return self.otdel
def new_dolznost(self,new_dolzn):
self.dolznost=new_dolzn
print('Сотрудник', self.fio, 'переведен на должность', self.dolznost)
return self.dolznost
@property
def view_poos(self):
print('Поощрения сотрудника', self.fio)
print(self.__poos)
return self.__poos
def add_poos(self, new_poos):
self.__poos.append(new_poos)
Тестирование
worker1=Workers('TabolinIA','IVTI','bakalavr_3',2400)
worker2=Workers('BerezhkovDA','IVTI','bakalavr_3',2400)
print('ФИО:', worker1.fio,'\n', 'Должность:',worker1.dolznost,'\n', 'Институт:', worker1.otdel,'\n', 'Оклад (стипендия):', worker1.oklad)
ФИО: TabolinIA
Должность: bakalavr_3
Институт: IVTI
Оклад (стипендия): 2400
worker1.new_dolznost('bakalavr_4')
Сотрудник TabolinIA переведен на должность bakalavr_4
'bakalavr_4'
print('ФИО:', worker1.fio,'\n', 'Должность:',worker1.dolznost,'\n', 'Институт:', worker1.otdel,'\n', 'Оклад (стипендия):', worker1.oklad)
ФИО: TabolinIA
Должность: bakalavr_4
Институт: IVTI
Оклад (стипендия): 2400
worker2.perevod('GPI')
Сотрудник BerezhkovDA переведен в отдел GPI
'GPI'
worker2.pov_oklad(worker2.oklad*2)
Сотрудник BerezhkovDA теперь имеет оклад 7200
7200
print('ФИО:', worker2.fio,'\n', 'Должность:',worker2.dolznost,'\n', 'Институт:', worker2.otdel,'\n', 'Оклад (стипендия):', worker2.oklad)
ФИО: BerezhkovDA
Должность: bakalavr_3
Институт: GPI
Оклад (стипендия): 7200
worker1.add_poos('Благодарность 08.12.2025')
worker1.view_poos
Поощрения сотрудника TabolinIA
['Благодарность 08.12.2025']