Загрузка данных


class Robotnik:
    def __init__(self, name, age, salary=0):
        self.name = name
        self.age = age
        self.salary = salary
        self.project = None

    def assign_project(self):
        """Позволяет роботнику самостоятельно выбрать проект"""
        print(f"\n{self.name}, выберите проект для назначения:")
        projects = [
            "Разработка ИИ",
            "Оптимизация процессов",
            "Маркетинговая кампания",
            "Анализ данных",
            "Тестирование системы",
            "Дизайн интерфейса"
        ]

        for i, project in enumerate(projects, 1):
            print(f"{i}. {project}")

        while True:
            try:
                choice = int(input("Введите номер проекта (или 0 для отмены): "))
                if choice == 0:
                    print(f"{self.name} отменил назначение на проект")
                    return
                elif 1 <= choice <= len(projects):
                    self.project = projects[choice - 1]
                    print(f"{self.name} успешно назначен на проект '{self.project}'")
                    break
                else:
                    print("Неверный номер. Попробуйте снова.")
            except ValueError:
                print("Пожалуйста, введите число.")

    def get_info(self):
        project_info = self.project if self.project else "не назначен на проект"
        return (f"Имя: {self.name}, Возраст: {self.age}, "
                f"Зарплата: {self.salary} руб., Проект: {project_info}")



class Director(Robotnik):
    position = "Директор"

    def __init__(self, name, age):
        super().__init__(name, age, salary=150000)

    def get_info(self):
        base_info = super().get_info()
        return f"{base_info}, Должность: {self.position}"

class DeputyDirector(Robotnik):
    position = "Заместитель директора"

    def __init__(self, name, age):
        super().__init__(name, age, salary=120000)

    def get_info(self):
        base_info = super().get_info()
        return f"{base_info}, Должность: {self.position}"

class Manager(Robotnik):
    position = "Менеджер"

    def __init__(self, name, age):
        super().__init__(name, age, salary=90000)

    def get_info(self):
        base_info = super().get_info()
        return f"{base_info}, Должность: {self.position}"

class JuniorManager(Robotnik):
    position = "Младший менеджер"

    def __init__(self, name, age):
        super().__init__(name, age, salary=60000)

    def get_info(self):
        base_info = super().get_info()
        return f"{base_info}, Должность: {self.position}"

class Intern(Robotnik):
    position = "Стажёр"

    def __init__(self, name, age):
        super().__init__(name, age, salary=30000)

    def get_info(self):
        base_info = super().get_info()
        return f"{base_info}, Должность: {self.position}"

def main():
    # Создаём команду роботников
    team = [
        Director("Алексей", 45),
        DeputyDirector("Мария", 38),
        Manager("Иван", 32),
        JuniorManager("Елена", 25),
        Intern("Дмитрий", 22)
    ]

    print("ДОБРО ПОЖАЛОВАТЬ В СИСТЕМУ УПРАВЛЕНИЯ ПРОЕКТАМИ!")
    print("=" * 50)

    while True:
        print("\nВыберите действие:")
        print("1. Назначить работника на проект")
        print("2. Посмотреть информацию о команде")
        print("3. Выйти")

        choice = input("Введите номер действия: ")

        if choice == "1":
            # Показываем список работников
            print("\nВыберите работника для назначения на проект:")
            for i, member in enumerate(team, 1):
                print(f"{i}. {member.name} ({member.position})")

            try:
                member_choice = int(input("Введите номер работника: ")) - 1
                if 0 <= member_choice < len(team):
                    team[member_choice].assign_project()
                else:
                    print("Неверный номер работника.")
            except ValueError:
                print("Пожалуйста, введите число.")

        elif choice == "2":
            print("\n" + "="*50)
            print("ИНФОРМАЦИЯ О КОМАНДЕ:")
            print("="*50)
            for member in team:
                print(member.get_info())

        elif choice == "3":
            print("До свидания!")
            break

        else:
            print("Неверный выбор. Попробуйте снова.")

if __name__ == "__main__":
    main()