Программа построения минимального остовного дерева

Методология и технология разработки, жизненный цикл прикладной программы. Алгоритм нахождения минимального остовного дерева в графе, его реализация в Borland Developer Studio в виде многоуровневого win32-приложения Delphi. Приемы тестирования программы.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 04.06.2013
Размер файла 1,2 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Содержание

Введение

1. Общая часть

1.1 Классификация программных средств

1.2 Жизненный цикл прикладной программы

1.3 Методология и технология разработки ПП

1.4 Тестирование программных средств

1.5 Описание прикладной задачи

2. Специальная часть

2.1 Расчет математической модели

2.2 Описание программы

2.2.1 О программе

2.2.2 Входные и выходные данные

2.2.3 Алгоритм работы программы

2.3 Тестирование программы

2.4 Руководство пользователю

Заключение

Введение

Возможности современного ПК столь велики, что все большее число людей находят ему применение в своей работе, учебе, быту. Важнейшим качеством современного компьютера является его "дружественность" по отношению к пользователю. Общение человека с компьютером стало простым, наглядным, понятным. Компьютер сам подсказывает пользователю, что нужно делать в той или иной ситуации, помогает выходить из затруднительных положений. Это возможно благодаря программному обеспечению компьютера.

Снова воспользуемся аналогией между компьютером и человеком. Новорожденный человек ничего не знает и не умеет. Знания и умения он приобретает в процессе развития, обучения, накапливая информацию в своей памяти. Компьютер, который собрали на заводе из микросхем, проводов, плат и прочего, подобен новорожденному человеку. Можно сказать, что загрузка в память компьютера программного обеспечения аналогична процессу обучения ребенка. Создается программное обеспечение программистами.

Вся совокупность программ, хранящихся на всех устройствах долговременной памяти компьютера, составляет его программное обеспечение (ПО).

Программное обеспечение компьютера постоянно пополняется, развивается, совершенствуется. Стоимость установленных программ на современном ПК зачастую превышает стоимость его технических устройств. Разработка современного ПО требует очень высокой квалификации от программистов. Первый объектно-ориентированный язык программирования Simula 67 был разработан в конце 60-х годов в Норвегии. Авторы этого языка очень точно угадали перспективы развития программирования: их язык намного опередил свое время.

Однако современники (программисты 60-х годов) оказались не готовы воспринять ценности языка Simula 67, и он не выдержал конкуренции с другими языками программирования (прежде всего, с языком Fortran). Прохладному отношению к языку Simula 67 способствовало и то обстоятельство, что он был реализован как интерпретируемый (а не компилируемый) язык, что было совершенно неприемлемым в 60-е годы, так как интерпретация связана со снижением эффективности (скорости выполнения) программ. Но достоинства языка Simula 67 были замечены некоторыми программистами, и в 70-е годы было разработано большое число экспериментальных объектно-ориентированных языков программирования: например, языки CLU, Alphard, Concurrent Pascal и др. Появление Delphi не могло пройти незамеченным среди многочисленных пользователей компьютера. Delphi - чрезвычайно быстро развивающаяся система. Первая версия - Delphi 1. 0 была выпущена в феврале 1995 г. А затем новые версии выпускались ежегодно. Прикладным называется ПО, предназначенное для решения определенной целевой задачи из проблемной области. Такие программы еще называют приложениями. Различают два основных вида прикладного ПО:

- общего назначения;

- специальное.

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

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

К ПО общего назначения или типовому прикладному ПО относят программы, предназначенные для любых пользователей ПК независимо от области их профессиональных интересов. Это следующие программы:

Текстовые процессоры;

- табличные процессоры;

- системы иллюстративной и деловой графики (графические

процессоры);

- системы управления базами данных;

- экспертные системы;

- программы математических расчетов, моделирования и анализа

экспериментальных данных.

В моей курсовой работе будет создана программа использующая математические расчеты - построение минимального остовного дерева.

1. Общая часть

1.1 Классификация программных средств

ЭВМ является исполнителем программ.

