Объектно-ориентированный язык программирования Visual Basic. Практикум
.pdfМетод PSet устанавливает цвет отдельного пикселя на экране. Он имеет синтаксис
Object.PSet[Step](x,y),[цвет]
где: Step – ключевое слово, определяющее, что координаты относительно текущей графической позиции;
(x,y) – константы, определяющие координаты для установки цвета; Цвет – значение, определяющее цвет отметки.
3. Порядок проведения работы
Загрузите VB 6.0 (стандартный). Откройте проект.
Впроцедуру обработки события Form_Click поместите программный код, который изображает вложенные друг в друга квадраты разных цветов.
Dim Cx, Cy, Radius, Limit, F1, F1, F2, I ScaleMode = 3
Cx = ScaleWidth/1 Cy = ScaleHeight/2 Drawwidth = 5
For I = 50 To 0 Step -1 For J = 1 To 100000 Next J
F = I/50
F1 = 1 - F : F2 = 1 + F Forecolor = QBColor(I Mod 13)
Line (Cx * F1, Cy * F1) – (Cx * F2, Cy * F2),, BF Next I
Сохраните проект в своей папке, а затем запустите на выполнение клавишей F5. После щелчка по форме программа начнет изображать вложенный друг в друга прямоугольники.
Создайте новый проект.
Впроцедуру обработки Form_Click поместите программный код, который изображает разноцветные концентрические окружности
Dim Cx, Cy, Radius, Limit ScaleMode = 13
Cx = ScaleWidth/2 Cy = Scaleheght/2
If Cx > Cy = 0 Then Limit = Cy Else Limit = Cx
For Radius = 0 To Limit
32
For I = 1 To 10000 Next I
Circle (Cx,Cy), Radius, RGB(Rnd * 255, Rnd * 255, Rnd *255) Next Radius
Сохраните проект в своей папке. А затем запустите на выполнение. После щелчка по форме программа начинает концентрические окружности с разной цветовой гаммой.
Откройте новый проект.
В процедуру обработки Form_Click поместите программный код, который вычисляет значения тригонометрических функций и рисует их графики различными цветами
Dim Pi, Cel, J, Kx, Ky As Double Cx =20
Pi = 3.14
Kx = ScaleWidth/(2 * Pi) Ky = ScaleHeight/2
Line(Cx, Cx) – (Cx, ScaleHeight – Cx)
Line(Cx, ScaleHeight/2) – (ScaleWidth, ScaleHeight/2) For J = 0 To 2 * Pi Step 0.001
Pset(Cx + Kx * J, ScaleHeight/2 – Ky * Sin(J)), QBColor(4)
Pset(Cx + Kx * J, ScaleHeight/2 - Ky * Cos(J)), QBColor(3)
Pset(Cx + Kx * J, ScaleHeight/2 - Ky * Tan(J)), QBColor(2)
Сохраните проект в своей папке, а затем запустите на выполнение. После щелчка по форме программа начинает изображать графики тригонометрических функций.
4.Контрольные вопросы
Скакой целью в проектах VB используются графические изображения? Какие графические методы VB вы знаете?
Как можно заменить во время выполнения программы один растровый
рисунок на другой?
Какие средства графического управления есть в VB 6.0?
33
Практическая работа № 7
Работа с текстовыми файлами
Продолжительность 2 часа
1. Вопросы (задачи), подлежащие исследованию
Изучить возможности VB 6.0 по обработке файла с последовательной организацией данных..
Возможности языка VB 6.0 по обработке файла с прямым доступом.. Файл и его структура, физическая и логическая запись.
Разработать алгоритм решения в соответствии с заданием. Составить программы решения задачи.
2. Краткие теоретические или справочно-информационные материалы
Файлы с последовательным доступом Файлы с последовательным доступом состоят из записей переменной
длины. Они называются файлами с последовательным доступом потому, что могут читаться только с начала по порядку. Запись нельзя прочитать из середины файла. Каждая запись является строкой текста, которая заканчивается специальными символами – разделителями.
Для открытия файла используется оператор Open. Формат оператора
OpenИмя Файла For Режим доступа As # Номер файла Закрытие файла осуществляется с помощью оператора Close Формат оператора
Close [# номер Файла][,# Номер файла]
Для чтении информации из текстового файла можно использовать оператор
Line Input# и Input#.
Формат оператора
Line Input# номер файла, имя переменной
Для выяснения, прочитан ли файл до конца, используется функция EOF. Формат функции
EOF (Номер открытого файла)
Запись в файл последовательного доступа осуществляется оператором
Print# и Write#.
Формат оператора Print#
Print# Номер Файла, [Список вывода]
34
Формат оператора Write#
Write# Номер Файла, [Список Вывода]
Файлы с произвольным доступом.
Файл с произвольным доступом обладает заданной структурой и состоит из записей. Каждая запись в файле имеет определенный размер и номер. Доступ к данным осуществляется именно по номеру записи. Данные из файла такого типа читаются и записываются записями.
Для открытия файла используется оператор Open. Формат оператора
Open Имя Файла [For Random] As# Номер Файла Len = Длина записи
Для записи данных в файл используется оператор Put#. Формат оператора
Put# Номер Файла, [Номер Записи] Переменная
Размер файла определяют с помощью функции LOF. Формат функции
LOF [Номер Открытого Файла]
Для считывания данных из файла используется оператор Get#. Формат оператора Get#
Get# Номер Файла, [Номер Записи] Переменная
3. Порядок проведения работы
Загрузите VB 6.0 (стандартный).
Расположите объекты на форме в соответствии с рисунком.
Последовательный файл
_
Работа с файлом
Окно ввода текста
Пуск
Выход
35
a.
b.
c. Установить для объектов формы основные свойства в соответствии с таблицей.
Объект |
Свойство |
Установленные |
|
|
значения |
|
|
|
Label1 |
Caption |
Работа с файлом |
|
|
|
Label2 |
Caption |
Пусто |
|
|
|
Label3 |
Caption |
Окно ввода текста |
|
|
|
TextBox |
Multiline |
True |
|
Enabled |
False |
|
ScrollBars |
2 – vertical |
|
Text |
Пусто |
|
|
|
Command1 |
Caption |
Пуск |
|
|
|
Command2 |
Caption |
Выход |
|
|
|
d.Щелкните два раза кнопке «Пуск» и выйдите в окно программного кода.
e.Введите программный код процедуры для составления списка студентов конкретной группы путем заполнения файла последовательного доступа.
Private Sub Command_Click( ) Dim S1 As String*22
Dim ZText As String
Number = FreeFile
Open ―D:\Nabor1.txt‖ For output As # Nomber D0
S1 = InputBox(―Введите реквизиты‖, ―Окно ввода‖)
If S1 < > ― ― Then
Print # Number, S1
36
Else
Label2.Caption = ―Пустая строка‖
Exit D0 End If Loop Chose #1
ZText = ― ―
Open ―D:\Nabor1.txt‖ For Input AS # Number
D0 Until EOF (Number)
Line Input # Number, S1
ZText = ZText + S1+ ― ‖ loop
Text1.Text = ZText
Text1.Enable = True End Sub
f. Запустите процедуру на выполнение клавишей F5. g.
Введите в окно сообщения данные и изучите результат вывода данных. Сохраните проект.
Создайте новый проект командой ( Новый – Стандарт ).
h. Расположите объекты на форме в соответствии с рисунком.
Файл прямого доступа
_
Работа с файлом
Старт
Финиш
37
i.
j. Установите для объектов формы основные свойства в соответствии с таблицей.
k.
Объект |
Свойство |
Установленное значение |
|
|
|
Label1 |
Caption |
Работа с файлом |
|
|
|
Text1 |
Text |
Пусто |
|
|
|
Text2 |
Text |
Пусто |
|
|
|
Text3 |
Text |
Пусто |
|
|
|
Command |
Caption |
Старт |
1 |
|
|
|
|
|
Command |
Caption |
Финиш |
2 |
|
|
|
|
|
l.
m.Щелкните по направленной вниз стрелке рядом с кнопкой <Add Form> на панели инструментов. К проекту будет добавлен модуль Module1.
n. В добавленном модуле следует ввести структуру записи
Type recordtype Nam As String*20 Nam1 As String*20 NomGz As String*8 End Type
o.Щелкните два раза по кнопке «старт» и войдите в окно программного
кода.
p.Наберите программный код процедуру заполнения файла прямого доступа записями заданной структуры с последующим чтением записи заданного номера.
Private Sub Command1_Click( ) Dim Rec As recordtype
Dim Nomer As Integer, Nomer1 As Integer Dim RecInt as Integer
Dim NomFile = FreeFile
Open ―D:\File1.txt‖ For Random As # NomFile Len = 48
Nomer = D0
Rec.Nam = InputBox(―Введите реквизит1‖)
Rec.Nam1 = InputBox(―Введите реквизит2‖) Rec.NomGz= InputBox(―Введите реквизит3‖)
38
Put # NomFile, Nomer, Rec
RecInt = MsgBox(―Ввод продолжить? Да или нет.‖, VbQuestion + Vb Yes
No,―Окно‖)
If RecInt = 6 Then
Nomer = Nomer + 1 Else
Exit D0
Next If
Loop
Nomer1 = InputBox(―Введите № записи, которую нужно выдать‖)
If Nomer1 <= Nomer And Nomer1 < > 0 Then Get # NomFile, Nomer1, Rec
Text1.Text = Rec.Nam
Text2.Text = RecNam1
Text3.Text = Rec.NomGz Else
MsgBox(―Запись не найдена, Vb Critical‖,‖Ошибка‖)
End If Exit Sub End Sub
Запустить программу для исполнения клавишей F5.
Ввести в окна сообщения данные и получить результат для вводавывода данных.
Сохраните проект в своей папке.
4.Контрольные вопросы.
Какие операции предусмотрены в VB 6.0 для работы с файлами? В чем отличия файлов прямого и последовательного доступа?
Какие команды используются для записи и чтения в файлах прямого и последовательного доступа?
Как распознать конец файла данных? Как распознать файл на диске?
39
Список литературы
1.Ананьев А., Федоров А. Самоучитель Visual Basic 6.0 -СПб.: БХВПетербург, 2005.
2.Гусева О.Л. Основы программирования Visual Basic. -М.: НГУ, 2004.
3Назаров С.В и др. Программирование на MS Visual Basic. -М.: Финансы
истатистика, 2001.
40
ДЛЯ ЗАМЕТОК
41
