For C/Cpp Hw
Домашнее задание №1: ИЗ №1 До 19 марта, 09:00 (осталось 11 дней)Максимум 5 балловКритерии К РК №1 необходимо индивидуально решить ИЗ №1 по программированию на языке С в соответствии с назначенным вариантом, а также разбиться на команды, продумать идею семестровых проектов, разбить их на задачи и поделить их между участниками команды.
ИЗ1 посвящено приобретению навыков безопасной работы с памятью на языке C с использованием базовых структур данных и налаживания базовой инфраструктуры для автоматической проверки кода. В качестве результата ИЗ1 ожидается:
- грамотное разбиение проекта на файлы;
- использование безопасного стиля программирования - проверка возможных ошибок, корректное завершение программы в случае их возникновения и правильная работа с памятью;
- максимальное покрытие кода юнит-тестами;
- рабочий CI, включающий в себя автоматическую сборку проекта, статический и динамический анализ кода, прохождение линтеров и форматтеров, запуск юнит-тестов под valgrind и санитайзерами, и получение отчёта о покрытии кода тестами
- все автоматические проверки должны проходить на итоговой версии, которая проходит ревью Вариант #25 Создать структуру для хранения информации о посетителях ресторана: номере столика, имени, сумме счета. Составить с ее использованием программу вывода информации обо всех клиентах с группировкой по номерам столиков.
Требования к оформлению: Программа должна быть реализована на языке C и работать для произвольных наборов входных данных (в том числе и ошибочных), вводимых пользователем с клавиатуры. Должна быть выполнена грамотная декомпозиция на функции и файлы. Помимо самой программы необходимо: – разработать набор юнит-тестов, проверяющих корректную работу реализованных функций. Обеспечить максимальное покрытие исходного кода тестами; – оформить задачу в виде Merge Request отдельной ветки в основную ветку проекта. Внимание: в основной ветке проекта никакого кода быть не должно! – развернуть CI, в рамках которого автоматизировать сборку проекта, прохождение юнит-тестов под valgrind, генерацию отчёта о покрытии кода тестами, линтера и статического анализатора исходного кода; – после прохождения всех проверок необходимо отправить код на ревью своему преподавателю; – ревью - процесс итерационный. До наступления дедлайна можно проходить несколько итераций, улучшая свою оценку. Решения после дедлайна не принимаются;