This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
courses:programming:rules_extra_kurs [2018/02/26 12:41] pro100kot [Варианты реализации] |
courses:programming:rules_extra_kurs [2024/03/03 09:17] sergey_tinyakov [CLI (Command Line Interface)] |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== Требования к усложненным курсовым ====== | + | ====== Требования к курсовым (весенний семестр) ====== |
=====CLI (Command Line Interface)===== | =====CLI (Command Line Interface)===== | ||
Line 6: | Line 6: | ||
* Обязательная обработка всех возможных исключительных ситуаций (даже бьющийся в агонии по клавиатуре пользователь не должен “уронить” вашу программу неверными аргументами) | * Обязательная обработка всех возможных исключительных ситуаций (даже бьющийся в агонии по клавиатуре пользователь не должен “уронить” вашу программу неверными аргументами) | ||
* Для всех(для которых это имеет смысл) ключей должны быть как полные так и сокращенные версии(-h, --help) | * Для всех(для которых это имеет смысл) ключей должны быть как полные так и сокращенные версии(-h, --help) | ||
- | * По-умолчанию последним аргументов утилите должно передаваться имя bmp файла, в который и будут записаны изменения, однако это можно переопределить соответствующими ключами, как и имя выходного файла. | + | * По-умолчанию последним аргументом утилите должно передаваться имя входного bmp/png файла. Имя выходного файла по умолчанию должно быть ''out.bmp'' (''out.png'' для png), однако это должно быть возможным переопределить соответствующими ключом ''-o'', ''--output '' |
- | * Утилита должна иметь функцию печати подробной информации о bmp-файле | + | * Утилита должна иметь функцию печати подробной информации о bmp\png-файле, ключ ''--info'' |
- | * В случае, если программой будут поддерживаться не все версии bmp-файлов, программа должна выводить об этом внятное сообщение, а не крашиться. | + | * В случае, если программой будут поддерживаться не все версии bmp/png-файлов, программа должна выводить об этом внятное сообщение, а не крашиться. |
* Для каждого инструмента должен быть соответствующий ключ и ключи для его конфигурирования. Например, рисование прямоугольника может выглядеть как-то так: | * Для каждого инструмента должен быть соответствующий ключ и ключи для его конфигурирования. Например, рисование прямоугольника может выглядеть как-то так: | ||
<code> | <code> | ||
Line 41: | Line 41: | ||
* Заголовки изображения должны быть представлены в виде отдельных структур для каждого заголовка, если их несколько. | * Заголовки изображения должны быть представлены в виде отдельных структур для каждого заголовка, если их несколько. | ||
* Все операции из задания должны быть реализованы в виде отдельных public методов и реализованы должны быть самостоятельно (нельзя использовать стандартные средства, который сами все нарисуют) | * Все операции из задания должны быть реализованы в виде отдельных public методов и реализованы должны быть самостоятельно (нельзя использовать стандартные средства, который сами все нарисуют) | ||
+ | * В заданиях с форматом PNG разрешается использовать стороннюю библиотеку для сжатия изображения, например, libpng. Подробнее: https://github.com/moevm/pr1-examples/tree/master/libpng |