- •Содержание
- •Лабораторна робота № 1. Оболонка системи програмування visual basic. Заняття 1
- •1. Запустите Visual Basic и произведите необходимую настройку.
- •2. Задайте различные свойства формы:
- •3. Запустите программу на выполнение.
- •17. Запустите программу на выполнение и проверьте ее работу.
- •20. Сохраните проект на рабочем диске.
- •Лабораторна робота № 1.Этапи розробки windows-додатків в середовищі програмування visual basic (на прикладі створення простого додатку). Заняття 2.
- •1. Постановка задачи
- •3. Напишите программные коды
- •4. Отладьте6 программу
- •Завдання до самостійної роботи № 1 (в,лс,вс).
- •I. Содержательная постановка задачи.
- •II. Математическая постановка задачи.
- •III. Разработка пользовательского интерфейса.
- •Лабораторна робота № 2. Дані в visual basic. Типи даних.
- •Завдання на самостійну (в) й практичну роботу (вс, лс)
- •Лабораторна робота № 3. Область видимості змінної.
- •ИмяФормы. ИмяПеременной
- •Лабораторна робота № 4. Арифметичні вырази й вбудовані функції visual basic
- •Лабораторная работа № 5. Введення-виведення даних. Функція inputbox и msgbox. Вікно й функція inputbox.
- •Лабораторна робота №6. Проектування додатків vb6, що містять лінійні алгоритмічні структури
- •Завдання на самостійну роботу(в,вс,лс)
- •Лабораторна робота № 7. Проектування додатків vb6, що містять галужені алгоритмічні структури. Заняття 1
- •Завдання на самостійну (в) й практичну роботу (вс, лс)
- •Лабораторна робота 7. Проектування додатків vb6, що містять галужені алгоритмічні структури. Заняття 2
- •Завдання на самостійну роботу(в,вс,лс)
- •Лабораторна робота №8. Проектування додатків vb6, що містять циклічні алгоритмічні структури. Заняття 1. Цикли з лічильником
- •Завдання на самостійну роботу(в,вс,лс)
- •Лабораторна робота №8. Проектування додатків vb6, що містять циклічні алгоритмічні структури. Заняття 2. Цикли з умовою
- •Завдання на самостійну роботу(в,вс,лс)
- •Завдання на практичну роботу (вс,лс)
- •Лабораторна робота №9. Проектування додатків vb6, що містять вкладені циклічні алгоритмічні структури. Заняття 1.
- •Завдання на самостійну роботу(в,вс,лс)
- •Лабораторна робота №9. Проектування додатків vb6, що містять вкладені циклічні алгоритмічні структури. Заняття 2
- •Завдання на самостійну роботу(в,вс,лс)
- •Лабораторна робота №10. Проектування додатків vb6, у яких дані організовані у вигляді одновимірних масивів. Заняття 1.
- •Завдання на самостійну роботу(в,вс,лс)
- •Лабораторна робота №10. Проектування додатків vb6, у яких дані організовані у вигляді одновимірних масивів. Заняття 2
- •Завдання на самостійну (в) й практичну роботу (вс,лс)
- •Завдання на самостійну роботу(в,вс,лс)
- •Лабораторна робота №10. Проектування додатків vb6, у яких дані організовані у вигляді одновимірних масивів. Заняття 3. Сортування елементів масиву. Обмін значеннями.
- •Ilорядок действий
- •Завдання на самостійну роботу(в,вс,лс)
- •Завдання на практичну роботу(вс,лс)
- •Лабораторна робота №11. Проектування додатків vb6, у яких дані організовані у вигляді двовимірних масивів
- •Завдання на самостійну роботу(в, вс,лс)
- •Завдання на практичну роботу (вс,лс)
- •Завдання на самостійну роботу(вс,лс)
- •Лабораторна робота №12. Проектування додатків vb6, у яких дані організовані у вигляді структур. Користувальницький тип даних.
- •VbExclamation, "Столько друзей не бывает"
- •VbExclamation, "Поиск не дал результатов"
- •VbExclamation, "Поиск не дал результатов"
- •Мid(Друзья(j).BirthDay, 4, 2) завдання на самостійну роботу(в,вс,лс)
- •Лабораторна робота №13. Модульне програмування. Заняття 1.
- •Завдання на самостійну (в) та практичну роботу (вс,лс) завдання с13.4
- •Лабораторна робота №13. Модульне програмування. Заняття 2
- •InputВох("Задайте любой вопрос", "????")
- •Завдання на самостійну (в) й практичну роботу (вс,лс)
- •Лабораторна робота № 14. Налагодження програм
- •Лабораторна робота № 15. Обробка символьної інформації.
- •Завдання на самостійну роботу(в,вс,лс)
- •Контрольний опрос на практичному занятті (Лс,Вс).
- •Лабораторна робота № 16. Проектування додатків vb6, у яких дані організовані у вигляді файлів на магнітних носіях.
- •Завдання на самостійну роботу(в,вс,лс)
- •Контрольний опрос на практичному занятті (Вс, Лс)
- •Лабораторна робота № 17. Графіка
VbExclamation, "Столько друзей не бывает"
Exit Sub
End If
Друзья(c).Fam = TxtFam.Text
Друзья(c).Name = TxtName.Text
Друзья(c).BirthDay = DTPicker1.Value
Друзья(c).Telephone = Val(TxtTelephone.Text)
c = c + 1
Call formClear
End Sub
Private Sub CmdFind_Click()
Dim j As Integer
Dim flag As Boolean
flag = False
Call formClear
Print "Результат поиска"
Print "======================================="
For j = 1 To c - 1
If TxtFind.Text = Друзья(j).Fam Then
Print Друзья(j).Fam; " "; Друзья(j).Name; " "; _
Друзья(j).BirthDay; " "; Друзья(j).Telephone
flag = True
End If
Next j
If flag = False Then
MsgBox "такой фамилии нет", _
VbExclamation, "Поиск не дал результатов"
Call formClear
TxtFind.Text = ""
End If
End Sub
Private Sub CmdFind1_Click()
Dim j As Integer
Dim flag As Boolean
flag = False
Call formClear
Print "Результат поиска"
Print "======================================="
For j = 1 To c - 1
If TxtFind1.Text = Mid(Друзья(j).BirthDay, 4, 2) _
Then
Print Друзья(j).Fam; " "; Друзья(j).Name; " "; _
Друзья(j).BirthDay; " "; Друзья(j).Telephone
flag = True
End If
Next j
If flag = False Then
MsgBox "такой месяца нет", _
VbExclamation, "Поиск не дал результатов"
Call formClear
TxtFind1.Text = ""
End If
End Sub
Private Sub CmdView_Click()
Dim j As Integer
Call formClear
For j = 1 To c - 1
Print Друзья(j).Fam; " "; Друзья(j).Name; " "; _
Друзья(j).BirthDay; " "; Друзья(j).Telephone
Next j
End Sub
Private Sub Form_Load()
c = 1
Call formClear
End Sub
Private Sub formClear()
FrmДрузья.Cls
TxtFam.Text = ""
TxtName.Text = ""
DTPicker1.Value = Date
TxtTelephone.Text = ""
End Sub
8. Пpoвepьтe, как работает проект.
9. Сохраните проект в папке ЛАБ12 под именем Лр12_Зад1_Фамилия.
Замечание Главный недостаток созданного вами проекта состоит в том, что ваша записная книжка существует на сеанс работы. При каждом новом запуске программы придется вводить все данные заново. Этот недостаток можно устранить, познакомившись с возможностью сохранения данных в файлах.
Ограничение объема записной книжки связано с тем, что вывод информации производится на форму. Для вывода большого объема информации можно использовать текстовое поле. Какие свойства текстового поля нужно для этого установить, Вы должны знать. Однако для этой цели можно использовать новый объект — ListView (Обзор списка).
10. Дополнить проект возможностью вывода списка всех друзей, родившихся в заданном месяце.
Рекомендация. Для выделения номера месяца из даты используйте функцию Mid:
Мid(Друзья(j).BirthDay, 4, 2) завдання на самостійну роботу(в,вс,лс)
Массив объектов. Вы уже использовали массив объектов в л.р.8 Вспомните, что массив объектов — это группа объектов, имеющих одинаковое имя (свойство Name), тип и общую процедуру обработки. В массив может входить до 32768 объектов. Порядковый номер элемента называется индексом и записывается в скобках сразу после имени массива. Объекты, входящие в массив, имеют свойство lndex. Это свойство равно порядковому номеру элемента массива. Использование массивов объектов часто позволяет значительно упростить программный код.
ЗАВДАННЯ 12.2. Постановка задачи: СОЗДАТЬ ПРИЛОЖЕНИЕ — КАЛЬКУЛЯТОР. В ОТЛИЧИЕ ОТ КАЛЬКУЛЯТОРА, СОЗДАННОГО В Л.Р.4, ДАННЫЙ КАЛЬКУЛЯТОР ДОЛЖЕН ИМЕТЬ ОДНО ПОЛЕ ДЛЯ ВВОДА ЧИСЕЛ И ВЫДАЧИ РЕЗУЛЬТАТА (РИС. 12.7). ТЕКСТОВОЕ ПОЛЕ ДОЛЖНО БЫТЬ ЗАБЛОКИРОВАНО ДЛЯ ВВОДА ТЕКСТА И НЕПРАВИЛЬНОГО НАБОРА ЧИСЕЛ.
Рис 12.7
Замечание Ранее Вы уже создавали калькулятор. Единственная цель данного проекта — показать, что использование массива объектов позволяет значительно сократить программный код. Для усложнения задания в проекте предложено сделать одно поле (как у настоящего калькулятора) и установить защиту от ввода текста и неправильного набора чисел в текстовом поле.
Напомним, что процедуры выполнения арифметических операций выглядят так:
Private Sub cmdPlus_ Click()
X= Val(txtX.Text)
Y=Val(txtY.Text)
Rezult = Х + Y
txtRezult.Text = Str(Rezult)
End Sub
Private Sub cmdMinus_ Click()
Х = Val(txtX.Text)
Y = Val(txtY.Text)
Rezult = Х – Y
txtRezult.Text = Str(Rezult)
End Sub
В процедурах, которые выполняются при щелчке по кнопкам <+>, <->, <*> и по другим кнопкам, большая часть кода одинакова, отличается лишь одна строка. Зададимся целью минимизировать программный код, используя массив командных кнопок. Если увеличить количество выполняемых операций (добавить кнопки), то эффект от использования массива будет более значительным. При этом можно использовать проект, выполненный в Л Р.4 или создать новый.
Порядок действий
1. Разместите на форме объекты в соответствии с тем, как показано на рис. 12.7.
2. Установите значения свойства Name для текстового поля txtRezult.
3. Установите значения свойства Name для кнопок < = > и <СЕ> — cmdRavno и cmdCE соответственно.
4. Установите значения свойства Name для всех остальных командных кнопок — cmd. Они образуют массив объектов. Значение свойства Index — от 0 до 4 в порядке расположения.
5. Установите значения свойства Caption для формы и кнопок в соответствии с рис. 12.7.
6. Внимательно проанализируйте представленный ниже программный код, а затем наберите его.
Option Explicit
Dim х As Single, у As Single '1-e и 2-е число
Dim RezuIt As Single 'Результат
Dim t As Integer 'Переменная хранит номер(индекс) нажатой кнопки
Private Sub cmd_Click(index As Integer)
t = index
х = Val(txtRezult.Text)
txtRezult.Text = ""
txtRezult.SetFocus
End Sub
Private Sub cmdCE_Click()
txtRezult.Text = ""
txtRezult.SetFocus
End Sub
Private Sub cmdRavno_Click()
RezuIt = 0
Select Case t
Case 0 ' Щелкнуть по кнопке < + > (ее номер в массиве равен 0)
RezuIt = х + у
Case 1 ' Щелкнуть по кнопке < - > (ее номер в массиве равен 1)
RezuIt = х - у
Case 2 ' Щелкнуть по кнопке < * > (ее номер в массиве равен 2)
RezuIt = х * у
Case 3 ' Щелкнуть по кнопке < / > (ее номер в массиве равен 3)
If у <> 0 Then
RezuIt = х / у
txtRezult.Text = Str(RezuIt)
Else
txtRezult.Text = "Error! Division by zero"
End If
Case 4 ' Щелкнуть по кнопке < ^ > (ее номер в массиве равен 4)
RezuIt = х ^ у
End Select
If t <> 3 Then txtRezult.Text = Str(RezuIt)
End Sub
Private Sub txtRezult_Change()
у = Val(txtRezult.Text)
End Sub
7. Напишите процедуру, которая контролирует, какие клавиши нажимаются при вводе информации в текстовое поле и блокирует ввод текста при неправильном наборе чисел (проверяются ASCII-коды нажатых клавиш). Проанализируите, а затем наберите представленный ниже код процедуры.
Private Sub txtRezult_KeyPress(KeyAscii As Integer)
Select Case KeyAscii
Case 48 To 57 'Цифры
Case 8 'Backspace
Case 46 'Десятичная точка
If InStr(txtRezu1t.Text, ".") <> 0 Then 'Если точка уже присутствует в поле, то еще одну поставить нельзя
KeyAscii = 0
t = 2 + 16 'Кнопки Прервать, Повторить, Пропустить и_ пиктограмма Critical Message
MsgBox " Точка уже присутствует в поле — еще одну поставить_ нельзя!", t, "Ошибка!!"End If
Case 45 ' Знак минус
If txtRezult.SelStart<> 0 Or InStr(txtRezult.Text, "-") <> 0 Then ' Минус можно поставить только перед числом и только один
KeyAscii = 0
t = 2 + 16 'Кнопки Прервать, Повторить, Пропустить и
_ пиктограмма Critical Message
MsgBox " Минус можно поставить только перед числом и_
только один!", t, "Ошибка!!"
End If
Case Else
KeyAscii = 0
t = 2 + 16 'Кнопки Прервать, Повторить, Пропустить и
_ пиктограмма Critical Message
MsgBox " Ошибочный символ!", t, "Ошибка!!"
End Select
End Sub
8. Проверьте, как работает калькулятор.
9. Сохраните проект под именем Лр12_Зад2_Фамилия
