Для студентов МГТУ им. Н.Э.Баумана по предмету ИнформатикаКлассы. Планировщик встречКлассы. Планировщик встреч
2025-01-052025-01-05СтудИзба
Задача: Классы. Планировщик встреч
Описание
Вам поручено разработать систему планирования встреч для небольшой компании. Система должна быть простой в использовании и предоставлять функционал для добавления новых встреч, проверки доступности сотрудников и просмотра расписания. Вам необходимо реализовать два основных класса - Meeting и Employee:
Атрибуты и методы класса
Meeting
:name
: название встречиdate
: дата встречи (объект типа datetime.date).start_time
: начало встречи (объект типа datetime.time)duration
: длительность встречи в минутахend_time
: время окончания встречи (объект типа datetime.time). Данный атрибут должен быть свойством (property) и рассчитываться автоматически на основеstart_time
иduration
. (Время окончания встречи всегда в тот же день, что и время начала встречи.)participants
: список сотрудников (объектовEmployee
), участвующих в встрече (по порядку, начиная с первого сотрудника, которому была назначена встреча)get_participants()
: метод, возвращающий список имен участников встречи в виде списка строк
Атрибуты и методы класса
Employee
:name
: имя сотрудникаschedule
: список встреч (объектов Meeting) сотрудникаadd_meeting(meeting)
: метод, добавляющий встречу в календарь сотрудника, если она не пересекается с уже запланированными встречами у данного сотрудника. Метод возвращает True, если встреча добавлена в расписание сотрудника, и False в противном случае.get_schedule()
: данный метод должен возвращать список встреч сотрудника в виде списка строк, где каждая строка представляет информацию о встрече в формате:YYYY-MM-DD HH:MM - HH:MM: Название встречи
. Встречи должны быть отсортированы по возрастанию (по дате и времени начала встречи).
Пример использования
# Создаем сотрудников
employee1 = Employee("Борис Петров")
employee2 = Employee("Иван Иванов")
# Создаем встречу, указывая название, дату, начало и длительность встречи
meeting1 = Meeting("Встреча с клиентом", datetime.date(2024, 9, 10), datetime.time(10, 0), 60)
print(meeting1.name) # Выведет "Встреча с клиентом"
print(meeting1.date) # Выведет datetime.date(2024, 9, 10)
print(meeting1.start_time) # Выведет datetime.time(10, 0)
print(meeting1.duration) # Выведет 60
print(meeting1.participants) # Выведет [] (пустой список, так как пока нет участников)
# Время окончания встречи рассчитано автоматически на основе start_time и duration
print(meeting1.end_time) # Выведет datetime.time(11, 0)
# Создаем еще одну встречу
meeting2 = Meeting("Планерка", datetime.date(2024, 9, 11), datetime.time(14, 0), 30)
#Добавляем встречи в расписания сотрудников
employee1.add_meeting(meeting1)
employee2.add_meeting(meeting2)
print(employee1.get_schedule()) # Выведет ['2024-09-10 10:00 - 11:00: Встреча с клиентом']
print(employee2.get_schedule()) # Выведет ['2024-09-11 14:00 - 14:30: Планерка']
# Добавление второй встречи в расписание Бориса
employee1.add_meeting(meeting2)
print(employee1.get_schedule()) # Выведет ['2024-09-10 10:00 - 11:00: Встреча с клиентом', '2024-09-11 14:00 - 14:30: Планерка']
print(meeting2.get_participants()) # Выведет ['Борис Петров', 'Иван Иванов']
Характеристики решённой задачи
Предмет
Учебное заведение
Учебная пора
Программы
Просмотров
1
Качество
Идеальное компьютерное
Размер
2,23 Kb
Список файлов
pro-5.1.txt

Vladelo