Программное обеспечение (ПО) - это совокупность всех программ и соответствующей документации, обеспечивающая использование ЭВМ в интересах каждого ее пользователя.

Различают системное и прикладное ПО. Схематически программное обеспечение можно представить так:

Схема 1- Программное обеспечение

Системное ПО - это совокупность программ для обеспечения работы компьютера. Системное ПО подразделяется на базовое и сервисное. Системные программы предназначены для управления работой вычислительной системы, выполняют различные вспомогательные функции (копирования, выдачи справок, тестирования, форматирования и т. д).

Базовое ПО включает в себя:

- операционные системы;

- оболочки;

- сетевые операционные системы.

Сервисное ПО включает в себя программы (утилиты):

- диагностики;

- антивирусные;

- обслуживания носителей;

- архивирования;

- обслуживания сети.

Прикладное ПО - это комплекс программ для решения задач определённого класса конкретной предметной области. Прикладное ПО работает только при наличии системного ПО.

Прикладные программы называют приложениями. Они включает в себя:

- текстовые процессоры;

- табличные процессоры;

- базы данных;

- интегрированные пакеты;

- системы иллюстративной и деловой графики (графические

процессоры);

- экспертные системы;

- обучающие программы;

Особую группу составляют системы программирования (инструментальные системы), которые являются частью системного ПО, но носят прикладной характер. Системы программирования - это совокупность программ для разработки, отладки и внедрения новых программных продуктов. Системы программирования обычно содержат:

- трансляторы;

- среду разработки программ;

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

- отладчики;

- редакторы связей и др.

1.2 Жизненный цикл прикладной программы

алгоритм граф borland delphi

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

В свою очередь фаза разработки делится на 4 под фазы:

1. Анализ задачи.

2. Проектирование.

3. Кодирование.

4. Тестирование.

Каждый период заканчивается своей документацией.

1. техническое задание;

2. эскизный, технический проекты, пояснительная записка;

3. распечатка программы и статическое тестирование;

4. сборка программы, программа тестирования, результаты тестирования.

Разработка ПО может вестись с использованием лавинообразной (Схема 2) или итеративной (Схема 3) моделей разработки. Лавинообразная модель (модель "водопада") может быть использована для разработки ПО небольшого размера (до 10000 операторов исходного языка) с хорошо определенной алгоритмической базой.

Схема 2-Лавинообразная

Схема 3- Итеративная

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

Планирование

- Реализация;

- Проверка;

- Оценка.

Преимущества итеративного подхода:

снижение воздействия серьёзных рисков на ранних стадиях проекта, что ведет к минимизации затрат на их устранение;

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

акцент усилий на наиболее важные и критичные направления проекта;

непрерывное итеративное тестирование, позволяющее оценить успешность всего проекта в целом;

раннее обнаружение конфликтов между требованиями, моделями и реализацией проекта;

более равномерная загрузка участников проекта;

эффективное использование накопленного опыта;

реальная оценка текущего состояния проекта и, как следствие, большая уверенность заказчиков и непосредственных участников в его успешном завершении.

затраты распределяются по всему проекту, а не группируются в его конце.

1.3 Методология и технология разработки ПП

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

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

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

Применительно к программированию технологию можно определить, как совокупность процессов создания, сопровождения и применения программного продукта. Любая технология программирования базируется на некоторой методологии разработки программ.

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

Методология - совокупность методов, применяемых в какой-либо области человеческой деятельности.

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

Методология науки дает характеристику компонентов научного исследования - его объекта, предмета анализа, задачи исследования, совокупности исследовательских средств, необходимых для решения задачи данного типа, а также формирует представление о последовательности движения исследователя в процессе решения задачи.

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

1.4 Тестирование программных средств

Тестирование программного обеспечения - процесс исследования программного обеспечения (ПО) с целью получения информации о качестве продукта

Существует несколько признаков, по которым принято производить классификацию видов тестирования. Обычно выделяют следующие:

- по объекту тестирования;

