Загрузка данных
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()