Создание базы данных автомобилей
Понятие базы данных, этапы ее создания Алгоритм Дейкстры. Метод Дейкстры поиска кратчайшего маршрута между двумя заданными вершинами взвешенного графа. Назначение и алгоритм функционирования программы, технические и программные средства баз данных.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 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
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