Студентам > Курсовые > Анализ средствами Visual Basic и Microsoft Access
Анализ средствами Visual Basic и Microsoft AccessСтраница: 2/5
Но может
случиться так, что после запуска пользователь осуществит нажатие один или
несколько раз на элемент Data1
до того, как нажать на командную кнопку.
Это приведет к сбою программы, потому что в данном случае в коде, приведенном
выше, запись, находящаяся в текстовом поле будет восприниматься как первая, а
так как записей всего 32, то это приведет к невозможности завершения цикла.
Чтобы избежать этого, перед данным кодом поместим строку:
Data1.Recordset.MoveFirst
Эта
запись обеспечит передвигание данных в текстовых полях к первой записи перед
выполнением считывания.
Для нахождения средних значений данных за 4-летние периоды, необходимо сумму
значений за каждый год из данного периода разделить на количество лет в
периоде, то есть в данном случае - на 4. Поэтому в процедуру
Command1_Click () введем
следующий код:
j = 1
For i = 1 To 32 Step
4
h(j) = (mas(i) +
mas(i + 1) + mas(i + 2) + mas(i + 3)) / 4
q(j) = (ma(i) + ma(i
+ 1) + ma(i + 2) + ma(i + 3)) / 4
w(j) = (maq(i) +
maq(i + 1) + maq(i + 2) + maq(i + 3)) / 4
p(j) = (maz(i) +
maz(i + 1) + maz(i + 2) + maz(i + 3)) / 4
r(j) = (mar(i) +
mar(i + 1) + mar(i + 2) + mar(i + 3)) / 4
x(j) = (maw(i) +
maw(i + 1) + maw(i + 1) + maw(i + 3)) / 4
j = j + 1
Next i
j – переменная;
массивы h(j), q(j), w(j), p(j),
r(j) и x(j) – соответственно
массивы, содержащие средние значения данных за периоды с 1960 по 1963 год, с
1964 по 1967 год и т. д.
Запись For i = 1 To 32 Step 4 означает, что в каждый последующий
массив ввод данных будет производиться с элемента, номер которого на 4 больше
номера первого элемента предшествующего массива, то есть в первый массив – с
первого по четвертый элемент, во второй – с пятого (номер которого на 4 больше
номера первого) по восьмой и т. д. до 32.
После вычисления средних значений данных за 4-летние периоды необходимо, чтобы
пользователь мог увидеть полученные величины. Для этого вставим в форму
элементы управления ListBox, в которых
будут отображаться средние значения данных. Над каждым элементом разместим
метки, содержащие названия данных, отображаемых в данном списке. В итоге
получится шесть списков, над каждым из которых имеется метка с названием. Для
вывода средних значений данных из массивов в списки в процедуру
Command1_Click () введем
следующий код:
For i = 1 To 8
List2.List(i - 1) = h(i)
List3.List(i - 1) = q(i)
List4.List(i - 1) = w(i)
List5.List(i - 1) = p(i)
List6.List(i - 1) = r(i)
List7.List(i - 1) = x(i)
Next i
После
запуска программы при нажатии командной кнопки в списках появятся средние
значения данных за 4-летние периоды, начиная с 1960 года.
Согласно
заданию, после рассчета средних значений, необходимо занести их в файл. Для
удобства пользователя сделаем так, чтобы он имел возможность сам выбирать тот
файл, в который будут занесены средние значения. Для этого разместим в первой
форме элементы DriveListBox,
DirListBox и FileListBox, отображающие
соответственно диск, каталог и файл для записи данных. С помощью этих элементов
пользователь после запуска программы выберет файл для записи средних значений
данных. После того, как он сделает это, необходимо произвести запись в файл,
указанный пользователем, средних значений показателей, рассчитанных до этого.
Создадим командную кнопку, при нажатии на которую средние значения записывались
бы в файл. Для нее в окне свойств в графе Caption
установим значение ‘Запись средних значений в файл’. Введем в
процедуру Command2_Click () следующий
код:
Open File1 For Output As #1
For i = 1 To 8
Write #1, h(i), q(i), w(i), p(i), r(i), x(i)
Next i
Close #1
Первая
строка данного кода открывает файл, выбранный пользователем для записи в
элементе FileListBox. А последующие строки записывают в него средние
значения и после окончания записи закрывают файл.
Согласно заданию, следующие операции необходимо производить в другой форме.
Поэтому создаем в проекте еще одну форму, для которой в окне свойств в графе
Caption вводим значение ‘Определение темпов изменения ВВП, периода
max прироста и сост. 50%’. Для того, чтобы во время работы программы можно было
из первой формы перейти ко второй, в первой форме необходимо создать кнопку,
которая обеспечивала бы этот переход. Создав командную кнопку, для нее в окне
свойств в графе Caption установим
значение ‘Кнопка перехода к следующему этапу программы’. Чтобы при нажатии на эту кнопку после
запуска программы осуществлялся переход ко второй форме, необходимо в процедуру
Command3_Click () ввести
следующий код:
Form1.Hide
Form2.Show
Эти команды скроют первую форму и сделают видимой вторую
форму.
Согласно заданию, во второй форме необходимо считать файл со средними
значениями показателей. Для того, чтобы сделать это, надо, чтобы пользователь
указал файл, в который записаны эти данные. Для этого используем элементы DriveListBox, DirListBox и FileListBox. Разместим их во второй форме рядом с меткой,
объясняющей пользователю, что он должен указать файл со средними значениями.
После того, как пользователь сделает это, необходимо считать данные из файла.
Для этого создадим командную кнопку, для которой в окне свойств в графе
Caption введем значение ‘Считывание данных из
файла, определение ВВП и темпов его изменения’. Как видно из названия кнопки, с ее помощью мы будем
определять размер ВВП и находить темпы его изменения, что также требуется в
задании.
Для того, чтобы считать данные из файла, указанного пользователем, необходимо
ввести в процедуру Command1_Click
() следующий код:
Open File1 For Input As #1
For i = 1 To 8
Input #1, a1(i), a2(i), a3(i), a4(i), a5(i), a6(i)
L1.List(i - 1) = a1(i)
Next i
Close #1
Строка L1.List(i - 1) = a1(i) обеспечивает вывод в список, размещенный
во второй форме, значений ВВП.
Согласно заданию, после того, как значения ВВП будут считаны из файла,
необходимо рассчитать темпы изменения ВВП. Чтобы определить темп изменения ВВП
или его прирост, надо из значения ВВП, соответствующего последующему месяцу,
вычесть значение ВВП в предыдущем месяце. Для рассчета темпов изменения ВВП
введем в процедуру Command1_Click ()
следующий код:
j = 1
For i = 1 To 8
t(j) = a1(i + 1) - a1(i)
j = j + 1
Next i
For i = 1 To 7
L2.List(i - 1) = t(i)
Next i
Запись L2.List(i - 1) = t(i) выводит во второй список, размещенный в
форме, данные о приросте ВВП.
Согласно заданию, далее необходимо рассчитать период максимального прироста и
период, дающий 50% прироста ВВП. Чтобы определить, какие это периоды, создадим
во второй форме командную кнопку, для которой в окне свойств в графе
Caption Установим значение ‘Нахождение периода
max
прироста и периода прироста в 50%’. Создадим 2 текстовых поля, первое из которых будет
отображать размер максимального прироста ВВП, а второе – период такого
прироста. Чтобы сделать эти текстовые поля недоступными для ввода информации во
время работы программы, в процедуру Form_Load
введем коды:
T1.Enabled = False
T2.Enabled = False
T1 и
T2 – соответственно
названия первого и второго текстовых полей.
Создадим 2 аналогичных текстовых поля для вывода значений прироста ВВП,
составляющего 50%, и периода с таковым приростом ВВП.
В
процедуру Command2_Click() введем код для нахождения периода и значения
максимального прироста ВВП:
Max = 0
For i = 1 To 7
If t(i) > Max Then
Max = t(i)
p = i
End If
Next i
T1.Text = Max
Эта
часть кода определяет значение максимального прироста и выводит его в первое
текстовое поле. Переменная p является счетчиком, с помощью которого мы определяем
период максимального прироста ВВП:
If p = 1 Then
T2.Text = "1964 - 1967 гг."
End If
If p = 2 Then
T2.Text = "1968 - 1971 гг."
End If
If p = 3 Then
T2.Text = "1972 - 1975 гг."
End If
If p = 4 Then
T2.Text = "1976 - 1979 гг."
End If
If p = 5 Then
T2.Text = "1980 - 1983 гг."
End If
If p = 6 Then
T2.Text = "1984 - 1987 гг."
End If
If p = 7 Then
T2.Text = "1988 - 1991 гг."
End If
Эта
часть кода анализирует значение переменной p и, в
зависимости от ее значения выводит во второе текстовое поле данные о периоде
максимального прироста.
Если прирост ВВП составляет 50%, это означает, что отношение значения ВВП
последующего периода к значению ВВП предыдущего периода составляет 1.5. Поэтому
для определения прироста ВВП в 50% и периода, дающего такой прирост, необходимо
рассчитать отношение прироста ВВП последующего периода к предыдущему по всем
периодам. Чтобы сделать это, введем в процедуру Command2_Click () следующий код:
j = 1
For i = 1 To 8
q(j) = a1(i + 1) / a1(i)
j = j + 1
Next i
Это
введет в массив q(j) значения
отношений прироста ВВП последующего периода к предыдущему. Для вычисления
значения прироста ВВП, составляющего 50%, введем следующий код:
For i = 1 To 7
If q(i) = 1.5 Then
per = i
T3.Text = q(i)
Else
T3.Text = " ----------------------------"
T4.Text = "НЕТ"
End If
Next i
В
данном коде переменная per является счетчиком, который позволит определить период
прироста ВВП в 50%. Эта часть кода позволяет найти значение прироста ВВП в 50%,
если таковое имеется, и вывести его в третье текстовое поле. В противном случае
в третьем текстовом поле появится прочерк, а в четвертом поле, отражающем
период данного прироста, появится надпись “нет”.
Для определения периода, давшего прирост ВВП в 50%, введем следующий код:
If per = 1 Then
T4.Text = "1964 - 1967 гг."
End If
If per = 2 Then
T4.Text = "1968 - 1971 гг."
End If
If per = 3 Then
T4.Text = "1972 - 1975 гг."
End If
If per = 4 Then
T4.Text = "1976 - 1979 гг."
End If
If per = 5 Then
T4.Text = "1980 - 1983 гг."
End If
If per = 6 Then
T4.Text = "1984 - 1987 гг."
End If
If per = 7 Then
T4.Text = "1988 - 1991 гг."
End If
Эта
часть кода определяет и выводит в четвертое текстовое поле период, в котором
прирост ВВП составил 50%.
Согласно заданию, следующая часть работы должна выполняться в другой, третьей
форме. Поэтому во второй форме необходимо создать командную кнопку, позволяющую
перейти к третьей форме после выполнения всех необходимых операций во второй
форме. Сначала создадим еще одну форму в нашем проекте и в окне свойств в графе
Caption установим
для нее значение ‘Сортировка данных по цене на нефть’.
ЗАМЕТИМ, что до того, как все операции во второй форме будут осуществлены,
перейти в третью форму будет невозможным из-за того, что в командные кнопки 1 и
2 введены коды, предусматривающие определенный порядок в использовании кнопок.
Так в процедуру Form_Load
() введен код, делающий недоступными все командные
кнопки:
Command1.Enabled = False
Command2.Enabled = False
Command3.Enabled = False
Для
активизации каждой кнопки необходимо выполнить определенные действия,
предусмотренные программой. Так, например, выбор пользователем файла для записи
средних значений данных делает доступной первую командную кнопку, так как в
процедуру File1_Click () введен
код:
Command1.Enabled = True
После
выполнения операций, предусмотренных кодом первой кнопки, вторая кнопка
становится доступной, так как в процедуру Command1_Click () введен код:
Command2.Enabled = True
И так далее.
Для того, чтобы третья командная кнопка осуществляла переход к третьей форме, в
процедуру Command3_Click () необходимо ввести следующий код:
Form2.Hide
|