Задание 3.
В соответствии с вариантом задания разработать пользовательский интерфейс и составить программу в редактореVB MS Excel, с помощью которой осуществляется:
1) ввод исходных данных двумерного массива (ввод наименований в ячейки первого столбца таблицы осуществляется вручную, численные данные массива вводятся через функцию InputBox) и их вывод в виде таблицы на рабочий лист;
2) обработка массива (нахождение суммы, количества элементов и т. п. в зависимости от варианта задания) и вывод ее результатов на тот же рабочий лист.
Пример выполнения задания 3
Известны данные о количестве часов проката каждой из5 различных марок легковых автомобилей3 филиалами фирмы:
Необходимо разработать пользовательский интерфейс и составить программу в редактореVB MS Excel, с помощью которой будет осуществляться:
1. Ввод исходных данных двумерного массива и их вывод в виде таблицы на рабочий лист.
2. Определение:
марки автомобиля, которая по общим часам проката у трех филиалов больше всего уступает другим маркам;
среднего количества часов проката одного автомобиля в центральном филиале, количества марок автомобилей центрального филиала, для которых количество часов проката не превышало найденного среднего показателя, и марок таких автомобилей.
3. Вывод полученных результатов на тот же рабочий лист.
На первом рабочем листеExcel сформируем таблицу и введем названия пяти марок автомобилей. Ниже таблицы разместим три кнопки с помощью соответствующего инструмента панели инструментов
Свойства размещенных на первом листе кнопок представлены в таблице.
Значения количества часов проката будем вводить с помощью функции InputBox и присваивать соответствующим элементам двумерного массива.
Для обработки событий нажатия кнопок «Ввод и вывод данных», «Определить» и «Очистить» введем в модуле «Лист1» следующий код:
Dim KolHour(1 To 10, 1 To 10) As Integer
Dim KM, KF, i, j As Integer
Private Sub inputOutputData_Click()
KM = Val(InputBox("Введите количество марок легковых автомобилей",
"Ввод данных"))
KF = Val(InputBox("Введите число филиалов фирмы", "Ввод данных"))
For i = 1 To KM
For j = 1 To KF
KolHour(i, j) = Val(InputBox("Введите количество часов проката " &
Cells(i + 2, 1) & " " & Cells(2, j + 1), "Ввод данных"))
Cells(i+2, j+1) = KolHour(i, j) ‘вывод элементов массива на лист
Next j
Next i
End Sub
Private Sub calc_Click()
Dim sH, minS, minMarka, k As Integer
Dim stroka As String
minS = 32000
For i = 1 To KM
sH = 0
For j = 1 To KF
sH = sH+KolHour(i, j) ‘нахождение суммы часов проката каждой марки
Next j
If sH < minS Then minS = sH: minMarka = i ‘поиск минимальной из этих сумм
Next i
MsgBox "Марка автомобиля, уступающая остальным маркам по часам проката
у трех филиалов, – " & Cells(minMarka + 2, 1)
‘нахождение суммы часов проката по центральному филиалу
sH = 0
For i = 1 To KM
sH = sH + KolHour(i, 2)
Next i
MsgBox "Среднее количество часов проката одного автомобиля в централь-
ном филиале составляет " & Str(Round(sH / KM, 2))
‘поиск количества марок авто и их наименований с часами проката, не выше
‘среднего по центральному филиалу
k = 0
stroka = ""
For i = 1 To KM
If KolHour(i, 2) <= sH / KM Then
k = k + 1
stroka = stroka + Cells(i + 2, 1) + " "
End If
Next i
MsgBox "Количество марок автомобилей центрального филиала, у которых
количество часов проката не превышает среднее, " & Str(k) & ", а марки: "
& stroka
Cells(KM + 3, 1) = "Марка авто" ‘вывод результатов на лист
Cells(KM + 3, 2) = Cells(minMarka + 2, 1)
Cells(KM + 4, 1) = "Среднее кол-во часов проката"
Cells(KM + 4, 3) = sH / KM
Cells(KM + 5, 1) = "Количество марок"
Cells(KM + 5, 3) = k
Cells(KM + 6, 1) = "Марки:"
Cells(KM + 6, 3) = stroka
End Sub
Private Sub clean_Click()
For i = 1 To KM + 4
For j = 1 To KF
Cells(i + 2, j + 1).ClearContents
Next j
Cells(i + KM + 2, 1).ClearContents
Next i
End Sub
Результат нажатия кнопок «Ввод и вывод данных» и «Определить»
После того, как вся работа будет оформлена, необходимо в конце привести список литературы и содержание.
В списке литературы указать не менее 5 печатных или электронных источников по теме курсовой работы (информатика, MS Word, Ms Excel, VBA). Источники найти самостоятельно и разместить их в виде нумерованного списка.
Содержание сформировать автоматически средствами MS Word.