- по знанию системы;

- по знанию системы;

- по степени автоматизированности;

- по степени изолированности компонентов;

- по времени проведения тестирования;

- по признаку позитивности сценариев;

- по степени подготовленности к тестированию.

Уровни тестирования

Модульное тестирование (юнит-тестирование) - тестируется минимально возможный для тестирования компонент, например, отдельный класс или функция. Часто модульное тестирование осуществляется разработчиками ПО.

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

Системное тестирование - тестируется интегрированная система на её соответствие требованиям.

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

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

Альфа-тестирование - имитация реальной работы с системой штатными разработчиками, либо реальная работа с системой потенциальными пользователями/заказчиком. Чаще всего альфа-тестирование проводится на ранней стадии разработки продукта, но в некоторых случаях может применяться для законченного продукта в качестве внутреннего приёмочного тестирования. Иногда альфа-тестирование выполняется под отладчиком или с использованием окружения, которое помогает быстро выявлять найденные ошибки.

Обнаруженные ошибки могут быть переданы тестировщикам для дополнительного исследования в окружении, подобном тому, в котором будет использоваться ПО.

Тестирование "белого ящика" и "чёрного ящика"

В терминологии профессионалов тестирования (программного и некоторого аппаратного обеспечения), фразы "тестирование белого ящика" и "тестирование чёрного ящика" относятся к тому, имеет ли разработчик тестов доступ к исходному коду тестируемого ПО, или же тестирование выполняется через пользовательский интерфейс либо прикладной программный интерфейс, предоставленный тестируемым модулем.

При тестировании белого ящика (англ. white-box testing, также говорят - прозрачного ящика), разработчик теста имеет доступ к исходному коду программ и может писать код, который связан с библиотеками тестируемого ПО. Это типично для юнит-тестирования (англ. unit testing), при котором тестируются только отдельные части системы. Оно обеспечивает то, что компоненты конструкции - работоспособны и устойчивы, до определённой степени. При тестировании белого ящика используются метрики покрытия кода.

При тестировании чёрного ящика, тестировщик имеет доступ к ПО только через те же интерфейсы, что и заказчик или пользователь, либо через внешние интерфейсы, позволяющие другому компьютеру либо другому процессу подключиться к системе для тестирования. Например, тестирующий модуль может виртуально нажимать клавиши или кнопки мыши в тестируемой программе с помощью механизма взаимодействия процессов, с уверенностью в том, все ли идёт правильно, что эти события вызывают тот же отклик, что и реальные нажатия клавиш и кнопок мыши. Как правило, тестирование чёрного ящика ведётся с использованием спецификаций или иных документов, описывающих требования к системе. Как правило, в данном виде тестирования критерий покрытия складывается из покрытия структуры входных данных, покрытия требований и покрытия модели (в тестировании на основе моделей).

1.5 Описание прикладной программы

Алгоритм нахождения минимального остовного дерева в графе. Впервые был опубликован в 1926 году Отакаром Борувкой в качестве метода нахождения оптимальной электрической сети в Моравии. Несколько раз был переоткрыт, например Флореком, Перкалом и Соллином. Работа алгоритма состоит из нескольких итераций, каждая из которых состоит в последовательном добавлении рёбер к остовному лесу графа, до тех пор, пока лес не превратится в дерево, то есть, лес, состоящий из одной компоненты связности. В псевдокоде, алгоритм можно описать так: Изначально, пусть T - пустое множество ребер (представляющее собой остовный лес, в который каждая вершина входит в качестве отдельного дерева). Пока T не является деревом (что эквивалентно условию: пока число рёбер в T меньше, чем V ? 1, где V - число вершин в графе): Для каждой компоненты связности (то есть, дерева в остовном лесе) в подграфе с рёбрами T, найдём самое дешёвое ребро, связывающее эту компоненту с некоторой другойкомпонентой связности. (Предполагается, что веса рёбер различны, или как-то дополнительно упорядочены так, чтобы всегда можно было найти единственное ребро с минимальным весом). Добавим все найденные рёбра в множество T. Полученное множество рёбер T является минимальным остовным деревом входного графа. На каждой итерации число деревьев в остовном лесу уменьшается, по крайней мере, в два раза, поэтому всего алгоритм совершает не более O(log V) итераций.

