Для возможности проведения защиты курсовой работы весеннего необходимо пройти предварительную проверку на moodle: ссылка на модуль
Базовые сведения про cli можно прочитать здесь: Требования к курсовым (весенний семестр)
Если сборка курсовой работы реализована через системы автоматизации, то программа с курсовой работы должна называться cw
!
Началом оси координат является верхний левый угол. Ось X расположена по горизонтали и растёт вправо. Ось Y расположена по вертикали и растёт вниз
–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