Содержание

Требования к CLI для курсовой работы весеннего семестра

Для возможности проведения защиты курсовой работы весеннего необходимо пройти предварительную проверку на moodle: ссылка на модуль

Базовые сведения про cli можно прочитать здесь: Требования к курсовым (весенний семестр)

Если сборка курсовой работы реализована через системы автоматизации, то программа с курсовой работы должна называться cw!

Оси координат и начало отсчёта

Началом оси координат является верхний левый угол. Ось X расположена по горизонтали и растёт вправо. Ось Y расположена по вертикали и растёт вниз

Обязательные флаги

Обработка ошибок

В случае ошибки и невозможности выполнить функцию по какой-либо причине, нужно вывести строку с ошибкой и завершить работу программы с кодом возврата из диапазона: [40-49]

Обработка ошибок при некорректных аргументах у флагов:

Необязательные дополнения к курсовой работе

Описанные в данной секции дополнения являются не обязательными, получить желаемую оценку можно без них.

GUI

Рядовые пользователи очень плохо умеют пользоваться терминалом, поэтому для их удобства зачастую реализуют графический интерфейс. В программе по обработке изображений такое напрашивается само собой (иначе убийца photoshop'а будет выглядеть не солидно). Подробнее про требования к GUI: Требования к курсовым (весенний семестр)

Документация

В любом хорошем проекте должна быть документация. Документация означает, что для каждой функции, структуры (и классов для C++) есть адекватное описание. Фразы в духе «Данная структура содержит данные для изображения» или «Функция обработки изображения» являются плохим описанием.

Документацию можно написать сразу в коде, обратите вниммание на Doxygen

Создание .so библиотеки

Зачастую код пишется не в формате отдельной программы, а в формате библиотеки, чтобы вашими наработками могли воспользоваться в другом проекте другие разработчики. Поэтому можно разделить курсовую на две части:

  1. Библиотека формата .so , которая содержит только функции для работы с изображениями: открытие и сохранение изображения, обработка изображений, …
  2. Главная часть, которая содержит в себе только main с CLI (и опционально GUI) обработкой и вызовом функций из разработанной библиотеки

ВАЖНО: Не нужно по умолчанию выполнять установку библиотеки в систему, сделайте для этого отдельную цель, например make install