Тема назначается руководителем курсовой работы и утверждается на заседании кафедры.
Перед студентом ставится задача разработать программу на языке С++ с целью решения конкретной задачи. Результатом решения является:
а) пояснительная записка, составленная с учетом требования стандартов ЕСПД;
б) исполняемый файл программы, прилагаемый к пояснительной записке на диске.
Разработанный алгоритм должен быть оформлен в виде блок-схемы, отвечающей принципам структурного программирования. Структурное программирование - методология разработки программного обеспечения, предложенная в 70-х года XX века Дейкстрой и разработанная и дополненная Виртом. В соответствии с данной методологией любая программа представляет собой структуру, построенную из трёх типов базовых конструкций:
последовательное исполнение — однократное выполнение операций в том порядке, в котором они записаны в тексте программы;
ветвление — однократное выполнение одной из двух или более операций, в зависимости от выполнения некоторого заданного условия;
цикл — многократное исполнение одной и той же операции до тех пор, пока выполняется некоторое заданное условие (условие продолжения цикла.
В программе базовые конструкции могут быть вложены друг в друга произвольным образом, но никаких других средств управления последовательностью выполнения операций не предусматривается. Повторяющиеся фрагменты программы (либо не повторяющиеся, но представляющие собой логически целостные вычислительные блоки) могут оформляться в виде так называемых подпрограмм (процедур или функций). В этом случае в тексте основной программы вместо помещённого в подпрограмму фрагмента вставляется инструкция вызова подпрограммы. При выполнении такой инструкции выполняется вызыванная подпрограмма, после чего исполнение программы продолжается со следующей за командой вызова подпрограммы инструкции.
Разработка программы ведётся пошагово, методом "сверху вниз". Сначала пишется текст основной программы, в котором вместо каждого связного логического фрагмента текста вставляется вызов подпрограммы, которая будет выполнять этот фрагмент. Вместо настоящих, работающих подпрограмм, в программу вставляются "затычки", которые ничего не делают. Полученная программа проверяется и отлаживается. После того, как программист убедится, что подпрограммы вызываются в правильной последовательности (то есть общая структура программы верна), подпрограммы-"затычки" последовательно заменяются на реально работающие, причём разработка каждой подпрограммы ведётся тем же методом, что и основной программы. Разработка заканчивается тогда, когда не останется ни одной "затычки", которая не была бы удалена. Такая последовательность гарантирует, что на каждом этапе разработки программист одновременно имеет дело с обозримым и понятным ему множеством фрагментов и может быть уверен, что общая структура всех более высоких уровней программы верна. При сопровождении и внесении изменений в программу выясняется, в какие именно процедуры нужно внести изменения, и они вносятся, не затрагивая непосредственно не связанные с ними части программы. Это позволяет гарантировать, что при внесении изменений и исправлении ошибок не выйдет из строя какая-то часть программы, находящаяся в данный момент вне зоны внимания программиста.
Используемые структуры данных должны быть представлены в виде схем данных. При программной реализации алгоритма должен использоваться структурный (функционально-модульный) подход. Все функции должны иметь строгую спецификацию. Разработанная программа должна быть протестирована, при этом следует уделить внимание подбору тестов и обоснованию их полноты.
При выполнении курсовой работы студент должен:
· разработать структуры данных и алгоритмы;
· реализовать функции и основную программу;
· разработать тесты и выполнить тестирование программы;
· оформить пояснительную записку и приложения.
Задание курсовой работы состоит из трех частей, приведенных ниже.