Каждая итерация может быть реализована со сложностью O(E), поэтому общее время работы алгоритмы составляет O(Elog V) времени (здесь V и E - число вершин и рёбер в графе, соответственно).Однако для некоторых видов графов, в частности, планарных, оно может быть уменьшено до O(E).

2. Специальная часть

2.1 Расчет математической модели

На рисунке (схема 4) представлена сеть железнодорожных дорог и указана стоимость перевозок между терминалами. Связать железнодорожные терминалы, так чтобы минимизировать суммарную стоимость перевозок.

Схема 4-Начальный граф

Таблица 1-Варианты

Вариант№1

Вариант№2

Вариант№3

S[7.6]=3 м;

S[7.6]=15 м;

S[7.6]=4 м;

S[7.4]= 2м;

S[7.4]= 3м;

S[7.4]= 6м;

S[6.2]= 8м;

S[6.2]= 8м;

S[6.2]= 3м;

S[6.1]=6 м;

S[6.1]=5 м;

S[6.1]=11м;

S[6.4]=7 м;

S[6.4]=3 м;

S[6.4]=12м;

S[4.1]= 12м;

S[4.1]= 12м;

S[4.1]= 8м;

S[4.3]=15 м;

S[4.3]=4 м;

S[4.3]=1м;

S[3.1]=3 м;

S[3.1]=9 м;

S[3.1]=4 м;

S[3.2]=5 м;

S[3.2]=5 м;

S[3.2]=6м;

S[3.5]=6 м;

S[3.5]=8м;

S[3.5]=6 м;

S[5.2]=7 м;

S[5.2]=3 м;

S[5.2]=5 м;

S[5.1]=4 м;

S[5.1]=4 м;

S[5.1]=2 м;

S[1.2]=3 м;

S[1.2]=7 м;

S[1.2]=11 м;

Вариант №1

Обозначим M={1,2,3,4,5,6,7} множество узлов сети.

Шаг 0. С 0=Ш и С 0=M

Шаг 1.

Выбираем любой узел I из множества С 0 и определяем С={7} тогда

С 1=1,2,3,4,5,6

Шаг 2.

А) определим возможные расстояния от точек из множества С до других узлов

{3(7.6),2(7,4)}

Б) выбираем наименьшее расстояние из найденных

Min= 2(7.4) и добовляем его во множество С

С={7,4},тогда C1={1,2,3,5,6}

Шаг 3.

А) определим возможные расстояния от точек из множества С до других узлов

{3(7.6),15(4.3),12(4.1),7(4.6)}

Б) выбираем наименьшее расстояние из найденных: Min =3(7.6)

и добовляем его во множество С

С={7,4,6}, C1={1,2,3,5}

Шаг 4.

А) определим возможные расстояния от точек из множества С до других узлов

{8(6.2),6(6.1), 15(4.3),12(4.1)}

Б) выбираем наименьшее расстояние из найденных: Min=6(6.1)

и добовляем его во множество С

С={7,4,6,1} C1={2,3,5}

Шаг 5.

А) определим возможные расстояния от точек из множества С до других узлов

{8(6.2), 15(4.3), 3(1.2),3(1.3),4(1.5)}

Б) выбираем наименьшее расстояние из найденных: Min=3(1.2)

и добовляем его во множество С

С={7,4,6,2,1} C1={3,5}

Шаг 6 .

а) определим возможные расстояния от точкек из множества С до других узлов

{15(4.3), 3(1.3),4(1.5),7(2.5),5(2.3)}

Б) выбираем наименьшее расстояние из найденных:Min=3(1.3)

и добовляем его во множество С

С={7,4,6,2,3,1} C1={5}

Шаг 7 .

