Разработка и стандартизация програмных средств и информационных технологий

Заказать уникальную курсовую работу
Тип работы: Курсовая работа
Предмет: Visual Basic
  • 4848 страниц
  • 3 + 3 источника
  • Добавлена 05.05.2008
800 руб.
  • Содержание
  • Часть работы
  • Список литературы
  • Вопросы/Ответы
Фрагмент для ознакомления

В отчёте привести список объектов интерфейса и их назначение.

При нажатии на кнопку cmdGo1 в окне Picture1 рисуется матрица окружностей с радиусом, заданным в тексте программы.
При нажатии на кнопку cmdGo2 в окне Picture2 рисуется матрица окружностей с радиусом, который генерируется с помощью датчика случайных чисел.
При нажатии на кнопку cmdGo1 в окне Picture1 рисуется матрица окружностей с радиусом, выбранным в выпадающем списке Combo1. Метка lblInstruct1 поясняет назначение выпадающего списка.
Добиться работоспособности программы. Привести в отчёте смысл сделанных изменений и код из модуля формы.
В функции Matrix необходимо указать, для каких объектов вызываются методы рисования:
Sub Matrix1()
Form1.Picture1.Cls
Form1.Picture1.Scale (0, 0)-(6, 5)
For i = 1 To 5
For j = 1 To 3
Form1.Picture1.Circle (i, j), 0.35, 0
Next j
Next i
End Sub
Задать радиусу окружностей отрицательное значение. Объяснить результат.
Задавая отрицательное значение радиусу окружностей, получим ошибку во время выполнения подпрограммы Matrix:

Радиус окружности не может быть отрицательным числом.
Задать случайный выбор радиуса в диапазоне от 0,1 до 0,5 при рисовании каждой окружности матрицы (функция Rnd).
radius = Rnd / 2
Добавить на форму комбинированный список ComboBox. Создать в нём список радиусов окружностей. Для очередного построения матрицы окружностей пользователь должен выбирать значение из списка.
radius = Form1.Combo1.Text

Текст программы:

Option Explicit
Private Sub cmdGo1_Click()
Matrix1
End Sub

Private Sub cmdGo2_Click()
Matrix2
End Sub

Private Sub cmdGo3_Click()
Matrix3
End Sub

Sub Matrix1()
Form1.Picture1.Cls
Form1.Picture1.Scale (0, 0)-(6, 5)
For i = 1 To 5
For j = 1 To 3
Form1.Picture1.Circle (i, j), 0.35, 0
Next j
Next i
End Sub

Sub Matrix2()
Form1.Picture2.Cls
Form1.Picture2.Scale (0, 0)-(6, 5)
For i = 1 To 5
For j = 1 To 3
radius = Rnd / 2
Form1.Picture2.Circle (i, j), radius, 0
Next j
Next i
End Sub

Sub Matrix3()
Form1.Picture3.Cls
Form1.Picture3.Scale (0, 0)-(6, 5)
radius = Form1.Combo1.Text
For i = 1 To 5
For j = 1 To 3
Form1.Picture3.Circle (i, j), radius, 0
Next j
Next i
End Sub
Лабораторная работа 2.4. Циклы
Задание 2.4.2. Рисование треугольников
Разработать интерфейс пользователя. Привести в отчёте список объектов интерфейса и их назначение.

При нажатии на кнопку cmdGo в окно Picture1 выводятся треугольники способом, который задан в выпадающем списке Combo1. В текстовом поле txtIn может быть задано количество рядов при выводе треугольников.
Добавить возможность рисования треугольников в столбик (не удаляя предыдущий вариант работы программы). В отчёте описать смысл изменений.
В цикле изменяется координаты y точек, а координаты x для всех треугольников остаются неизменными.
В отчёте привести алгоритм расчёта координат вершин треугольников.
Вычисление координат вершин треугольника пояснено на рисунке:

