Создание базы данных автомобилей

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

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

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

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

1

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

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

Министерство образования и науки РФ

донской Государственный технический Университет

Институт энергетики и машиностроения

Кафедра «Информационные и управляющие системы»

КУРСОВАЯ РАБОТА НА ТЕМУ:

«Создание базы данных автомобилей»

выполнила: студентка группы ЭИБ1-1

Бизюкова И.Д..

проверил: к.т.н. доцент Айдинян А.Р.

г. Ростов-на-Дону

2012 г.

Содержание

Аннотация

Введение

1.Теоретические сведения

1.1 Понятие базы данных

  • 1.2 Этапы создания баз данных
  • 1.2.1 Назначение программы
  • 1.2.2 Краткое описание алгоритма работы с программой
  • 2.Описания программы
  • 2.1 Общие сведения
  • 2.2 Функциональное назначение
  • 2.3 Описание алгоритма функционирования программы
  • 2.4 Используемые технические и программные средства
  • Заключение
  • Список литературы
  • Приложение А -- писание основных переменных
  • Приложение В -- Общий вид программы
  • Приложение С -- Листинг программы
  • Аннотация
  • В данной работе разрабатывается программа работы с базой данных, в соответствии с поставленным заданием. Помимо основного задания рассматривается возможность рисования любого графа и нахождение минимального пути по заданию пользователя программы. Программа предусматривает также различные случаи работы с программой, такие как вывод матрицы смежности графа.
  • база данные дейкстра программный
  • Введение

База данных, говоря коротко - это средство для реляционного и эффективного хранения информации. Иными словами, такая база обеспечивает надежную защиту данных от случайной потери или порчи, экономно использует ресурсы (как людские, так и технические) и снабжена механизмами поиска информации, удовлетворяющим разумным требованиям к производительности. Само понятие база данных может означать как отдельный набор данных (например, список телефонов), так и гораздо более сложную систему (например, SQL Server). Базы данных - это один из самых сложных типов коммерческих приложений. Все остальные типы системы, как правило, имеют более - менее близкие аналогии в реальном мире. С точки зрения практического использования текстовые процессоры - это усовершенствованная пишущая машинка. Электронную базу данных, несомненно, освоит не только бухгалтер, но и другой любой пользователь.

1 Определение цели создания базы данных

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

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

1.1 Общие сведения

Программный продукт представляет собой исполняемый файл MyDataBase.exe, созданный при компиляции проекта, написанного на языке Visual Basic 6.0 и файлы справки (web-страницы и изображения). Для систем, на которых не установлен пакет Visual Basic 6.0, может так же понадобиться библиотека MSVBVM60.DLL.

При создании программы использовалось следующее программное обеспечение:

1. Microsoft Visual Basic 6.0

2. Microsoft Word 2003

3. Графические редакторы MS Paint, Adobe Photoshop 7.0, Macromedia Dreamweaver 8.

1.2 Функциональное назначение

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

1.2.1 Назначение программы

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

1.2.2 Краткое описание алгоритма работы с программой

Исполняемый файл - Database.exe

Для открытия файла выберите пункт меню Файл -> Открыть.

Для создания резервной копии - пункт меню Файл -> Сохранить как

Для добавления записи - меню Редактировать -> Добавить

Для удаления записи ее необходимо выделить и выбрать меню Редактировать-> Удалить или нажать кнопку Delete на клавиатуре. Удаление нужно подтвердить нажатием кнопки «Да» в окне сообщения.

Для выполнения запросов предназначено меню «Запросы». Выберите «Поиск-> По запросу -> <Нужный запрос>», и программа осуществит поиск по выбранному условию и выведет результаты на форму поиска.

Сортировка выполняется при выборе сортировка в меню базы данных. Выберите поле для сортировки, а затем вид сортировки в пункте «Сортировка» или на панели инструментов.

Для поиска данных по первой букве выберите меню «Поиск -> По первой букве». Введите букву в появившееся окно и нажмите «Ok». Найденная информация будет отображена на форме поиска.

Для получения справки и информации о программе выберите меню «Справка».

Многие пункты меню дублируются на панели инструментов. Далее каждое действие будут описано более подробно.

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

2.1 Общие сведения

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

1.Ввод данных в программу;

2.Выведение на экран общей базы;

3.Поиск данных по заданным пользователем параметрам ;

4.Хранение информации в удобной форме

5.Возможность очистки базы данных.

