РефератыИнформатика, программированиеБаБаза данных видеокарт

База данных видеокарт

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


База данных видеокарт


Нижний Новгород 2003 г.


Цель работы:


Создание каталога видеокарт. Программа должна уметь: заносить, изменять и удалять видеокарту. Выдавать максимальную и минимальную стоимость видеокарты, в порядке увеличения стоимости.


Программа "База данных видеокарт" (DataBasev.1.02 beta.exe) должна быть написана на языке Visual Basic 6.3.


Составляющие программы:



На рисунке:


-слева – 4 файла программы:


- data.dat – информация о видеокартах (файл Excel (.xls) переименованный в .dat)


- DataBasev.1.02 beta.exe – исполняющий файл программы


- log.dat – история базы данных (файл с произвольным доступом)


- set.ini – файл (с произвольным доступом) для хранения настроек программы


- справа - рабочая папка проекта


Работа с программой:


При первой загрузке сразу создаются файл настроек и истории.


Загружается сплэшскрин:



‘создание новых типов данных


PrivateTypetune


chekv As String * 1


chekn As String * 16


End Type


Private Type log


vlog As String * 23


vname As String * 17


vdate As String * 12


vtime As String * 10


End Type


‘загрузкаформы


Private Sub Form_Load()


Dim chk1 As tune


Dim log1 As log


Open CurDir$ + "set.ini" For Random As #1 Len = Len(chk1)


Get #1, 1, chk1


If chk1.chekv = "0" Then


Unload Me


Form1.Show


Else


Form1.Check1.Value = 1


End If


Open CurDir$ + "log.dat" For Random As #2 Len = Len(log1)


End Sub


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



При наведении курсора на любую область в рамке помощь появляется подсказка.


Public excelist As New Excel.Application


‘чек


Private Sub Check1_Click()


Dim chk1 As tune


chk1.chekn = " = Check1.value "


chk1.chekv = Check1.Value


Put #1, 1, chk1.chekv


End Sub


'помощьчек


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


Label1.Caption = "Показывать/нет сплэшскрин (информацию о программе) при загрузке базы данных"


End Sub


‘загрузкаформы


Private Sub Form_Load()


Static w As Byte


If w = 0 Then


Set excelist = New Excel.Application


With excelist


Workbooks.Open CurDir$ + "data.dat"


Visible = False


End With


w = 1


End If


Dim chk1 As tune


chk1.chekn = " = Check1.value "


Get #1, 1, chk1


If chk1.chekv = "0" Then


Check1.Value = 0


Else


Check1.Value = 1


End If


End Sub


‘выход


Private Sub Command6_Click()


Dim chk1 As tune


If MsgBox("Выдействительножелаетевыйти ?", vbYesNo, "Базаданныхвидеокарт") = vbYes Then


With excelist.ActiveWorkbook


Save


Close


End With


chk1.chekn = " = Check1.value "


If Check1.Value = 1 Then


chk1.chekv = "1"


Put #1, 1, chk1


Else


chk1.chekv = "0"


Put #1, 1, chk1


End If


Close #1


Close #2


End


End If


End Sub


Окно базы данных:



Здесь также имеется область с подсказками. На рисунке, например, при наведении на область об’екта MSFlexgrid появляется информация о кол-ве видеокарт в базе данных.


‘загрузкаформы


Private Sub Form_Load()


With MSFlexGrid1


TextMatrix(0, 0) = "Модель"


TextMatrix(0, 1) = "Шина AGP"


TextMatrix(0, 2) = "Частотаядра/памяти"


TextMatrix(0, 3) = "Об'ёмпамяти"


TextMatrix(0, 4) = "Типпамяти"


TextMatrix(0, 5) = "Цена"


End With


MSFlexGrid1.ColWidth(0) = 3100


MSFlexGrid1.ColWidth(1) = 990


MSFlexGrid1.ColWidth(2) = 1900


MSFlexGrid1.ColWidth(3) = 1300


MSFlexGrid1.ColWidth(4) = 1100