Координаты x, y верхнего левого угла квадрата, в который вписан треугольник, изменяются в цикле (или изменяется одна из них, а вторая остается постоянной, в зависимости от того, какой способ вывода треугольников выбран). Координаты вершин треугольника вычисляются с использованием x, y как показано на рисунке.
Добавить возможность рисования треугольников матрицей 3 х 3. В отчёте описать смысл изменений.
В цикле изменяются и координата x, и координата y. Это организовано с помощью вложенных циклов.
Изменить программу так, чтобы пользователь мог задавать количество треугольников и способ их вывода (в строку, в столбец или матрицу). В отчёте описать смысл изменений и привести иллюстрации.
Добавлен выпадающий список, в котором можно выбрать способ вывода треугольников. Также добавлено текстовое поле, в котором вводится размер столбца, строки или матрицы.
Примеры вывода треугольников:

Добавить возможность рисования треугольников «треугольником»: в первом ряду – 1 треугольник, во втором – 2 и т. д. Пользователь должен задавать количество рядов фигур. В отчёте описать смысл изменений и иллюстрации результатов.
Во вложенных циклах изменяются и координата x, и координата y, как и в случае матрицы. Отличие состоит в том, что количество изменений координаты x в каждой строке равно номеру строки.
Пример результатов работы:


Текст программы:

Private Sub cmdGo_Click()
Select Case Combo1.ListIndex
Case 0
Row
Case 1
Column
Case 2
Matrix
Case 3
Triangle
End Select

End Sub

Private Sub Form_Load()
Combo1.ListIndex = 0
End Sub


Sub Row()
Form1.Picture1.Cls
n = Val(Form1.txtIn)
Wid = n * 3 + 1
Heig = n * 3 + 1
Form1.Picture1.Scale (0, 0)-(Wid, Heig)
For i = 1 To n
x = i * 3 - 2
y = 1
Form1.Picture1.Line (x, y + 2)-(x + 2, y + 2)
Form1.Picture1.Line -(x + 1, y)
Form1.Picture1.Line -(x, y + 2)
Next i
End Sub

Sub Column()
Form1.Picture1.Cls
n = Val(Form1.txtIn)
Wid = n * 3 + 1
Heig = n * 3 + 1
Form1.Picture1.Scale (0, 0)-(Wid, Heig)
For j = 1 To n
x = 1
y = j * 3 - 2
Form1.Picture1.Line (x, y + 2)-(x + 2, y + 2)
Form1.Picture1.Line -(x + 1, y)
Form1.Picture1.Line -(x, y + 2)
Next j
End Sub

Sub Matrix()
Form1.Picture1.Cls
n = Val(Form1.txtIn)
Wid = n * 3 + 1
Heig = n * 3 + 1
Form1.Picture1.Scale (0, 0)-(Wid, Heig)
For j = 1 To n
For i = 1 To n
x = i * 3 - 2
y = j * 3 - 2
Form1.Picture1.Line (x, y + 2)-(x + 2, y + 2)
Form1.Picture1.Line -(x + 1, y)
Form1.Picture1.Line -(x, y + 2)
Next i
Next j
End Sub