2.2 Функциональное назначение

Общим назначением программы является поиск автомобиля по заданным параметрам. Для этого используются стандартные функции и операторы языка программирования Visual Basic и необходимые знания по созданию баз данных в различных средах. Т

2.3 Описание алгоритма функционирования программы

1.Рисование пользователем графа.

1.1 Рисование вершин графа.

1.2 Рисование ребер графа.

2.Определение матрицы смежности.

3.Нахождение минимального пути по заданным пользователем

параметрам.

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

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

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

2.4 Используемые технические и программные средства

Для создания азы данных создаем 4 формы.(Form1, Form2, Form3, Form4)

На форму 1 помещаем две кнопки «Просмотр базы данных» и «Ввод базы данных»

На форме 2 находятся кнопки «Полный список», «Назад» и «Выбор по критериям». Так же на этой фотме выводится список автомобилей с помощью команды Print.

Форма 4 служит непосредственна для поиска моделей по параметрам. Для этого на форму помещаем следующие элементы: TextBox1 - для ввода цены; ListBox1 и ListBox2, для выбора марки и модели автомобиля; 3 кнопки поиска, и 2 кнопки вывода резулбтатов в TextBox.

Заключение

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

Список литературы

1. Дискретная математика для программистов / Ф.А. Новиков. - СПб.: Питер, 2002. - 304 с.: ил.

2. Алгоритмы на графах. Методические указания к курсовой работе по дисциплине «Математические основы информационных систем» / Л.Г. Тищенко - РГАСХМ, Ростов н/Д, 2000. - 42 с.

3.Кузьменко В.Г. Visual Basic 6. Самоучитель. - М.: Бином-Пресс, 2002 г. - 400с.: ил.

4. Решение задач транспортного типа генетическими алгоритмами / Ю.О. Чернышев, А.В. Басова, А.Ю. Полуян - ЮФУ ГОУ, Ростов-на-Дону, 2008 г.- 88 с.

Приложение А-Описание основных переменных

1. Глобальные переменные

NSh - Счетчик вершин

NLn - Счетчик линий

Mas - Массив для матрицы смежности

Massiv - Массив для матрицы длин

Masp - Массив для матрицы ребер

masiv11 - 2-й массив для матрицы длин

masiv1 - 2-й массив для матрицы ребер

strImy - Переменная для имени файла

nFreeFile - Переменная для идентификатора файла

werder-переменная для рисования линий

2. Переменные используемые в событиях

i, j, ii- переменные цикла

Приложение В - Общий вид программы

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

Помещение на форму шариков- вершин графа осуществляется правой клавишей мыши. В центре шариков находится номер вершины:

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

Над ребрами выставляется введенная длина ребра. Чтобы вывести матрицу смежности, нужно нажать на кнопку «Вывести матрицу смежности». В левом верхнем углу в Label1 выведется матрица смежности, соответствующая заданному на форме графу:

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

На этой форме можно найти кратчайший путь и его длину с помощью кнопки «Нахождение пути»…

…или заполнить матрицу смежности с помощью кнопки «Заполнение матрицы»:

Для того чтобы удалить граф, нужно нажать на кнопку «Удалить граф»:

Для выхода из программы на форме есть кнопка «EXIT» в правом верхнем углу:

Приложение С - Листинг программы

Option Explicit

Dim NSh As Integer 'Счетчик вершин

Dim NLn As Integer 'Счетчик линий

Dim werder As Integer

Dim mas() As Integer 'Массив для матрицы смежности

Dim masD() As Variant

'-------------------------------------------------

Dim massiv() As Variant 'Массив для матрицы длин

Dim masp() As Variant 'Массив для матрицы ребер

Dim masiv11() As Variant '2-й массив для матрицы длин

Dim masiv1() As Variant '2-й массив для матрицы ребер

Dim strImy As String 'Переменная для имени файла

Dim nFreeFile As Integer 'Переменная для идентификатора файла'наибольшая длина ребра

'программа

Dim Lasttime As Single

Dim T As Single

Dim s As Single

Dim V As Single

Dim V1 As Single

Dim www() As Variant

Dim V2 As Single

Dim max As Single

Dim max1 As Single

Dim max2 As Single

Dim Mok() As Integer

Dim Wok() As Integer

Dim Way() As Integer

Dim schet As Integer

' Заполнение матрицы длин

Function comm1()

Dim i As Integer, j As Integer

Dim a() As Double