MSFlexGrid1.ColWidth(5) = 1360


Dim i As Integer


Dim zpust As Integer


Dim k As Integer


k = 1


zpust = Form1.zerocell


For i = 1 To zpust


With Form1.excelist.ActiveWorkbook.ActiveSheet


MSFlexGrid1.TextMatrix(k, 0) = .Cells(i, 1)


MSFlexGrid1.TextMatrix(k, 1) = .Cells(i, 2)


MSFlexGrid1.TextMatrix(k, 2) = .Cells(i, 3)


MSFlexGrid1.TextMatrix(k, 3) = .Cells(i, 4)


MSFlexGrid1.TextMatrix(k, 4) = .Cells(i, 5)


MSFlexGrid1.TextMatrix(k, 5) = .Cells(i, 6)


k = k + 1


End With


Next i


With MSFlexGrid1


Rows = zpust + 1


Col = 0


Sort = 1


Rows = 70


End With


End Sub


‘кол-вовидеокарт


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


Dim zpust As Integer


zpust = Form1.zerocell


Label1.Caption = "Всего в базе данных - " & zpust & " видеокарт"


End Sub


Как уже говорилось ранее в программе предусмотрено ведение истории:



При нажатии на клавишу очистки содержимое файла истории обнуляется.


‘загрузкаформы


Private Sub Form_Load()


With MSFlexGrid1


TextMatrix(0, 0) = "Действие"


TextMatrix(0, 1) = "Модельвидеокарты"


TextMatrix(0, 2) = "Дата"


TextMatrix(0, 3) = "Время"


End With


MSFlexGrid1.ColWidth(0) = 3500


MSFlexGrid1.ColWidth(1) = 3500


MSFlexGrid1.ColWidth(2) = 1385


MSFlexGrid1.ColWidth(3) = 1390


Dim chk1 As tune


Dim log1 As log


Dim X As Integer


Dim Y As Integer


Get #1, 3, chk1.chekv


X = Val(chk1.chekv)


For Y = 1 To X


Get #2, Y, log1


MSFlexGrid1.TextMatrix(Y, 0) = log1.vlog


MSFlexGrid1.TextMatrix(Y, 1) = log1.vname


MSFlexGrid1.TextMatrix(Y, 2) = log1.vdate


MSFlexGrid1.TextMatrix(Y, 3) = log1.vtime


Next Y


End Sub


'очисткалога


Private Sub Command1_Click()


Dim chk1 As tune


Dim log1 As log


Dim s As Integer


Dim r As Integer


Get #1, 3, chk1.chekn


s = Val(chk1.chekn)


For r = 1 To s


Put #2, r, log1


Next r


chk1.chekn = 0


Put #1, 3, chk1.chekn


With MSFlexGrid1


Clear


TextMatrix(0, 0) = "Действие"


TextMatrix(0, 1) = "Модельвидеокарты"


TextMatrix(0, 2) = "Дата"


TextMatrix(0, 3) = "Время"


End With


End Sub


Добавление в базу данных:



Добавление происходит с помощью 4 – х элементов combobox и одного textbox. Если в форму ничего не введено то появляется окно "Введите модель видеокарты".


‘добавление


PrivateSubCommand1_Click()


IfCombo1.Text <> Empty Then


Dim zpust As Byte


zpust = Form1.zerocell


With Form1.excelist.ActiveWorkbook.ActiveSheet


Cells(zpust + 1, 1) = Combo1.Text


Cells(zpust + 1, 2) = Combo2.Text


Cells(zpust + 1, 3) = Combo3.Text


Cells(zpust + 1, 4) = Combo4.Text


Cells(zpust + 1, 5) = Combo5.Text


Cells(zpust + 1, 6) = Text1.Text


End With


Beep


Dim log1 As log


Dim u As Integer


Dim chk1 As tune


log1.vlog = "Добавленавидеокарта "


log1.vdate = Date$


log1.vname = Combo1.Text


log1.vtime = Time$