Sub Triangle()
Form1.Picture1.Cls
n = Val(Form1.txtIn)
Wid = n * 3 + 1
Heig = n * 3 + 1
Form1.Picture1.Scale (0, 0)-(Wid, Heig)
For j = 1 To n
For i = 1 To j
x = i * 3 - 2
y = j * 3 - 2
Form1.Picture1.Line (x, y + 2)-(x + 2, y + 2)
Form1.Picture1.Line -(x + 1, y)
Form1.Picture1.Line -(x, y + 2)
Next i
Next j
End Sub
Лабораторная работа 2.4. Циклы
Задание 2.4.2. Рисование графика функции sin
Разработать алгоритм расчёта значений функции в диапазоне изменения аргумента функции (цикл For ... Next). Счётчиком цикла должен являться аргумент t функции. Шаг изменения значения счётчика принять равным 0,01. Полученные значения функции должны сохраняться в массиве. В отчёте привести алгоритм.
В цикле считаем значения функции и кладем их в массив, увеличивая при этом счетчик заполненных элементов массива:
count = 0
For t = -4 * pi To 4 * pi Step 0.01
y(count) = a * Sin(t * freq + phase)
count = count + 1
Next t
Вывести график функции точками (метод .Pset). Значения функции должны браться из массива, в котором они сохранялись. В отчёте привести алгоритм построения графика.
В цикле по аргументу функции t берем элементы заполненного массива значений функции, увеличивая счетчик обработанных элементов массива:
count = 0
For t = -4 * pi To 4 * pi Step 0.01
Form1.Picture1.PSet (t, y(count)), RGB(0, 0, 255)
count = count + 1
Next t
Вывести на рисунок линии масштабной сетки. Расстояние между вертикальными линиями сетки — 1 единица длины, между горизонтальными — 0,1.
Делаем это в двух циклах. В первом изменяется координата x, а координаты у линий остаются неизменными (вертикальные линии сетки). Во втором изменяется координата y, а координаты x линий остаются неизменными (горизонтальные линии сетки). Линии сетки рисуются неярким серым цветом.
Добавить в программу возможность построения графика гиперболы (у = k / х). Обратить внимание на возможное изменение масштаба графического поля (для наглядности изображения графика) и исключение из множества значений аргумента значения x = 0.
Вычисления для гиперболы аналогичны вычислениям для синусоиды. Но все циклы по аргументу функции x разбиваются на 2 цикла. В первом значения аргумента изменяются от -4( до -0,01, а во втором – от 0,01 до 4( (чтобы исключить x = 0 из множества значений аргумента.

Текст программы:

Private Sub cmdGo_Click()
Select Case Combo1.ListIndex
Case 0
Sinusoid
Case 1
Hyperbola
End Select
End Sub

Private Sub Combo1_Click()
Select Case Combo1.ListIndex
Case 0
lblInstruct2.Visible = True
txtIn1.Visible = True
lblInstruct3.Visible = True
txtIn2.Visible = True
lblInstruct4.Visible = True
txtIn3.Visible = True
lblInstruct5.Visible = False
txtIn4.Visible = False
Case 1
lblInstruct2.Visible = False
txtIn1.Visible = False
lblInstruct3.Visible = False
txtIn2.Visible = False
lblInstruct4.Visible = False
txtIn3.Visible = False
lblInstruct5.Visible = True
txtIn4.Visible = True
End Select
End Sub

Private Sub Form_Load()
Combo1.ListIndex = 0
Combo1_Click
End Sub


Option Explicit
Const pi = 3.14
Dim y(8 * pi / 0.01) As Double
Dim count As Integer
Dim t As Double
Dim a As Double
Dim freq As Double
Dim phase As Double
Dim gridX As Single
Dim gridY As Single

Dim k As Single


Sub Sinusoid()
a = Val(Form1.txtIn1.Text)
freq = Val(Form1.txtIn2.Text)
phase = Val(Form1.txtIn3.Text)

'Вычисление значений функции
count = 0
For t = -4 * pi To 4 * pi Step 0.01
y(count) = a * Sin(t * freq + phase)
count = count + 1
Next t

'Очистка PaintBox и масштабирование
Form1.Picture1.Cls
Form1.Picture1.Scale (-4 * pi, a + 0.1)-(4 * pi, -a - 0.1)
Form1.Picture1.DrawWidth = 2
'Рисование точек
count = 0
For t = -4 * pi To 4 * pi Step 0.01
Form1.Picture1.PSet (t, y(count)), RGB(0, 0, 255)
count = count + 1
Next t

'Рисование сетки
Form1.Picture1.DrawWidth = 1
For gridX = -4 * pi To 4 * pi
Form1.Picture1.Line (gridX, -a - 0.1)-(gridX, a + 0.1), RGB(128, 128, 128)
Next gridX
For gridY = -a - 0.1 To a + 0.1 Step 0.1
Form1.Picture1.Line (-4 * pi, gridY)-(4 * pi, gridY), RGB(128, 128, 128)
Next gridY

'Рисование осей
Form1.Picture1.DrawWidth = 2
Form1.Picture1.Line (0, -a - 0.1)-(0, a + 0.1), RGB(128, 128, 128)
Form1.Picture1.Line (-4 * pi, 0)-(4 * pi, 0), RGB(128, 128, 128)
End Sub

Sub Hyperbola()
k = Val(Form1.txtIn4.Text)

'Вычисление значений функции
count = 0
For t = -4 * pi To -0.01 Step 0.01
y(count) = k / t
count = count + 1
Next t
For t = 0.01 To 4 * pi Step 0.01
y(count) = k / t
count = count + 1
Next t

'Очистка PaintBox и масштабирование
Form1.Picture1.Cls
Form1.Picture1.Scale (-4 * pi, k / 0.1 + 0.1)-(4 * pi, -k / 0.1 - 0.1)
Form1.Picture1.DrawWidth = 2
'Рисование точек
count = 0
For t = -4 * pi To -0.01 Step 0.01
Form1.Picture1.PSet (t, y(count)), RGB(0, 0, 255)
count = count + 1
Next t
For t = 0.01 To 4 * pi Step 0.01
Form1.Picture1.PSet (t, y(count)), RGB(0, 0, 255)
count = count + 1
Next t

'Рисование сетки
Form1.Picture1.DrawWidth = 1
For gridX = -4 * pi To 4 * pi
Form1.Picture1.Line (gridX, -k / 0.1 - 0.1)-(gridX, k / 0.1 + 0.1), RGB(128, 128, 128)
Next gridX
For gridY = -k / 0.1 To k / 0.1 Step 5
Form1.Picture1.Line (-4 * pi, gridY)-(4 * pi, gridY), RGB(128, 128, 128)
Next gridY

'Рисование осей
Form1.Picture1.DrawWidth = 2
Form1.Picture1.Line (0, -k / 0.1 - 0.1)-(0, k / 0.1 + 0.1), RGB(128, 128, 128)
Form1.Picture1.Line (-4 * pi, 0)-(4 * pi, 0), RGB(128, 128, 128)
End Sub
Список литературы
Visual Basic 6.0. Серия Мастер. Руководство для профессионалов // СПб.: БХВ-Петербург, 2004 г. 992 с.
А. Ананьев, А. Федоров Самоучитель Visual Basic 6.0 // СПб.: БХВ-Петербург, 2005 г. 624 с.
С.Браун. Visual Basic 6: учебный курс /Пер. с англ. — С-Пб.: "Питер", 1999. — 576 с.,



48

Список литературы
1.Visual Basic 6.0. Серия Мастер. Руководство для профессионалов // СПб.: БХВ-Петербург, 2004 г. 992 с.
2.А. Ананьев, А. Федоров Самоучитель Visual Basic 6.0 // СПб.: БХВ-Петербург, 2005 г. 624 с.
3.С.Браун. Visual Basic 6: учебный курс /Пер. с англ. — С-Пб.: "Питер", 1999. — 576 с.,

Вопрос-ответ:

Какие объекты интерфейса присутствуют в программе?

В программе присутствуют окна Picture1 и Picture2, а также кнопки cmdGo1 и cmdGo2.

Какое назначение объекта Picture1?

Объект Picture1 предназначен для отображения матрицы окружностей с заданным радиусом.

Что происходит при нажатии на кнопку cmdGo1 в окне Picture1?

При нажатии на кнопку cmdGo1 в окне Picture1 рисуется матрица окружностей с радиусом, который задан в тексте программы.

Какое назначение объекта Picture2?

Объект Picture2 предназначен для отображения матрицы окружностей с радиусом, который генерируется с помощью датчика случайных чисел.

Что происходит при нажатии на кнопку cmdGo2 в окне Picture2?

При нажатии на кнопку cmdGo2 в окне Picture2 рисуется матрица окружностей с радиусом, который генерируется с помощью датчика случайных чисел.

Какие объекты интерфейса приведены в программе?

В программе приведены такие объекты интерфейса, как окна Picture1 и Picture2, кнопки cmdGo1 и cmdGo2, а также выпадающий список.

Для чего нужна кнопка cmdGo1?

Кнопка cmdGo1 служит для отрисовки матрицы окружностей с заданным радиусом в окне Picture1.

Как сгенерировать радиус окружности с помощью датчика случайных чисел?

Для генерации радиуса окружности с помощью датчика случайных чисел используется кнопка cmdGo2, при нажатии на которую в окне Picture2 будет отрисована матрица окружностей с случайным радиусом.

Как выбрать радиус окружности в программе?

В программе радиус окружности можно выбрать с помощью выпадающего списка, а затем при нажатии на кнопку cmdGo1 в окне Picture1 будет отрисована матрица окружностей с выбранным радиусом.