ReDim Preserve a(1 To Shape1.UBound, 1 To Shape1.UBound)

ReDim Preserve massiv(1 To Shape1.UBound, 1 To Shape1.UBound)

For i = 1 To Shape1.UBound

For j = 1 To Shape1.UBound

If (i <> 1) Or (j <> 1) Then

Load Form2.text2(i * 10 + j)

Form2.text2(i * 10 + j).Visible = True

Form2.text2(i * 10 + j).Left = Form2.text2(11).Left + Form2.text2(11).Width * (j - 1)

Form2.text2(i * 10 + j).Top = Form2.text2(11).Top + Form2.text2(11).Height * (i - 1)

Form2.text2(i * 10 + j).Caption = massiv(i, j) + massiv(j, i)

End If

If i = j Then

Form2.text2(i * 10 + j).Caption = "0"

End If

Next j

Next i

End Function

Private Sub Command2_KeyDown(KeyCode As Integer, Shift As Integer)

Form_KeyDown KeyCode, 0

End Sub

Private Sub Command1_Click()

End

End Sub

' Удаление всего графа

Private Sub Delete_Click()

Dim i As Integer, j As Integer, d As Integer, o As Integer, u As Integer

For i = Shape1.LBound To Shape1.UBound - 1

Unload Shape1(i + 1)

Next i

For j = Line1.LBound To Line1.UBound - 1

Unload Line1(j + 1)

Next j

For d = Label1.LBound To Label1.UBound - 1

Unload Label1(d + 1)

Next d

For o = Label2.LBound To Label2.UBound - 1

Unload Label2(o + 1)

Next o

For u = Label3.LBound To Label3.UBound - 1

Unload Label3(u + 1)

Next u

End Sub

Private Sub mnuExit_Click()

End

End Sub

Private Sub Deykstra_Click()

Load Form2

Form2.Visible = True

End Sub

' Матрица смежности

Private Sub Matrix_Click()

Dim k As Integer

Dim n As Integer

ReDim Preserve mas(1 To (Shape1.UBound), 1 To (Shape1.UBound))

For k = 1 To Shape1.UBound

For n = 1 To Shape1.UBound

Print mas(k, n);

Next n

Print

Next k

End Sub

'Удаление графа по частям

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)

If (KeyCode = 46) And (Shape1.UBound > 0) Then

Dim w As Integer, u As Integer, p As Integer

For w = 1 To Shape1.UBound

If Shape1(w).FillColor = &HFFFF00 Then

u = w

Exit For

End If

Next w

For p = 1 To Line1.UBound

On Error Resume Next

If (((Shape1(u).Left + Shape1(u).Height / 2.5) = Line1(p).X1) And ((Shape1(u).Top + Shape1(u).Width / 2.5) = Line1(p).Y1)) Or (((Shape1(u).Left + Shape1(u).Width / 2.5) = Line1(p).X2) And ((Shape1(u).Top + Shape1(u).Width / 2.5) = Line1(p).Y2)) Then

Line1(p).X1 = Line1(Line1.UBound).X1

Line1(p).Y1 = Line1(Line1.UBound).Y1

Line1(p).X2 = Line1(Line1.UBound).X2

Line1(p).Y2 = Line1(Line1.UBound).Y2

Unload Label2(p)

Unload Label3(p)

Unload Line1(p)

End If

Next p

Shape1(u).Top = Shape1(Shape1.UBound).Top

Shape1(u).Left = Shape1(Shape1.UBound).Left

Shape1(u).FillColor = vbBlue

Label1(u).Top = Label1(Shape1.UBound).Top

Label1(u).Left = Label1(Shape1.UBound).Left

Unload Shape1(Shape1.UBound)

Unload Label1(Label1.UBound)

End If

End Sub

'Загрузка формы

Private Sub Form_Load()

Line1(0).Visible = False

Shape1(0).Visible = False

Line2(0).Visible = False

End Sub

' Рисование линий

Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)

Dim i As Integer

werder = 0

If Button = vbLeftButton Then

For i = 1 To (Shape1.UBound)

ReDim Preserve mas(1 To (Shape1.UBound), 1 To (Shape1.UBound))

ReDim Preserve www(1 To (Shape1.UBound), 1 To (Shape1.UBound))

ReDim Preserve massiv(1 To (Shape1.UBound), 1 To (Shape1.UBound))

ReDim Preserve masD(1 To (Shape1.UBound), 1 To (Shape1.UBound))

