Для возможности проведения защиты курсовой работы весеннего необходимо пройти предварительную проверку на moodle: ссылка на модуль
Базовые сведения про cli можно прочитать здесь: Требования к курсовым (весенний семестр)
Если сборка курсовой работы реализована через системы автоматизации, то программа с курсовой работы должна называться cw!
Началом оси координат является верхний левый угол. Ось X расположена по горизонтали и растёт вправо. Ось Y расположена по вертикали и растёт вниз
Если в задании используется область, то вторая координата указывает на границу, которая не включается в область. Например, если заданы координаты 0.0 и 100.200, то рабочая область будет размером 100×200 (0 ≤ x < 100, 0 ≤ y < 200). Областью считается часть изображения, над которой необходимо провести какие-то действия, рисование линий и прямоугольников под определение области не попадает
–input, -i: Задаёт имя входного изображения. При необходимости (если требуется по заданию), флаг может принимать несколько аргументов. Если флаг отсутствует, то предполагается, что имя входного изображения передаётся последним аргументом–output, -o: Задаёт имя выходного изображения. При необходимости (если требуется по заданию), флаг может принимать несколько аргументов–info: Печатает информацию об изображении и завершает работу–help, -h: Выводит справку. ВАЖНО: первой строкой при запуске программы нужно выводить информацию о варианте курсовой работе и об авторе программы в строго определенном формате: Course work for option <V>, created by <Name> <Surname>. Где V – вариант курсовой и Имя и Фамилия, как указано в репозитории группы. Данное предложение должно быть строго первым предложением в выводе программы и является отдельной строкой (заканчивается знаком ‘\n’). Например: Course work for option 3.2, created by Ivan Ivanov.В случае ошибки и невозможности выполнить функцию по какой-либо причине, нужно вывести строку с ошибкой и завершить работу программы с кодом возврата из диапазона: [40-49]
Обработка ошибок при некорректных аргументах у флагов:
500.0.10), то необходимо остановить выполнение и завершить работу с ошибкой100×100 пикселей, начало отрезка 0.0, а конец отрезка 200.200. В таком случае должна быть нарисована диагональ. Если же начало отрезка было 150.130, то на изображении ничего не должно быть нарисовано, так как линия проходить за границами обрабатываемого изображенияАргументы 'best_arg' и 'another_best_arg' проигнорирован, так как флаг '–info' не принимает аргументовОписанные в данной секции дополнения являются не обязательными, получить желаемую оценку можно без них.
Рядовые пользователи очень плохо умеют пользоваться терминалом, поэтому для их удобства зачастую реализуют графический интерфейс. В программе по обработке изображений такое напрашивается само собой (иначе убийца photoshop'а будет выглядеть не солидно). Подробнее про требования к GUI: Требования к курсовым (весенний семестр)
В любом хорошем проекте должна быть документация. Документация означает, что для каждой функции, структуры (и классов для C++) есть адекватное описание. Фразы в духе «Данная структура содержит данные для изображения» или «Функция обработки изображения» являются плохим описанием.
Документацию можно написать сразу в коде, обратите вниммание на Doxygen
Зачастую код пишется не в формате отдельной программы, а в формате библиотеки, чтобы вашими наработками могли воспользоваться в другом проекте другие разработчики. Поэтому можно разделить курсовую на две части:
.so , которая содержит только функции для работы с изображениями: открытие и сохранение изображения, обработка изображений, …
ВАЖНО: Не нужно по умолчанию выполнять установку библиотеки в систему, сделайте для этого отдельную цель, например make install