МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РФ
ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ
ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ
ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ
«НИЖЕГОРОДСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ
УНИВЕРСИТЕТ ИМ.Р.Е.АЛЕКСЕЕВА»
ДЗЕРЖИНСКИЙ ПОЛИТЕХНИЧЕСКИЙ ИНСТИТУТ (ФИЛИАЛ)
Кафедра «Автоматизация и информационные системы»
Разработка информационной системы
«Млекопитающие» в среде Visual Basic
ПОЯСНИТЕЛЬНАЯ ЗАПИСКА
к курсовой работе по дисциплине
«Информатика»
Разработал
Студент группы 11-АТПП
Ершов А.Ю
Проверил
Доцент кафедры АИС
Токарев С.В
Дзержинск 2012
Разработка простейшей поисковой системы на тему «млекопитающие»
Целью данной работы является: систематизация млекопитающих
1 Часть
ЗАПОЛНЕНИЕ БАЗЫ ДАННЫХ
Программный код базы данных
Вводим переменные используемые в базе данных :
Dim A, l, h, f As Integer
Private Type kursovaya
q As String * 150
w As String * 100
p As String * 100
e As String * 100
r As String * 150
t As String * 150
y As String * 15
u As String * 15
i As String * 15
o As String * 10
End Type
Dim bd As kursovaya
А - количество записей в базе данных
l, h, f - Переменные используемые для нахождения повторения
2. Записываем условия, при которых добавление записи в базу данных невозможно
Когда остались незаполненные поля
Невозможность добавления записи с одинаковыми данными
Private Sub Command1_Click()
If Trim(Text1.Text) = '' Or Trim(Text2.Text) = '' Or _
(Option1.Value = False And Option2.Value = False And Option3.Value = False) Or _
(Option4.Value = False And Option5.Value = False And Option6.Value = False) Or _
Trim(Text5.Text) = '' Or Trim(Text6.Text) = '' Or Trim(Text7.Text) = '' Or Trim(Text8.Text) = '' Then
MsgBox 'У вас остались незаполненные поля!', 48, 'Ошибка'
Else
f = 0
For l = 0 To A
h = l + 1
Get #1, q, bd
If UCase(Trim(Text1.Text)) = UCase(Trim(bd.q)) And UCase(Trim(Text2.Text)) = UCase(Trim(bd.q)) And _
UCase(Trim(Text3.Text)) = UCase(Trim(bd.r)) And UCase(Trim(Text4.Text)) = UCase(Trim(bd.t)) And _
UCase(Trim(Text5.Text)) = UCase(Trim(bd.y)) And UCase(Trim(Text6.Text)) = UCase(Trim(bd.u)) And _
UCase(Trim(Text7.Text)) = UCase(Trim(bd.u)) And UCase(Trim(Text8.Text)) = UCase(Trim(bd.o)) And _
((Option1.Value = True And UCase(Trim(Option1.Caption)) = UCase(Trim(bd.w))) Or _
(Option2.Value = True And UCase(Trim(Option2.Caption)) = UCase(Trim(bd.w))) Or _
(Option3.Value = True And UCase(Trim(Option3.Caption)) = UCase(Trim(bd.w)))) And _
((Option4.Value = True And UCase(Trim(Option4.Caption)) = UCase(Trim(bd.p))) Or _
(Option5.Value = True And UCase(Trim(Option5.Caption)) = UCase(Trim(bd.p))) Or _
(Option6.Value = True And UCase(Trim(Option6.Caption)) = UCase(Trim(bd.p)))) Then
f = 1
MsgBox 'Такая запись уже существует!', 48, 'Ошибка'
GoTo hf:
End If
Next l
hf:
If f = 0 Then
bd.q = Text1.Text
bd.r = Text2.Text
If Option1.Value = True Then bd.w = Option1.Caption
If Option2.Value = True Then bd.w = Option2.Caption
If Option3.Value = True Then bd.w = Option3.Caption
If Option4.Value = True Then bd.p = Option4.Caption
If Option5.Value = True Then bd.p = Option5.Caption
If Option6.Value = True Then bd.p = Option6.Caption
bd.t = Text3.Text
bd.y = Text4.Text
bd.u = Text5.Text
bd.i = Text6.Text
bd.o = Text7.Text
bd.e = Text8.Text
A = A + 1
Label12.Caption = A
Put #1, A, bd
MsgBox 'Запись добавлена!', , 'Уведомление'
End If
End If
End Sub
Создаем кнопку для очистки всех полей в заполнении базы данных:
Private Sub Command4_Click()
Text1.Text = ''
Text2.Text = ''
Text3.Text = ''
Text4.Text = ''
Text5.Text = ''
Text6.Text = ''
Text7.Text = ''
Text8.Text = ''
Option1.Value = False
Option2.Value = False
Option3.Value = False
Option4.Value = False
Option5.Value = False
Option6.Value = False
End Sub
Создаем файл bd.dat в котором будут хранится данные введенные в базу данных
Private Sub Form_Activate()
Open 'bd.dat' For Random As #1 Len = Len(bd)
A = LOF(1) / Len(bd)
Label12.Caption = A
End Sub
Часть 2
Создание навигации по базе данных bd.dat
база данный файл систематизация
1.Вводим переменные используемые в базе данных :
Dim A, l, h, f As Integer
Private Type kursovaya
q As String * 150
w As String * 100
p As String * 100
e As String * 100
r As String * 150
t As String * 150
y As String * 15
u As String * 15
i As String * 15
o As String * 10
End Type
Dim bd As kursovaya
А - количество записей в базе данных
l, h, f - Переменные используемые для нахождения повторения
2. Создаем кнопку для перехода к предыдущей записи находящейся в нашей базе данных
Private Sub Command1_Click()
k = k - 1
If k = 0 Then k = A
Seek #1, k
Text11.Text = k
Get #1, , bd
Text1.Text = Trim(bd.q)
Text2.Text = Trim(bd.w)
Text3.Text = Trim(bd.p)
Text4.Text = Trim(bd.e)
Text5.Text = Trim(bd.r)
Text6.Text = Trim(bd.t)
Text7.Text = Trim(bd.y)
Text8.Text = Trim(bd.u)
Text9.Text = Trim(bd.i)
Text10.Text = Trim(bd.o)
End Sub
3. Создаем кнопку для перехода к следующей записи находящейся в нашей базе данных
Private Sub Command2_Click()
If k = A Then k = 0
k = k + 1
Seek #1, k
Text11.Text = k
Get #1, , bd
Text1.Text = Trim(bd.q)
Text2.Text = Trim(bd.w)
Text3.Text = Trim(bd.p)
Text4.Text = Trim(bd.e)
Text5.Text = Trim(bd.r)
Text6.Text = Trim(bd.t)
Text7.Text = Trim(bd.y)
Text8.Text = Trim(bd.u)
Text9.Text = Trim(bd.i)
Text10.Text = Trim(bd.o)
End Sub
4. Создаем кнопку для возвращения к первой записи имеющейся в базе данных:
Private Sub Command3_Click()
k = 1
Text11.Text = k
Seek #1, k
Get #1, , bd
Text1.Text = Trim(bd.q)
Text2.Text = Trim(bd.w)
Text3.Text = Trim(bd.p)
Text4.Text = Trim(bd.e)
Text5.Text = Trim(bd.r)
Text6.Text = Trim(bd.t)
Text7.Text = Trim(bd.y)
Text8.Text = Trim(bd.u)
Text9.Text = Trim(bd.i)
Text10.Text = Trim(bd.o)
6. Создаем кнопку для копирования записей из навигации в базу данных:
Private Sub Command6_Click()
Form1.Show
Form1.Text1.Text = Text1.Text
Form1.Text2.Text = Text5.Text
Form1.Text3.Text = Text6.Text
Form1.Text4.Text = Text7.Text
Form1.Text5.Text = Text8.Text
Form1.Text6.Text = Text9.Text
Form1.Text7.Text = Text10.Text
Form1.Text8.Text = Text4.Text
If UCase(Trim(Text2.Text)) = UCase(Trim(Form1.Option1.Caption)) Then Form1.Option1.Value = True
If UCase(Trim(Text2.Text)) = UCase(Trim(Form1.Option2.Caption)) Then Form1.Option2.Value = True
If UCase(Trim(Text2.Text)) = UCase(Trim(Form1.Option3.Caption)) Then Form1.Option3.Value = True
If UCase(Trim(Text3.Text)) = UCase(Trim(Form1.Option4.Caption)) Then Form1.Option4.Value = True
If UCase(Trim(Text3.Text)) = UCase(Trim(Form1.Option5.Caption)) Then Form1.Option5.Value = True
If UCase(Trim(Text3.Text)) = UCase(Trim(Form1.Option6.Caption)) Then Form1.Option6.Value = True
Close #1
End Sub
При нажатии на кнопку открывается база данных в которой указанны данные которые заполнены в полях навигации.
7. Создаем поиск, который состоит из:
Кнопки
Текстового поля, в которое мы вводим условие поиска
Окно, в котором отображается найденное
Private Sub Command7_Click()
List1.Clear
k = 1
Seek #1, k
Do While Not EOF(1)
Get #1, k, bd
If InStr(bd.q, Text12.Text) <> 0 Or _
InStr(bd.w, Text12.Text) <> 0 Or _
InStr(bd.p, Text12.Text) <> 0 Or _
InStr(bd.e, Text12.Text) <> 0 Or _
InStr(bd.r, Text12.Text) <> 0 Or _
InStr(bd.t, Text12.Text) <> 0 Or _
InStr(bd.u, Text12.Text) <> 0 Or _
InStr(bd.i, Text12.Text) <> 0 Or _
InStr(bd.o, Text12.Text) <> 0 Then List1.AddItem k & ' ' & Trim(bd.q) & ' ' & Trim(bd.w) & ' ' & Trim(bd.p) & ' ' & Trim(bd.e) & ' ' & Trim(bd.r) & ' ' & Trim(bd.t) & ' ' & Trim(bd.y) & ' ' & Trim(bd.u) & ' ' & Trim(bd.i) & ' ' & Trim(bd.o)
k = k + 1
Loop
End Sub
8. Создаем кнопку для ввода изменений в базу данных:
Private Sub Command8_Click()
bd.q = Text1.Text
bd.w = Text2.Text
bd.p = Text3.Text
bd.e = Text4.Text
bd.r = Text5.Text
bd.t = Text6.Text
bd.y = Text7.Text
bd.u = Text8.Text
bd.i = Text9.Text
bd.o = Text10.Text
Put #1, Val(Text11.Text), bd
MsgBox 'Изменения сохранены!', , 'Уведомление'
End Sub
9. Указываем путь к файлу базы данных bd.dat
Private Sub Form_Activate()
Close #1
Open 'bd.dat' For Random As #1 Len = Len(bd)
A = LOF(1) / Len(bd)
k = 1
Text11.Text = 1
Label11.Caption = A
Get #1, , bd
Text1.Text = Trim(bd.q)
Text2.Text = Trim(bd.w)
Text3.Text = Trim(bd.p)
Text4.Text = Trim(bd.e)
Text5.Text = Trim(bd.r)
Text6.Text = Trim(bd.t)
Text7.Text = Trim(bd.y)
Text8.Text = Trim(bd.u)
Text9.Text = Trim(bd.i)
Text10.Text = Trim(bd.o)
End Sub
10. Создаем текстовое поле в котором будет указывать номер записи в базе данных
Private Sub Text11_KeyPress(KeyAscii As Integer)
Select Case KeyAscii
Case 13
Get #1, Val(Text11.Text), bd
If Val(Text11.Text) <= A Then
Text1.Text = Trim(bd.q)
Text2.Text = Trim(bd.w)
Text3.Text = Trim(bd.p)
Text4.Text = Trim(bd.e)
Text5.Text = Trim(bd.r)
Text6.Text = Trim(bd.t)
Text7.Text = Trim(bd.y)
Text8.Text = Trim(bd.u)
Text9.Text = Trim(bd.i)
Text10.Text = Trim(bd.o)
Else
MsgBox 'Записи с таким номером не существует', 16, 'Ошибка'
Text11.Text = A
End If
End Select
End Sub