If Shape1(i).FillColor = &HFF00FF Then

werder = i

Load Line1(Line1.UBound + 1)

NLn = Line1.UBound

With Line1(Line1.UBound)

.Visible = True

.X1 = X

.Y1 = Y

.X2 = X

.Y2 = Y

End With

End If

Next i

End If

End Sub

'Определение координат

Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)

Dim r As Integer

Dim i As Integer

For i = 1 To (Shape1.UBound)

If X - Shape1(i).Left >= 0 And X - Shape1(i).Left < Shape1(i).Width And _

Y - Shape1(i).Top >= 0 And Y - Shape1(i).Top < Shape1(i).Height Then

Shape1(i).FillColor = &HFF00FF

Else

Shape1(i).FillColor = &HFFFF00

End If

Next i

If Button = vbLeftButton Then

Line1(Line1.UBound).X2 = X

Line1(Line1.UBound).Y2 = Y

End If

End Sub

' Рисование графа

Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)

Dim alf As Variant

Dim r As Integer, i As Integer, ii As Integer, L As Integer, q As Integer

Dim bet As Variant

r = Shape1(0).Width / 2.5

If werder <> 0 Then

Dim kr As Boolean

kr = False

For ii = 1 To (Shape1.UBound)

If Shape1(ii).FillColor = &HFF00FF Then

kr = True

If ii <> werder Then

With Line1(Line1.UBound)

.X1 = Shape1(werder).Left + r

.Y1 = Shape1(werder).Top + r

.X2 = Shape1(ii).Left + r

.Y2 = Shape1(ii).Top + r

End With

End If

' Рисование надписей

Dim xx As Double, yy As Double, ugol As Double, ugol1 As Double

xx = Line1(Line1.UBound).X1 - Line1(Line1.UBound).X2

yy = Line1(Line1.UBound).Y1 - Line1(Line1.UBound).Y2

yy = -yy

ugol = Atn(yy / xx)

If xx < 0 And yy < 0 Then ugol = ugol + 3.14

If xx < 0 And yy > 0 Then ugol = ugol + 3.14

If xx < 0 And yy = 0 Then ugol = ugol + 3.14

Dim Xr As Double, Yr As Double

Load Label2(Label2.UBound + 1)

Load Label3(Label3.UBound + 1)

Label2(Label2.UBound).Visible = True

Label3(Label3.UBound).Visible = True

With Line1(Line1.UBound)

If .Y2 < .Y1 Then

If .X1 <= .X2 Then

Label2(Label2.UBound).Top = (.Y1 + .Y2) / 2 - Label2(Label2.UBound).Height

Label2(Label2.UBound).Left = (.X2 + .X1) / 2 - Label2(Label2.UBound).Width

Label3(Label3.UBound).Left = (.X1 + .X2) / 2 + 270 * Cos(ugol) - Label3(Label3.UBound).Height

Label3(Label3.UBound).Top = (.Y1 + .Y2) / 2 + 270 * Sin(-ugol) - Label3(Label3.UBound).Width

ElseIf .X1 > .X2 Then

Label2(Label2.UBound).Top = (.Y1 + .Y2) / 2 - Label2(Label2.UBound).Height

Label2(Label2.UBound).Left = (.X1 + .X2) / 2

Label3(Label3.UBound).Left = (.X1 + .X2) / 2 + 270 * Cos(ugol)

Label3(Label3.UBound).Top = (.Y1 + .Y2) / 2 + 270 * Sin(-ugol) - Label3(Label3.UBound).Height

End If

End If

If .Y2 >= .Y1 Then

If .X1 <= .X2 Then

Label2(Label2.UBound).Top = (.Y2 + .Y1) / 2

Label2(Label2.UBound).Left = (.X2 + .X1) / 2 - Label2(Label2.UBound).Width

Label3(Label3.UBound).Left = (.X1 + .X2) / 2 + 270 * Cos(ugol) - Label3(Label3.UBound).Width

Label3(Label3.UBound).Top = (.Y1 + .Y2) / 2 + 270 * Sin(-ugol)

ElseIf .X1 > .X2 Then

Label2(Label2.UBound).Top = (.Y2 + .Y1) / 2

Label2(Label2.UBound).Left = (.X1 + .X2) / 2

Label3(Label3.UBound).Left = (.X1 + .X2) / 2 + 270 * Cos(ugol)

Label3(Label3.UBound).Top = (.Y1 + .Y2) / 2 + 270 * Sin(-ugol)

