Files
python-labs/TEMA9/task9.md
2025-12-19 10:04:17 +03:00

4.3 KiB

Общее контрольное задание по Теме 9

Лазарев Данил, А-01-23

Задание

Создайте и запишите в модуль класс, содержащий следующие компоненты:

  • конструктор, задающий четырем атрибутам (fio, otdel, dolzhnost, oklad), представляющим фамилии сотрудников, название отделов, названия должностей сотрудников и размеры их окладов, некоторые начальные значения;

  • метод для обеспечения операции повышения оклада сотрудника на заданное значение;

  • метод для обеспечения перевода сотрудника из одного отдела в другой;

  • метод для изменения должности сотрудника;

  • свойство, содержащее перечень (список) поощрений сотрудника.

Создайте 2 экземпляра класса, задайте им некоторые значения атрибутов и свойства. Отобразите эти значения. Попробуйте с этими экземплярами операции перевода из отдела в отдел, изменения должности и оклада, объявления благодарности.

Решение

Модуль Employee

class Employee:
    def __init__(self, fio = "", otdel="", dolzhnost="",oklad=0):
        self.fio=fio
        self.otdel=otdel
        self.dolzhnost=dolzhnost
        self.oklad=oklad
        self.__pooshreniya=[]
        self.pooshreniya = property(
            self.get_pooshreniya,
            self.set_pooshreniya
            )
    def change_oklad(self, diff):
        self.oklad += diff
    def change_otdel(self, new_otdel):
        self.otdel = new_otdel
    def change_dolzhnost(self, new_dolzhnost):
        self.dolzhnost = new_dolzhnost
    def get_pooshreniya(self):
        return list(self.__pooshreniya)
    def set_pooshreniya(self,pooshrenie):
        self.__pooshreniya.append(pooshrenie)
    def get_employee_info(self):
        print(f"""
    ФИО: {self.fio}
    Отдел: {self.otdel}
    Должность: {self.dolzhnost}
    Оклад: {self.oklad} руб.
    Поощрения: {self.__pooshreniya}
    """)

Реализация программы

import os
os.chdir("C:\\Users\\Dannyan\\OneDrive\\Рабочий стол\\python-labs\\TEMA9")
from Employee import Employee
E1 = Employee("Сидорова Е.Ю.","Кафедра управления и интеллектульных систем","Старший преподаватель",80000)
E2 = Employee("Вишняков С.В.","Дирекция ИВТИ","Директор института ИВТИ",200000)
E1.get_employee_info()

>>>
    ФИО: Сидорова Е.Ю.
    Отдел: Кафедра управления и интеллектульных систем
    Должность: Старший преподаватель
    Оклад: 80000 руб.
    Поощрения: []
    
E2.get_employee_info()

>>> 
    ФИО: Вишняков С.В.
    Отдел: Дирекция ИВТИ
    Должность: Директор института ИВТИ
    Оклад: 200000 руб.
    Поощрения: []
    
E1.change_oklad(10000)
E2.change_oklad(-20000)
E2.change_otdel("Дирекция ГПИ")
E2.change_dolzhnost("Заместитель директора ГПИ")
E1.set_pooshreniya("Премирование")
E2.set_pooshreniya("Награда за заслуги перед МЭИ")
E1.get_employee_info()

>>>
    ФИО: Сидорова Е.Ю.
    Отдел: Кафедра управления и интеллектульных систем
    Должность: Старший преподаватель
    Оклад: 90000 руб.
    Поощрения: ['Премирование']
    
E2.get_employee_info()

>>> 
    ФИО: Вишняков С.В.
    Отдел: Дирекция ГПИ
    Должность: Заместитель директора ГПИ
    Оклад: 180000 руб.
    Поощрения: ['Награда за заслуги перед МЭИ']