Get #1, 3, chk1.chekn


u = Val(chk1.chekn) + 1


chk1.chekn = u


Put #1, 3, chk1.chekn


Put #2, u, log1


Combo1.Text = ""


Combo2.Text = ""


Combo3.Text = ""


Combo4.Text = ""


Combo5.Text = ""


Text1.Text = ""


Else


MsgBox "Введитемодельвидеокарты"


End If


End Sub


Удаление видеокарты из базы данных:



Форма снабжена элементом checkbox. При установленном флажке, при нажатии на клавишу Удалить появляется окно "Вы действительно желаете удалить данную видеокарту?".


‘удаление


Private Sub Command1_Click()


Dim lab1 As Label


Dim lab2 As Label


If Check1.Value = 1 Then


If MsgBox("Вы действительно желаете удалить данную видеокарту ?", vbYesNo, "База данных видеокарт") = vbYes Then


GoTo lab1


Else: GoTo lab2


End If


Else


GoTo lab1


End If


lab1:


Dim i As Byte


Dim zpust As Byte


zpust = Form1.zerocell


For i = 1 To zpust


If Form1.excelist.ActiveWorkbook.ActiveSheet.Cells(i, 1) = Combo1.Text Then


Form1.excelist.ActiveWorkbook.ActiveSheet.Rows(i).Delete


Beep


Dim log1 As log


Dim u As Integer


Dim chk1 As tune


log1.vlog = "Удаленавидеокарта "


log1.vdate = Date$


log1.vname = Combo1.Text


log1.vtime = Time$


Get #1, 3, chk1.chekn


u = Val(chk1.chekn) + 1


chk1.chekn = u


P

ut #1, 3, chk1.chekn


Put #2, u, log1


GoTo lab2


End If


Next i


MsgBox "Модель не найдена"


lab2:


Combo1.Text = ""


End Sub


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



‘изменение


PrivateSubCommand1_Click()


IfCombo1.Text <> EmptyThen


Dim o As Byte


Dim f As Label


Dim zpust As Byte


zpust = Form1.zerocell


For o = 1 To zpust


If Form1.excelist.ActiveWorkbook.ActiveSheet.Cells(o, 1) = Combo1.Text Then


Form1.excelist.ActiveWorkbook.ActiveSheet.Rows(o).Delete


With Form1.excelist.ActiveWorkbook.ActiveSheet


Cells(o, 1) = Combo1.Text


Cells(o, 2) = Combo2.Text


Cells(o, 3) = Combo3.Text


Cells(o, 4) = Combo4.Text


Cells(o, 5) = Combo5.Text


Cells(o, 6) = Text1.Text


End With


Dim log1 As log


Dim u As Integer


Dim chk1 As tune


log1.vlog = "Измененавидеокарта "


log1.vdate = Date$


log1.vname = Combo1.Text


log1.vtime = Time$


Get #1, 3, chk1.chekn


u = Val(chk1.chekn) + 1


chk1.chekn = u


Put #1, 3, chk1.chekn


Put #2, u, log1


Beep


GoTo f


End If


Next o


Else


MsgBox "Введите модель"


GoTof


EndIf


MsgBox "Модель не найдена"


f:


Combo1.Text = ""


Combo2.Text = ""


Combo3.Text = ""


Combo4.Text = ""


Combo5.Text = ""


Text1.Text = ""


End Sub


Поиск и сортировка:


Осуществляются в одном окне, с помощью элементов optionbutton. Поиск:



Поиск происходит по модели и по цене, в т.ч. в диапазоне цен "от … до", "от … ", "до …". Автоматически происходит сортировка найденных элементов по цене в сторону увеличения.


Сортировка:


Можно выбрать любой параметр сортировки. Она будет произведена в сторону увеличения.



‘загрузкаформы


Private Sub Form_Load()


With MSFlexGrid1


TextMatrix(0, 0) = "Модель"


TextMatrix(0, 1) = "Шина AGP"


