/Ex12

Primary LanguageC++

Ex12 Проект TimedDoor (дверь с таймером)

Формулировка задачи

Необходимо разработать реализации для системы классов, моделирующих работу двери холодильника с таймером. Дверь должна находиться в закрытом состоянии. Если она открыта, то через заданное время объект двери должен генерировать исключение close the door!.

Классы проекта

Предлагается три основных класса:

  • TimedDoor - дверь с адаптером.
  • DoorTimeAdapter - адаптер двери.
  • Timer - устройство для отсчета времени.

Описание задачи

В этой задаче предполагается использовать ОДИН поток управления. В начале создается дверь и адаптер для электронного управления. При открытии двери, создается экземпляр таймера и ему передается адрес адаптера. Через заданный промежуток времени, таймер вызывает метод Timeout адаптера, который, в свою очередь вызывает DoorTimeOut двери. Последний генерирует (выбрасывает) исключение.

У двери также должен быть реализован метод throwState, который выбрасывает исключения the door is closed! и the door is opened! в зависимости от текущего состояния.

Структура проекта

  • include/TimedDoor.h - заголовочный файл.
  • src/TimedDoor.cpp - файл с реализацией методов классов.
  • src/main.cpp - домонстрационная программы для работы с классами.

Список участников/веток

  1. Малинин Дмитрий Дмитриевич 19 ПМИ-2 b60
  2. Бакланов Алексей Александрович 19 ПМИ-2 b61
  3. Баринов Даниил Сергеевич 19 ПМИ-1 b62
  4. Богомазов Михаил Васильевич 19 ПМИ-1 b63
  5. Бугров Лев Валерьевич 19 ПМИ-1 b64
  6. Бузанов Егор Андреевич 19 ПМИ-1 b65
  7. Варлачёв Валерий Максимович 19 ПМИ-1 b66
  8. Голованов Денис Максимович 19 ПМИ-1 b67
  9. Дробот Елизавета Денисовна 19 ПМИ-1 b68
  10. Жаравина Полина Дмитриевна 19 ПМИ-1 b69
  11. Зайцев Тимур Олегович 19 ПМИ-1 b70
  12. Кабанов Денис Сергеевич 19 ПМИ-1 b71
  13. Канев Владислав Олегович 19 ПМИ-1 b72
  14. Карцева Мария Дмитриевна 19 ПМИ-1 b73
  15. Касьянов Никита Юрьевич 19 ПМИ-1 b74
  16. Козлова Дарья Андреевна 19 ПМИ-1 b75
  17. Кузнецов Михаил Дмитриевич 19 ПМИ-1 b76
  18. Лавров Артём Романович 19 ПМИ-1 b77
  19. Матвеев Андрей Сергеевич 19 ПМИ-1 b78
  20. Машанова Карина Алексеевна 19 ПМИ-1 b79
  21. Наумов Никита Александрович 19 ПМИ-1 b80
  22. Нещеткин Глеб Максимович 19 ПМИ-1 b81
  23. Пасманик Ирина Дмитриевна 19 ПМИ-1 b82
  24. Рогозян Анастасия Тимофеевна 19 ПМИ-1 b83
  25. Соболев Данил Александрович 19 ПМИ-1 b84
  26. Софронов Валерий Александрович 19 ПМИ-1 b85
  27. Трутнев Алексей Игоревич 19 ПМИ-1 b86
  28. Тумаков Вадим Сергеевич 19 ПМИ-1 b87
  29. Фролова Ольга Михайловна 19 ПМИ-1 b88
  30. Шарибжанова Диана Рашидовна 19 ПМИ-1 b89
  31. Щеникова Анна Юрьевна 19 ПМИ-1 b90
  32. Андросов Вадим Дмитриевич 19 ПМИ-2 b91
  33. Бирина Елизавета Сергеевна 19 ПМИ-2 b92
  34. Булатов Дмитрий Александрович 19 ПМИ-2 b93
  35. Демашов Никита Александрович 19 ПМИ-2 b94
  36. Добряев Иван Александрович 19 ПМИ-2 b95
  37. Дрожжачих Евгений Валерьевич 19 ПМИ-2 b96
  38. Егорова Кристина Олеговна 19 ПМИ-2 b97
  39. Загоскин Владислав Андреевич 19 ПМИ-2 b98
  40. Зарубина Ирина Михайловна 19 ПМИ-2 b99
  41. Иванов Даниил Андреевич 19 ПМИ-2 b100
  42. Клыков Антон Романович 19 ПМИ-2 b101
  43. Королев Денис Витальевич 19 ПМИ-2 b102
  44. Краюшкина Екатерина Алексеевна 19 ПМИ-2 b103
  45. Назаров Вячеслав Андреевич 19 ПМИ-2 b104
  46. Оленев Дмитрий Сергеевич 19 ПМИ-2 b105
  47. Панина Полина Сергеевна 19 ПМИ-2 b106
  48. Прыгаев Денис Алексеевич 19 ПМИ-2 b107
  49. Рогов Андрей Дмитриевич 19 ПМИ-2 b108
  50. Симонова Арина Валерьевна 19 ПМИ-2 b109
  51. Созинов Кирилл Игоревич 19 ПМИ-2 b110
  52. Титова Нина Ивановна 19 ПМИ-2 b111
  53. Уртюков Илья Алексеевич 19 ПМИ-2 b112
  54. Хорев Егор Алексеевич 19 ПМИ-2 b113
  55. Шабаршин Леонид Георгиевич 19 ПМИ-2 b114

Алгоритм выполнения работы

Для выполнения работы необходимо:

  1. Выполнить fork репозитария в свой аккаунт.
  2. Выполнить клонирование репозитария из своего аккаунта к себе на локальную машину (git clone).
  3. Создать ветку git с индивидуальным номером (git branch имя_ветки).
  4. Сделать ветку активной (git checkout имя).
  5. Необходимо разместить как исходные файлы с решениями задач, поместив cpp файлы в src, а заголовочные - в include.
  6. Добавить файлы в хранилище (git add).
  7. Выполнить фиксацию изменений (git commit -m "комментарий").
  8. Отправить содержимое ветки в свой удаленный репозитарий (git push origin имя_ветки).
  9. Создать пул-запрос в репозитарий группы и ждать результата от GitHub Actions.