/technopark_individual_task_1

Домашнее задание №1 по курсу Углубленное программирование на языке C/C++, Технопарк, VK Образование (mail.ru), 1 семестр

Домашнее задание №1: ИЗ №1

До 14 октября, 18:00 Максимум 5 баллов

К РК №1 необходимо индивидуально решить ИЗ №1 по программированию на языке С в соответствии с назначенным вариантом, а также разбиться на команды, продумать идею семестровых проектов, разбить их на задачи и поделить их между участниками команды.

ИЗ1 посвящено приобретению навыков безопасной работы с памятью на языке C с использованием базовых структур данных и налаживания базовой инфраструктуры для автоматической проверки кода. В качестве результата ИЗ1 ожидается:

  • грамотное разбиение проекта на файлы;
  • использование безопасного стиля программирования - проверка возможных ошибок, корректное завершение программы в случае их возникновения и правильная работа с памятью;
  • максимальное покрытие кода юнит-тестами;
  • рабочий CI, включающий в себя автоматическую сборку проекта, статический и динамический анализ кода, прохождение линтеров и форматтеров, запуск юнит-тестов под valgrind и санитайзерами, и получение отчёта о покрытии кода тестами
  • все автоматические проверки должны проходить на итоговой версии, которая проходит ревью

Вариант #25

Создать структуру для хранения информации о посетителях ресторана: номере столика, имени, сумме счета. Составить с ее использованием программу вывода информации обо всех клиентах с группировкой по номерам столиков.

Требования к оформлению:

Программа должна быть реализована на языке C и работать для произвольных наборов входных данных (в том числе и ошибочных), вводимых пользователем с клавиатуры. Должна быть выполнена грамотная декомпозиция на функции и файлы. Помимо самой программы необходимо:

  • разработать набор юнит-тестов, проверяющих корректную работу реализованных функций. Обеспечить максимальное покрытие исходного кода тестами;
  • оформить задачу в виде Merge Request отдельной ветки в основную ветку проекта. Внимание: в основной ветке проекта никакого кода быть не должно!
  • развернуть CI, в рамках которого автоматизировать сборку проекта, прохождение юнит-тестов под valgrind, генерацию отчёта о покрытии кода тестами, линтера и статического анализатора исходного кода;
  • после прохождения всех проверок необходимо отправить код на ревью своему преподавателю;
  • ревью - процесс итерационный. До наступления дедлайна можно проходить несколько итераций, улучшая свою оценку. Решения после дедлайна не принимаются.