TextMatrix(0, 2) = "Частотаядра/памяти"


TextMatrix(0, 3) = "Об'ёмпамяти"


TextMatrix(0, 4) = "Типпамяти"


TextMatrix(0, 5) = "Цена"


End With


MSFlexGrid1.ColWidth(0) = 3100


MSFlexGrid1.ColWidth(1) = 990


MSFlexGrid1.ColWidth(2) = 1900


MSFlexGrid1.ColWidth(3) = 1300


MSFlexGrid1.ColWidth(4) = 1100


MSFlexGrid1.ColWidth(5) = 1360


Dim i As Integer


Dim zpust As Integer


k = 1


zpust = Form1.zerocell


For i = 1 To zpust


With Form1.excelist.ActiveWorkbook.ActiveSheet


MSFlexGrid1.TextMatrix(k, 0) = .Cells(i, 1)


MSFlexGrid1.TextMatrix(k, 1) = .Cells(i, 2)


MSFlexGrid1.TextMatrix(k, 2) = .Cells(i, 3)


MSFlexGrid1.TextMatrix(k, 3) = .Cells(i, 4)


MSFlexGrid1.TextMatrix(k, 4) = .Cells(i, 5)


MSFlexGrid1.TextMatrix(k, 5) = .Cells(i, 6)


k = k + 1


End With


Next i


MSFlexGrid1.Rows = zpust + 1


MSFlexGrid1.Sort = 1


MSFlexGrid1.Rows = 70


End Sub


‘поиск / сортировка


Private Sub Command3_Click()


If e = True Then


Dim zpust As Integer


zpust = Form1.zerocell


Select Case r


Case Is < 6


Dim i As Integer


k = 1


For i = 1 To zpust


With Form1.excelist.ActiveWorkbook.ActiveSheet


MSFlexGrid1.TextMatrix(k, 0) = .Cells(i, 1)


MSFlexGrid1.TextMatrix(k, 1) = .Cells(i, 2)


MSFlexGrid1.TextMatrix(k, 2) = .Cells(i, 3)


MSFlexGrid1.TextMatrix(k, 3) = .Cells(i, 4)


MSFlexGrid1.TextMatrix(k, 4) = .Cells(i, 5)


MSFlexGrid1.TextMatrix(k, 5) = .Cells(i, 6)


k = k + 1


MSFlexGrid1.Rows = MSFlexGrid1.Rows + 1


End With


Next i


With MSFlexGrid1


Rows = zpust + 1


Col = r


Sort = 1


Rows = 70


End With


Case 6


If Combo1.Text <> Empty Then


Dim u As Byte


zpust = Form1.zerocell


k = 1


MSFlexGrid1.Clear


With MSFlexGrid1


TextMatrix(0, 0) = "Модель"


TextMatrix(0, 1) = "Шина AGP"


TextMatrix(0, 2) = "Частотаядра/памяти"


TextMatrix(0, 3) = "Об'ёмпамяти"


TextMatrix(0, 4) = "Типпамяти"


TextMatrix(0, 5) = "Цена"


End With


For u = 1 To zpust


If Form1.excelist.ActiveWorkbook.ActiveSheet.Cells(u, 1) = Combo1.Text Then


With Form1.excelist.ActiveWorkbook.ActiveSheet


MSFlexGrid1.TextMatrix(k, 0) = .Cells(u, 1)


MSFlexGrid1.TextMatrix(k, 1) = .Cells(u, 2)


MSFlexGrid1.TextMatrix(k, 2) = .Cells(u, 3)


MSFlexGrid1.TextMatrix(k, 3) = .Cells(u, 4)


MSFlexGrid1.TextMatrix(k, 4) = .Cells(u, 5)


MSFlexGrid1.TextMatrix(k, 5) = .Cells(u, 6)


k = k + 1


MSFlexGrid1.Rows = MSFlexGrid1.Rows + 1


End With


End If


Next u


If k = 1 Then MsgBox "Модель не найдена"


Else


MsgBox "Введитемодель"


