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

Предоплата всего

Подписываем
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Предоплата всего
Подписываем
1.1. Программа должна иметь осмысленное название (слово или словосочетание), не обязательно совпадающее с названием исполнимого файла, которое должно выводиться при запуске программы, а также должно присутствовать в комментарии в начале каждого файла программы.
1.2. Исходный код программы должен быть в каноническом виде:
1.2.1. Каждый файл программы должен начинаться с комментария, в котором должны быть указаны название и назначение программы и данного файла, автор и номер учебной группы.
1.2.2. Директивы препроцессора должны быть по возможности размещены в самом начале программы после необходимых комментариев.
1.2.3. Первой выполняемой функцией в исходном коде программы должна быть функция main().
1.2.4. Строки исходного текста не должны выходить за пределы экрана.
1.2.5. Каждый оператор программы должен находиться на отдельной строке.
1.2.6. Каждую фигурную скобку также следует располагать на отдельной строке. Слово while с постусловием следует располагать на одной строке с закрывающей фигурной скобкой.
1.2.7. Так как язык программирования "C" основан на лексике английского языка, текст программы должен соответствовать правилам пунктуации английского языка и правилам написания математических формул. Перед операторами "запятая" и "точка с запятой" не следует ставить пробел, так же, как в английском языке не ставится пробел перед знаками препинания. Перед открывающей круглой или квадратной скобкой оператора, условия, функции или массива, и внутри этих скобок (после открывающей и перед закрывающей) не следует ставить пробел, так как это принято в математике. Это не относится к фигурным скобкам составного оператора, структуры или тела функции.
1.2.8. Оператор "точка с запятой", ограничивающий пустой цикл, должен располагаться на отдельной строке с отступом.
1.2.9. Правильно использовать отступы. Текст программы должен начинаться с 1-го символа строки. Операторы внутри блока должны иметь больший обступ, чем предудущие и последующие части программы. Все операторы линейной части программы должны иметь слева одно и то же число пробелов. При определении функции, цикла или условного оператора открывающую и закрывающую фигурные скобки следует располагать на уровне первой буквы первого слова той синтаксической конструкции, к которой они относятся. В случае условного оператора или цикла с одним оператором последний следует располагать либо на одной строке с управляющим оператором, либо на следующей строке с отступом слева от него. Величина отступов разного уровня вложенности относительно предыдущего уровня должна быть одинакова во всех файлах данной программы. Рекомендуемый отступ 2-3 символа пробел.
1.2.10. Блок switch следует располагать следующим образом. Первый после метки case оператор следует располагать на одной строке с меткой. Последующие операторы следует располагать на отдельных строках на одном уровне с предыдущими. Метки case должны быть отсортированы по возрастанию или по смыслу. При наличии метки default ее следует располагать в конце оператора switch, после меток case. Все операторы блока switch должны быть выровнены слева. См. образец.
switch(c)
{
case BELL: VideoInt(); break;
case SPACE: return 0;
case BS: if(col > video.windowx1) col--;
break;
case FF: row += 24;
/* fall through */
case LF: row++;
break;
default: col = video.windowx1;
}
1.2.11. Для имен макросов не использовать строчные буквы, а для всех остальных идентификаторов не использовать только прописные буквы.
1.2.12. Программа должна быть снабжена необходимыми комментариями.
1.2.13. Имена идентификаторов должны быть осмысленные и отсортированы по смыслу, последовательности использования или по алфавиту.
1.2.14. В случае наличия пустых строк на неочевидном месте доказать необходимость их присутствия.
1.2.15. Каждый исходный файл программы должен оканчиваться на пустой строке.
1.2.16. Не должно быть лишних круглых и фигурных скобок.
1.3. Не применять оператор goto.
1.4. Не применять в графическом режиме функции вывода текста, предназначенные для текстового режима.
1.5. Вычисления одних и тех же значений не должны повторяться.
1.6. Значения любого типа, встречающиеся в программе более одного раза, должны быть оформлены в виде констант или макросов.
1.7. Все неизменяемые значения должны быть объявлены константами или оформлены в виде макросов.
1.8. Не включать в заголовочные файлы тела функций.
1.9. Не применять оператор "запятая" вместо оператора "точка с запятой".
1.10. Не применять макросы для замены групп операторов.
1.11. Не применять макросы без аргументов для замены выражений.
1.12. В случае применения директивы #define в теле функции, перед окончанием последней определяемый макрос следует вернуть в исходное состояние.
1.13. Если имеются идентификаторы, начинающиеся с символа подчеркивания, доказать необходимость использования таких имен.
1.14. Использовать библиотечные функции, макросы и типы данных везде, где возможно. Применение своих функций, макросов и типов данных вместо библиотечных допускается в следующих случаях: 1) студенту так сформулировано задание; 2) в библиотеке поддержки компилятора обнаружена ошибка (доказательство факта лежит на студенте); 3) код, написанный студентом, работает эффективнее, чем фирменный (доказательство факта лежит на студенте).
1.15. Из библиотечных функций использовать наиболее простые (соответственно, наиболее эффективные) для каждого конкретного случая.
1.16. В случае, если функция main возвращает нестандартное значение, доказать необходимость этого.
1.17. Файлы исходного кода программы должны иметь стандартное расширение *.с, а файлы заголовков – *.h. Применение расширения *.cpp для файлов исходного кода и *.hpp для заголовочных файлов допускается в случае, если программа написана на языке C++ по объектно-ориентированной технологии.
1.18. Компиляция должна быть без сообщений; все возможные сообщения компилятора должны быть размаскированы.
1.19. Комментарии исходного текста программы и сообщения, выдаваемые программой при работе, не должны содержать грамматических, стилистических и фактографических ошибок, и для них следует использовать только официальную компьютерную терминологию. Не допускается использование жаргонных и нецензурных выражений.
1.20. Программа должна иметь удобный и интуитивно понятный пользовательский интерфейс. В заставке должна быть информация о названии, назначении и авторе программы. При необходимости программа должна выдавать сообщения о необходимых действиях со стороны пользователя.
1.21. По окончании работы программы вся динамически выделяемая память должна быть освобождена, все открываемые файлы и графика закрыты, режим вывода символов должен быть приведен к стандартному: светло-серые символы на черном фоне для стандартного вывода и белые символы на черном фоне для консольного вывода.
1.22. Доказательство правильности работы программы лежит на студенте. Студент должен подготовить необходимые входные данные для всех режимов работы программы, в т.ч. для вырожденных случаев.
1.23. Неоптимальность алгоритма, замеченная преподавателем, должна быть исправлена.
1.24. Программа должна иметь защиту от неправильного ввода данных.
2.1. Определение каждой функции (в том числе функции main) и структуры данных должно занимать не более 20 строк (размер стандартной экранной страницы) исходного кода, включая комментарии и пустые строки, если таковые имеются. Исключение – линейная функция, состоящая из блока switch. Если лимит в 20 строк исходного кода необходимо превысить для существенного уменьшения количества глобальных переменных, количества аргументов функции или для оптимизации работы программы, то каждый такой случай подлежит обсуждению с преподавателем в индивидуальном порядке. Превышение установленного лимита количества строк исходного кода функции, даже аргументированное и даже сделанное с разрешения преподавателя, влечет за собой снижение оценки за сдаваемую программу.
2.2. Разрешается использовать оператор goto только для выхода из вложенных циклов только для перехода вперед на линейную часть программы.
2.3 Вспомогательные функции, которые по своему смыслу могут быть использованы только в том файле, где они определены, должны быть снабжены модификатором static.
2.4. Не применять в одной программе функции вывода на дисплей и ввода с клавиатуры одновременно стандартные и консольные (прототипы соответственно в stdio.h и conio.h).
2.5. Программа должна иметь минимум глобальных переменных. Обосновать необходимость применения каждой глобальной переменной, если таковые имеются.
2.6. Аргументы функций не должны перекрывать глобальные переменные, а локальные переменные не должны перекрывать аргументы функций и глобальные переменные.
2.7. Все файлы заголовков должны иметь защиту от множественного включения.
2.8. При наличии в программе отладочного исходного кода он должен быть оформлен в виде условной компиляции.
2.9. В заголовочные файлы следует включать рекурсивно другие заголовочные файлы только в том случае, если первые используют какие-либо конструкции последних. В этом случае каждая директива #include в заголовочном файле должна иметь защиту от множественного включения.
2.10. Сдаваемая версия программы должна быть откомпилирована с оптимизацией по скорости и/или размеру программы с удалением из объектного кода всей отладочной информации.
2.11. При необходимости заимствования части кода:
2.11.1. вопрос следует согласовать с преподавателем;
2.11.2. заимствованные части следует выделить комментариями, в которых должен быть указан автор и/или источник оригинала и внесенные изменения, если таковые имеются;
2.11.3. допускается заимствовать только вспомогательные вещи, не имеющие прямого отношения к сформулированному заданию;
2.11.4. основная (по объему и по смыслу) часть программы должна быть выполнена студентом;
2.11.5. заимствованный код должен быть приведен к настоящим требованиям и изучен досконально, т.к. студент отчитывается за всю программу;
2.11.6. заимствование чужого кода в 1-м семестре не допускается;
2.11.7. заимствование своего кода (из других своих программ) допускается без ограничений.
4