End If

End If

End With

' Создание матриц смежности и ребер

If Shape1(ii).FillColor = &HFF00FF And (Line1(Line1.UBound).X1 = Shape1(werder).Left + r) Then

mas(werder, ii) = 1

mas(ii, werder) = 1

massiv(werder, ii) = InputBox("Введите длину ребра")

masD(ii, werder) = massiv(werder, ii)

www(werder, ii) = massiv(werder, ii)

masD(werder, ii) = massiv(werder, ii)

Label2(Label2.UBound).Caption = massiv(werder, ii)

If massiv(werder, ii) > max2 Then

max2 = massiv(werder, ii)

End If

ReDim Preserve www(1 To (Shape1.UBound), 1 To (Shape1.UBound))

ReDim Preserve mas(1 To (Shape1.UBound), 1 To (Shape1.UBound))

ReDim Preserve massiv(1 To (Shape1.UBound), 1 To (Shape1.UBound))

ReDim Preserve masD(1 To (Shape1.UBound), 1 To (Shape1.UBound))

End If

End If

Next ii

' Выгружение линии при неправильном рисовании

If (kr = False) Then

Unload Line1(Line1.UBound)

End If

End If

' Рисование вершин и номеров

If Button = vbRightButton Then

Load Shape1(Shape1.UBound + 1)

NSh = NSh + 1

With Shape1(Shape1.UBound)

.FillStyle = vbSolid

.Visible = True

.Left = X

.Top = Y

End With

Load Label1(Label1.UBound + 1)

With Label1(Label1.UBound)

.Left = X + 150

.Top = Y + 80

.Caption = Shape1.UBound

.ZOrder 0

.Visible = True

End With

End If

werder = 0

End Sub

' Выполнение расчетов по графу

Function comm2()

Dim i As Integer, j As Integer, m As Integer, p As String

Dim c As Integer, d As Integer, max As Integer

ReDim Preserve massiv(1 To NSh, 1 To NSh)

ReDim Preserve masp(1 To NSh, 1 To NSh)

ves_Click

max = 0

' Обработка матрицы ребер

For i = 1 To NSh

For j = 1 To NSh

If (massiv(i, j) > max) And (massiv(i, j) <> "0") Then

max = massiv(i, j)

End If

Next j

Next i

For i = 1 To NSh

For j = 1 To NSh

If (massiv(i, j) = "0") Then

massiv(i, j) = max + 100

End If

Next j

Next i

' Матрица ребер

Private Sub ves_Click()

Dim i As Integer, j As Integer

For i = 1 To NSh

For j = 1 To NSh

If massiv(i, j) <> "0" Then

masp(i, j) = j

Else

masp(i, j) = 0

End If

Next j

Next i

End Sub

' Метод Дейкстры

Function Resh()