а) определим возможные расстояния от точкек из множества С до других узлов {12(4.1),4(1.5),7(2.5), 6(3.5)}

Б выбираем наименьшее расстояние из найденных:Min=4(1.5)

и добовляем его во множество С

С={7,4,6,2,3.5,1} C1=0

Полученный граф(Схема 5)

Схема 5 Полученный граф

Вариант №2

Обозначим M={1,2,3,4,5,6,7} множество узлов сети.

Шаг 0. С 0=Ш и С 0=M

Шаг 1.

Выбираем любой узел I из множества С 0 и определяем С={7} тогда

С 1=1,2,3,4,5,6

Шаг 2.

А) определим возможные расстояния от точек из множества С до других узлов

{15(7.6),3(7,4)}

Б) выбираем наименьшее расстояние из найденных: Min= 3(7.4)

и добовляем его во множество С

С={7,4} C1={1,2,3,5,6}

Шаг 3.

А) определим возможные расстояния от точек из множества С до других узлов

{15(7.6),4(4.3),12(4.1),3(4.6)}

Б) выбираем наименьшее расстояние из найденных:Min =3(4.6)

и добовляем его во множество С

С={7,4,6} C1={1,2,3,5}

Шаг 4.

А) определим возможные расстояния от точек из множества С до других узлов

{8(6.2),5(6.1),4(4.3),12(4.1)}

Б) выбираем наименьшее расстояние из найденных: Min=4(4.3)

и добовляем его во множество С

С={7,4,6,3} C1={2,1,5}

Шаг 5.

А) определим возможные расстояния от точек из множества С до других узлов {8(6.2), 12(4.1),9(3.1),5(3.2),8(3,5),5(6.1)}

Б) выбираем наименьшее расстояние из найденных: Min=5(6.1)

и добовляем его во множество С

С={7,4,6,3,1} C1={2,5}

Шаг 6 .

а) определим возможные расстояния от точек из множества С до других узлов

{8(6.2),4(1.5),7(1.2)}

Б) выбираем наименьшее расстояние из найденных:Min=4(1.5)

и добовляем его во множество С

С={7,4,6,5,3,1} C1={2}

Шаг 7 .

а) определим возможные расстояния от точек из множества С до других узлов

{8(6.2),7(1.2),3(2.5)}

Б выбираем наименьшее расстояние из найденных:Min=3(2.5)

и добовляем его во множество С

С={7,4,6,2,3.5,1} C1=0

Полученный граф (Cхема 6)

Схема 6 Полученный граф

Вариант №3

Обозначим M={1,2,3,4,5,6,7} множество узлов сети.

Шаг 0. С 0=Ш и С 0=M

Шаг 1.

Выбираем любой узел I из множества С 0 и определяем С={7} тогда

С 1=1,2,3,4,5,6

Шаг 2.

А) определим возможные расстояния от точек из множества С до других узлов

{4(7.6),6(7,4)}

Б) выбираем наименьшее расстояние из найденных: Min= 4(7.6)

и добовляем его во множество С

С={7,6} C1={1,2,3,5,4}

Шаг 3.

А) определим возможные расстояния от точек из множества С до других узлов

{6(7.4),12(6.4),3(6.2),11(6.1)}

Б) выбираем наименьшее расстояние из найденных:Min =3(6.2)

и добовляем его во множество С

С={7,6,2} C1={1,3,4,5}

Шаг 4.

А) определим возможные расстояния от точек из множества С до других узлов

{6(7.4),12(6.4),11(6.1),11(2.1),5(2.5),6(2.3)}

Б) выбираем наименьшее расстояние из найденных: Min=5(2.5)

и добовляем его во множество С

С={7,6,2,5} C1={1,3,4}

Шаг 5.

А) определим возможные расстояния от точек из множества С до других узлов

{6(7.4),12(6.4),11(6.1),11(2.1),6(2.3),2(1.5),6(6.3)}

Б) выбираем наименьшее расстояние из найденных: Min=2(1.5)

и добовляем его во множество С

С={7,6,2,5,1} C1={3,4}

Шаг 6 .

а) определим возможные расстояния от точек из множества С до других узлов

{6(7.4),12(6.4),6(2.3), 6(6.3),8(1.4),4(1.3)}

Б) выбираем наименьшее расстояние из найденных:Min=4(1.3)

и добовляем его во множество С

С={7,6,2,5,1,3} C1={4}

Шаг 7 .

а) определим возможные расстояния от точек из множества С до других узлов

{6(7.4),12(6.4),8(1.4),1(4.3)}Б выбираем наименьшее расстояние из найденных:Min=1(4.3)

и добовляем его во множество С

С={7,4,6,2,3.5,1} C1=0

Полученный граф (Cхема 7)

Схема 7 Полученный граф

2.2 Описание программы

2.2.1 О программе

Данная программа написана в системе Borland Developer Studio 2006.

Borland Developer Studio включает Delphi 2006, C++Builder 2006 и C#Builder2006. Delphi 2006 - десятая версия Delphi, флагманской RAD-среды фирмы Borland.

Поддерживаемые языки и платформы.

Поскольку организации уже используют ряд программных приложений и служб, скорее всего они выберут использование существующих, проверенных и хорошо отлаженных приложений вместо немедленной их замены просто ради перехода на новейшую технологию. Это роскошь, которую организации редко могут себе позволить. Здесь преимущества Delphi 2006 очевидны, так как смесь типов проектов, не так уж редко встречается в бизнес-системах.

Win32 C++ DLL, предоставляющий интерфейс для какого-то устройства (производственного или банковского оборудования, а возможно, источника данных), Win32-приложение Delphi - в данном случае многоуровневое приложение DataSnap - которое может взаимодействовать с C++ DLL и сохранять информацию в БД, и, наконец, ASP.NET-проект на C#. Все эти проекты можно рассматривать как единый набор и работать над ними в рамках одной группы проектов (Project Group) Delphi 2006.

Это значительно увеличивает мощь и гибкость, доступные программисту. Delphi 2006 позволяет выполнять разработку практически любого рода.

Требования к системе

· Процессор Intel Pentium III/M 1,4 ГГц или Pentium IV 1,4 ГГц (минимум) (рекомендуется процессор Intel Pentium III/M с частотой выше 1,4 ГГц или Pentium IV с частотой выше 2 ГГц);

· Microsoft Windows Server 2003 (SP1), Microsoft Windows‚ XP Professional (SP2), Windows 2000 Professional (SP4), Windows 2000 Server (SP4);

· 512 МБ ОЗУ (рекомендуется 1 ГБ или больше);

· 1 ГБ свободного дискового пространства для Delphi for Win32 и Delphi for NET (Без учета пространства, необходимого для дополнительных продуктов сторонних поставщиков);

· 750 МБ свободного дискового пространства для необходимых программ (включая Microsoft .NET Framework и SDK);

· Привод CD-ROM или DVD-ROM;

· Монитор SVGA или монитор с более высоким разрешением

(рекомендуется XGA);

· Мышь или другое указательное устройство.

2.2.2 Входные и выходные данные

Таблица 2-Входные данные

Обозначение

Тип данных

Коментарий

M[i]

M:Array[1..7]of integer массив целых чисел

Расстояние между узлами

Таблица 3-Выходные данные

Обозначение

Тип данных

Коментарий.

LineTo(x1,y1,x2,y2)

Отрезок соединяющий узлы минимально возможным рассоянием

2.2.3 Алгоритм работы программы

2.3 Тестирование программы

Тестирование программы

Процесс выполнение программы с целью обнаружение ошибок каждый тест определяет:

- набор исходных данных и условий для запуска программы;

- набор ожидаемых результатов работы программы.

Целью проектирование тестовых вариантов является систематическое обнаружение различных классов ошибок при минимальных затратах времени и стоимости.

Тестирование обеспечивает

1. Обнаружение ошибок.

2. Демонстрацию соответствия функций программы и ееназначения.

3. Демонстрацию характеристик программы.

4. Отображение надежности как индикатора качества программы.

5. Существуют 2 принципа тестирования программы

6. Функциональное тестирование (тестирование “черным ящиком”)

После этих 2 принципов проводят оценочное тестирование которое особенно важно для програмных продуктов предназначенных для продажи на рынке оценочное тестирование включает в себя:

- тестирование удобств использования

- тестирование на предельных обьемах

- тестирование защишености продукта

- тестирование производительности совместимости и надежности и т.д.

Целью этих проверок является поиск несоответствия технического задания.

Тестирование "Чёрного ящика" похоже на тестирование моста путем проезда по нему нескольких комбинаций различных транспортных средств.

Целью тестирования "Белого ящика" является тестирование белым ящиком сначала разбивается проект программы на отдельные элементы, и ищем пути и другие разбиения для управления данных. Затем мы проектируем тесты, прослживающие все или некоторые из этих путей, и проверяем все составные части.

Таблица 4. Тестовый набор

Тестовый набор

Ожидаемый результат

Полученный результат

Расстояние между узлами определены первым вариантом

Вид остовного дерева

Расстояние между узлами определены вторым вариантом

Вид остовного дерева

Расстояние между узлами определены вторым вариантом

Вид остовного дерева

2.4 Руководство пользователю

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

Рисунок 1. Начальная форма

На рисунке 4 изображено визуальное оформление пункта условия задачи

Рисунок 4. Условие

На рисунке 5 отбражена форма, на которой зелёныи линиями выделился кратчайший путь.

Рисунок 5. Выводимый результат

На рисунке 6 отображена ошибка, если ввести не все данные то вылезает ошибка как на рисунке.

Рисунок 6. Форма ошибки

Для начала работы с программой достаточно просто на нее взглянуть.

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

Заключение

В ходе разработки курсового проекта были достигнуты следующие задачи:

1) Изучен математический метод принятия решения и условия неопределенности.

2) Составлен алгоритм компьютерной модели решения

3) Создана программа которая:

- Реализует данный математический метод оптимальным образом

- Быстро и корректно выполняет расчеты

- Имеет понятный пользователю интерфейс

4) Для проверки корректности работы программы были составлены текстовые наборы. Тестирование прошло успешно, что свидетельствует о корректности работы программы. Все расчеты были проведены в ручную.

Размещено на Allbest.ru

...