End If


Case 7


If Val(Combo2.Text) < Val(Combo3.Text) Then


MSFlexGrid1.Clear


With MSFlexGrid1


TextMatrix(0, 0) = "Модель"


TextMatrix(0, 1) = "Шина AGP"


TextMatrix(0, 2) = "Частотаядра/памяти"


TextMatrix(0, 3) = "Об'ёмпамяти"


TextMatrix(0, 4) = "Типпамяти"


TextMatrix(0, 5) = "Цена"


End With


Dim j As Integer


k = 1


For j = 1 To zpust


If Val(Form1.excelist.ActiveWorkbook.ActiveSheet.Cells(j, 6)) >= Val(Combo2.Text) And Val(Form1.excelist.ActiveWorkbook.ActiveSheet.Cells(j, 6)) <= Val(Combo3.Text) Then


With Form1.excelist.ActiveWorkbook.ActiveSheet


MSFlexGrid1.TextMatrix(k, 0) = .Cells(j, 1)


MSFlexGrid1.TextMatrix(k, 1) = .Cells(j, 2)


MSFlexGrid1.TextMatrix(k, 2) = .Cells(j, 3)


MSFlexGrid1.TextMatrix(k, 3) = .Cells(j, 4)


MSFlexGrid1.TextMatrix(k, 4) = .Cells(j, 5)


MSFlexGrid1.TextMatrix(k, 5) = .Cells(j, 6)


k = k + 1


End With


End If


Next j


With MSFlexGrid1


Rows = k


Col = 5


Sort = 1


Rows = 70


End With


Else


MsgBox "Неверно задан диапазон"


End If


Case Else


MsgBox "Неудача"


End Select


Option1.Enabled = True


Option2.Enabled = True


Option3.Enabled = True


Option4.Enabled = True


Option5.Enabled = True


Option6.Enabled = True


Option7.Enabled = True


Option8.Enabled = True


Combo1.Enabled = True


Combo2.Enabled = True


Combo3.Enabled = True


Option1.Value = False


Option2.Value = False


Option3.Value = False


Option4.Value = False


Option5.Value = False


Option6.Value = False


Option7.Value = False


Option8.Value = False


Combo1.Text = ""


Combo2.Text = ""


Combo3.Text = ""


Else


MsgBox "Выберитедействие"


End If


e = False


End Sub


В любой момент можно просмотреть информацию о программе:



При нажатии клавиши выход появляется окно "Вы действительно желаете выйти?", при утвердительном ответе программа сохраняет все изменения и закрывается.


Заключение:


Использованные ресурсы:


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


- Microsoft Flex Grid Control 6.0 (SP3)


- Microsoft Windows Common Controls 6.0 (SP4)


ибиблиотеки:


- Visual Basic for Applications


- Visual Basic runtime objects and procedures


- Visual Basic objects and procedures


- Microsoft Excel 10.0 Object Library


Отличительные особенности программы:


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


- База данных имеет кроме файла с информацией о видеокартах (.dat) файлы с произвольным доступом. Файл настроек хранит информацию о положении флажков и количестве действий в истории. Файл истории хранит все сведения истории.


- В программе ведется история добавления, удаления, изменения видеокарт (а также очистки) с точностью до секунд. Её можно просмотреть в любой момент и очистить, если возникнет необходимость.


- Поиск по базе данных ведется по количеству введенных символов. Например если вы ввели "GeF" результатом будут все видеокарты GeForce …


- Существует функция поиска в диапазоне цен:


от …


до …


и от … до …


- Использованы защиты от неверных действий. При выходе, удалении, очистки истории появляется окно подтверждения.


- При оформлении программы использованы изображения реальных видеокарт.


В процессе написания программы мною были освоены азы программирования на VB 6.5. Изучены основные операции функции и процедуры.

Сохранить в соц. сетях:
Обсуждение:
comments powered by Disqus

Название реферата: База данных видеокарт

Слов:2142
Символов:22046
Размер:43.06 Кб.