Dim i As Integer
Dim j As Integer
Dim ves As Integer
Dim r As Integer
Dim tt As Byte
Dim w() As Byte, m() As Byte
Dim zz As Byte, kk As Byte, cc As Byte, dd As Byte, vv As Byte, ff As Byte
tt = 0
r = Shape1(0).Width / 2.5
If Form2.Label1 <> "" Then
Form2.Label1 = ""
End If
ves = 0
Cls
If Form2.Label4.Caption <> "Вершины" Then
Form2.Label4.Caption = "Вершины"
End If
If max2 <> max1 Then
max = max2 ^ 2
'max1 = max2
End If
For i = 1 To NSh ' во всех символах ищем 0 и заменяем на Max^2
For j = 1 To NSh 'L -кол-во вершин
If masD(i, j) = Lasttime Or masD(i, j) = 0 Then
masD(i, j) = max
End If
Next
Next i
'заполнение матриц: Mok(),Way(); начальные данные
ReDim Mok(1 To NSh)
ReDim Way(1 To NSh)
ReDim Wok(1 To NSh)
For i = 1 To NSh
Mok(i) = 0
Way(i) = max
Next
s = CSng(Form2.Text3.Text)
V = CSng(Form2.Text1.Text)
Mok(V) = 1
Wok(V) = 0
Way(V) = 0
Do
'нахождение минимальных путей к точке V
For i = 1 To NSh
If masD(V, i) = "0" Then
masD(V, i) = 0
End If
If masD(V, i) < max And Mok(i) = 0 And Way(i) > Way(V) + masD(V, i) Then
ves = ves + masD(V, i)
Way(i) = Way(V) + masD(V, i)
Wok(i) = V
End If
Next i
'нахождение минимального пути
T = max
V = 0
For i = 1 To NSh
If Mok(i) = 0 And Way(i) < T Then
V = i
T = Way(i)
End If
Next i
If V = 0 Then
Form2.Label4.Caption = "Вершины"
Exit Function
End If
Mok(V) = 1
Loop Until V = s
'вывод короткого пути
Form2.Label4.Caption = ""
V1 = s
Do Until V1 = 0
tt = tt + 1
ReDim Preserve w(1 To tt)
If V1 <> s Then
Load Line2(Line2.UBound + 1)
schet = schet + 1
Line2(Line2.UBound).X1 = Shape1(V1).Left + r
Line2(Line2.UBound).Y1 = Shape1(V1).Top + r
Line2(Line2.UBound).X2 = Shape1(V2).Left + r
Line2(Line2.UBound).Y2 = Shape1(V2).Top + r
Line2(Line2.UBound).Visible = True
Shape1(V1).FillColor = vbRed
Shape1(V2).FillColor = vbRed
Form2.Label4.Caption = "V" & V1 & "-> " & Form2.Label4.Caption
Else
Form2.Label4.Caption = "V" & V1
End If
w(tt) = V1
V2 = V1
V1 = Wok(V1)
Loop
vv = 0
For zz = 1 To UBound(w) - 1
cc = w(zz)
ff = zz + 1
dd = w(ff)
kk = www(dd, cc)
vv = kk + vv
Next zz
Lasttime = max
Form2.Label1.Caption = "Его длина = " & vv
End Function
Function unloud1()
Dim i As Integer
For i = 1 To schet
Line2(i).Visible = False
Next i
For i = 1 To Shape1.UBound
If Shape1(i).FillColor = vbRed Then
Shape1(i).FillColor = &HFFFF00
End If
Next i
End Function
Размещено на Allbest.ru

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

  • Разработка алгоритма реализации на ЭВМ процесса поиска кратчайшего пути в графе методом Дейкстры. Программная реализация алгоритма поиска кратчайшего пути между двумя любыми вершинами графа. Проверка работоспособности программы на тестовых примерах.

    реферат [929,8 K], добавлен 23.09.2013

  • Понятие и основные функции СУБД "Access". Алгоритм создания базы данных сотрудников: создание таблиц с помощью конструктора, ключевые поля, установление связей между таблицами. Создание форм для поиска и ввода данных. Работа с запросами и отчетами.

    контрольная работа [827,5 K], добавлен 01.06.2010

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

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

  • Создание базы данных, содержащей сведения о напильниках. Вывод данных об инструменте, номер насечки которых равен 2.Использование переменных типа "запись" при работе с базами данных. Решение задачи с использованием Microsoft Excel. Алгоритм программы.

    курсовая работа [33,3 K], добавлен 08.03.2013

  • Понятие и виды баз данных. Системы управления базами данных Microsoft Access: общая характеристика. Создание базы данных методического кабинета ГБОУ СПО СО "Каменск-Уральский радиотехникум". Алгоритм создания базы данных, руководство пользователя.

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

  • Создание таблиц базы данных с помощью MS Access "Страны Азии". Форма базы данных и запросы к выборкам данных. Модификация структуры таблиц, создания связей между главными таблицами, редактирование данных и проектирование форм для реальной базы данных.

    контрольная работа [723,9 K], добавлен 25.11.2012

  • Создание на языке C базы данных "Стадионы города", требования к программе. Осуществление загрузки базы данных в массив и вывод главного меню в основной программе. Алгоритм работы программы в виде блок-схемы. Описание функций программы и ее листинг.

    курсовая работа [183,6 K], добавлен 06.10.2010

  • Система управления базами данных (СУБД). Программные средства, предназначенные для создания, наполнения, обновления и удаления базы данных. Структура, модели и классификация баз данных. Создание каталогов, псевдонимов, таблиц, шаблонов и форм СУБД.

    презентация [1,1 M], добавлен 09.01.2014

  • Графы: определения, примеры, способы изображения. Смежные вершины и рёбра. Путь в ориентированном и взвешенном графе. Матрица смежности и иерархический список. Алгоритм Дейкстры - алгоритм поиска кратчайших путей в графе. Работа в программе "ProGraph".

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

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

    курсовая работа [671,6 K], добавлен 19.11.2009

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