Подобные документы

  • Среда разработки Borland Developer Studio, возможности использования в практике дополнительного обучения. Технологии создания электронных учебно-методических комплексов. Системные требования и установка программы, логическая структура и интерфейс.

    дипломная работа [1,8 M], добавлен 23.04.2015

  • Методология и технология разработки программного продукта. Решение задачи поиска кратчайших путей между всеми парами пунктов назначения, используя алгоритм Флойда. Разработка интерфейса программы, с использованием среды Delphi Borland Developer Studio.

    курсовая работа [2,0 M], добавлен 26.07.2014

  • Реализация алгоритмов Краскала и Прима для построения минимального остовного дерева взвешенного связного неориентированного графа. Анализ трудоемкости алгоритмов, их псевдокоды и тестирование. Применение алгоритма Краскала на практике в работе авиалиний.

    курсовая работа [142,0 K], добавлен 25.12.2012

  • Разработка программной реализации решения задачи о минимальном покрывающем дереве графа (построение минимального остова), используя алгоритмы Прима и Крускала. Подсчет времени работы алгоритмов. Их программная реализация на практике с помощью Delphi 7.

    курсовая работа [538,1 K], добавлен 29.08.2010

  • Способы построения остовного дерева (алгоритма поиска в глубину и поиска в ширину). Вид неориентированного графа. Понятие и алгоритмы нахождения минимальных остовных деревьев. Последовательность построения дерева графов по алгоритмам Крускала и Прима.

    презентация [22,8 K], добавлен 16.09.2013

  • Рассмотрение нелинейных динамических структур данных в виде бинарного дерева. Построение дерева двоичного поиска. Реализация трех обходов дерева, выведение обходов на экран компьютера. Разработка текста программы. Симметричноправая прошивка дерева.

    контрольная работа [81,6 K], добавлен 14.12.2011

  • Практическое использование алгоритмов для нахождения минимального пути в лабиринте. Разработка программы на языке С++ и в среде Visual C++. Основные способы поиска пути: метод волны и приоритетов. Описание разработанных функций и инструкция пользователя.

    дипломная работа [54,3 K], добавлен 16.03.2012

  • Эффективные средства разработки программного обеспечения. Технология визуального проектирования и событийного программирования. Конструирование диалоговых окон и функций обработки событий. Словесный алгоритм и процедуры программы Borland Delphi 7 Studio.

    дипломная работа [660,2 K], добавлен 21.05.2012

  • Разработка программы создания заметок в любом месте компьютера. Выбор технологии, языка и среды разработки приложения. Описание основных алгоритмов работы программного обеспечения. Проектирование пользовательского интерфейса. Выбор стратегии тестирования.

    отчет по практике [700,5 K], добавлен 24.11.2014

  • Проектирование программы в среде Delphi для тестирования знаний студентов по программированию, с выводом оценки по окончанию тестирования. Разработка экранных форм и алгоритма программы. Описание программных модулей. Алгоритм процедуры BitBtn1Click.

    курсовая работа [365,0 K], добавлен 18.05.2013

  • Выбор состава технических и программных средств для создания данного приложения "Экзаменатор", использование среды разработки Borland Delphi. Основные компоненты и спецификация программы. Используемые технические средства, описание и запуск программы.

    курсовая работа [540,8 K], добавлен 18.07.2012

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

    курсовая работа [506,5 K], добавлен 21.02.2011

  • Теория графов и её применения. Разработка программного продукта для решения задач нахождения минимального пути. Анализ надежности и качества ПП "метода Дейкстры". Математическая модель задачи. Алгоритмы Дейкстры на языке программирования Turbo Pascal.

    курсовая работа [1,6 M], добавлен 26.03.2013

  • Составление программы для нахождения минимального и максимального элементов массива. Программа вычисления корней квадратных алгебраических уравнений. Ранжирование одномерного массива по заданному признаку. Формирование массивов с помощью функции random.

    контрольная работа [1,0 M], добавлен 30.04.2013

  • Объектно-ориентированная технология создания программ. Среда разработки Visual Studio.NET. Особенности среды Microsoft Visual Studio 2010. Приложения C# для расчетов по формулам, консольный ввод-вывод. Форматирование значений данных. Программы с циклами.

    методичка [2,1 M], добавлен 11.09.2014

  • Возможности Win32 для нахождения списка запущенных процессов. Использование библиотеки Process Status Helper, счетчиков производительности, Windows Management Instrumentation. Описание программы, ее алгоритм и составление инструкции пользователя.

    курсовая работа [819,0 K], добавлен 21.03.2011

  • Создание программы, реализующей игру "Линии". Среда разработки программы, описание ее общего вида. Основные алгоритмы программы. Реализация программы в среде разработки Microsoft Visual Studio 2008 на языке объектно-ориентированного программирования С++.

    курсовая работа [639,0 K], добавлен 16.03.2012

  • Принципы разработки алгоритмов и программ на основе процедурного подхода и на основе объектно-ориентированного подхода. Реализация программы Borland Pascal 7.0, ее интерфейс. Разработка простой программы в среде визуального программирования Delphi.

    отчет по практике [934,7 K], добавлен 25.03.2012

  • Анализ временных рядов. Разработка программы для среды визуального проектирования Borland Delphi 7.0. Математическая формулировка задачи. Структурная схема программы. Описание реализации технологии COM, динамических библиотек, возможностей программы.

    курсовая работа [4,3 M], добавлен 14.11.2010

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

    курсовая работа [532,7 K], добавлен 20.07.2014

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.