Постановка задачи

Объем этого раздела ПЗ предполагается до 20 страниц. Сюда входят:

- собственно постановка задачи (название темы с пояснениями, наиболее общим описанием основных функций программы) и краткое описание предметной области.

Предметная область – это часть реального мира, данные о которой необходимо отразить в приложении. Предметная область определяется темой курсового проекта. Например, в качестве предметной области может быть выбрано математическое программирование, теория графов, алгоритмизация игр и головоломок и т. д.;

- назначение и функции программы, где дается словесная формулировка задачи, перечисляются все основные функции программы, область ее применения;

- математическая модель задачи. Здесь должна быть представлена математическая формулировка задачи, описание задачи с помощью формул, уравнений, неравенств и т.д.;

- выбор метода решения задачи. Описываются методы решения задачи. Производится выбор метода решения и его обоснование;

- информационная база задачи. Здесь должна быть обозначена входная информация, т.е. описана информация, необходимая для работы программы. Разрабатываются структура файлов, формы и способы ввода исходных данных. Для каждой формы описывается назначение всех ее компонентов, их свойств, обрабатываемых событий;

- выходная информация. Описываются формы для вывода информации, ее основные характеристики. Для решения конкретной задачи кроме входных и выходных данных, возможно, необходимы и другие виды информации, например, нормативно-справочная. Эту информацию также необходимо описать;

- система меню. Разрабатывается система меню, описывается назначение всех ее пунктов;

- система помощи. Разрабатывается и описывается система помощи. Желательно, чтобы помощь была контекстно-зависимой;

- контрольные примеры. Разрабатываются и описываются контрольные примеры, необходимые для тестирования и верификации разрабатываемой программы;

- алгоритм программы. Дается описание алгоритма головной программы и отдельных процедур и функций обычным языком, языком математики, с помощью схем и диаграмм, которые должны быть представлены в приложении. Данный раздел должен быть разработан так, чтобы по этой постановке задачи можно было разработать требуемую программу.

Большинство предлагаемых тем курсовых проектов обучающие программы или различные игры и головоломки. Какие функции должны быть реализованы, если темой проекта является обучающая программа по какому-либо методу или алгоритму вычислительной математики, математического программирования, дискретной математики и т.п.?

В первую очередь необходимо реализовать расчетный режим работы программы – на нем основываются обучающий, контролирующий режимы, режим самоконтроля. Расчетный режим может выполняться сразу полностью, а может и по шагам. В последнем случае на экран выводятся все промежуточные результаты. В любом случае все промежуточные и окончательные результаты с соответствующими пояснениями выводятся в Word или Excel. В обучающем режиме пользователь должен иметь возможность обратиться к теоретическому материалу, рассмотреть решение типовых задач, проверить себя, решив предлагаемую программой задачу. В случае затруднения, он может воспользоваться помощью или подсказкой. В режиме контроля пользователь отвечает на вопросы, задаваемые программой, выполняет требуемые действия, решает предлагаемую задачу по шагам, количество подсказок при этом ограничено. Режим самоконтроля отличается от контролирующего режима только тем, что в этом режиме пользователь сам вводит или выбирает пример для решения. Поскольку в программе реализован расчетный режим, то программа может проконтролировать каждый этап решения примера. В проекте должно быть достаточное количество подготовленных примеров.

Если в качестве темы проекта выбрана головоломка, то необходимо реализовать следующие функции: предоставление пользователю для решения головоломки разного уровня сложности, вывод задания для решения как на экран, так и на принтер. Желательно, чтобы пользователь, решая головоломку, имел возможность воспользоваться помощью или подсказкой; возможность пользователю ввести свое условие головоломки для ее решения или вывода на принтер; автоматическое решение головоломки, предлагаемой программой или введенной пользователем; генерирование условия головоломки требуемого уровня сложности.

Многие головоломки решаются с помощью определенного набора процедур, позволяющих на каждом цикле их применения найти минимум один правильный следующий ход. Часто эти процедуры используют известные комбинаторные алгоритмы и алгоритмы на графах. Выявление таких процедур, их реализация достаточно непростая алгоритмическая задача.

Для решения многих головоломок таких процедур не существует и тогда единственным способом авторешения являются алгоритмы с возвращением (backtracking). Реализация алгоритмов перебора с возвратом, по нашему мнению, является наиболее сложным в алгоритмизации решения задач. Но и нахождение авторешения чаще всего не является самым трудным в компьютерной реализации головоломки. Еще более сложным является генерирование головоломки вообще и требуемого уровня сложности в частности. Можно предложить следующий подход для определения сложности сгенерированной головоломки. Если головоломка может быть решена выполнением нескольких простых процедур, то уровень простой. Если для решения головоломки простых процедур недостаточно, но она решается, если добавить некоторые более сложные процедуры, то данный уровень более сложный. Если для решения головоломки необходимо использовать более сложные алгоритмы, в частности алгоритмы с возвращением, то сложность головоломки достаточно велика.

В качестве курсового проекта может быть предложено реализовать, пусть и в урезанном виде, какое-либо существующее приложение. Например, файловый менеджер, архиватор, текстовый или графический редакторы, программы, предназначенные для защиты информации, дефрагментации диска, определяющие или анализирующие характеристики оборудования компьютера и т.п. Для выполнения подобных проектов учащиеся должны хорошо знать возможности устройств компьютера, систему прерываний и т.п. Для реализации отдельных функций таких программ могут потребоваться вставки на языке низкого уровня, например, Ассемблера. Такие темы можно предлагать только учащимся, которые действительно хорошо знакомы с этими вопросами.

Иногда в качестве тем проектов предлагаются задания, связанные с созданием и ведением различных баз данных, созданием автоматизированных рабочих мест и т.п. Мы не рекомендуем подобные темы, так как учащиеся чаще всего не готовы в полной мере к их выполнению. На старших курсах они проходят предмет «Системы управления базами данных», в котором всесторонне изучают вопросы, связанные с проектированием баз данных. Однако если преподаватель считает, что учащийся сможет справиться с таким заданием, то и такие темы могут иметь место в курсовом проектировании по предмету «Основы алгоритмизации и программирования». В разделе «Постановка задачи» особое место нужно уделить проектированию таблиц базы данных, приведению их к требуемым нормальным формам, их индексированию, организации связей, поддержке целостности данных, контролю вводимой и обрабатываемой информации, защите ее от несанкционированного использования и т.д.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: