База данных видеокарт
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. При нажатии курсором в любую область сплэшскрин выгружается и появляется окно основного меню: Программа «База данных видеокарт» (DataBase v.1.02 beta. exe) должна быть написана на языке Visual Basic 6.3. Label1. Caption… Читать ещё >
База данных видеокарт (реферат, курсовая, диплом, контрольная)
Нижегородский Государственный Технический Университет База данных видеокарт Нижний Новгород 2003 г.
Цель работы:
Создание каталога видеокарт. Программа должна уметь: заносить, изменять и удалять видеокарту. Выдавать максимальную и минимальную стоимость видеокарты, в порядке увеличения стоимости.
Программа «База данных видеокарт» (DataBase v.1.02 beta. exe) должна быть написана на языке Visual Basic 6.3.
Составляющие программы:
На рисунке:
— слева — 4 файла программы:
— data. dat — информация о видеокартах (файл Excel (.xls) переименованный в .dat)
— DataBase v.1.02 beta. exe — исполняющий файл программы
— log. dat — история базы данных (файл с произвольным доступом)
— set. ini — файл (с произвольным доступом) для хранения настроек программы
— справа — рабочая папка проекта Работа с программой:
При первой загрузке сразу создаются файл настроек и истории.
Загружается сплэшскрин:
`создание новых типов данных
Private Type tune
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. Если в форму ничего не введено то появляется окно «Введите модель видеокарты» .
`добавление
Private Sub Command1_Click ()
If Combo1. 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
Put #1, 3, chk1. chekn
Put #2, u, log1
GoTo lab2
End If
Next i
MsgBox «Модель не найдена»
lab2:
Combo1.Text = «»
End Sub
Изменение видеокарты происходит с помощью поиска модели видеокарты, если видеокарта не найдена появляется окно «Модель не найдена». Как и в форме добавления есть защита от пустого ввода.
`изменение
Private Sub Command1_Click ()
If Combo1. Text <> Empty Then
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 «Введите модель»
GoTo f
End If
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. Изучены основные операции функции и процедуры.