Private Sub UserForm_activate()



ComboBox1.Clear

ComboBox1.AddItem Sheets(1).Cells(14, 1)

ComboBox1.AddItem Sheets(1).Cells(15, 1)

ComboBox2.Clear

ComboBox2.AddItem Sheets(1).Cells(1, 13)

ComboBox2.AddItem Sheets(1).Cells(2, 13)

ComboBox2.AddItem Sheets(1).Cells(3, 13)

ComboBox2.AddItem Sheets(1).Cells(4, 13)

ComboBox2.AddItem Sheets(1).Cells(5, 13)

ComboBox2.AddItem Sheets(1).Cells(6, 13)

ComboBox2.AddItem Sheets(1).Cells(7, 13)

ComboBox2.AddItem Sheets(1).Cells(8, 13)

ComboBox2.AddItem Sheets(1).Cells(9, 13)

End Sub

 

Private Sub CmdCalc_Click()

Kn = CSng(Cells(3, 2))

Kk = CSng(Cells(4, 2))

dK = CSng(Cells(5, 2))

Io = CSng(Cells(6, 2))

F = CSng(Cells(7, 2))

S = CSng(Cells(8, 2))

V = CSng(Cells(9, 2))

H = CSng(Cells(10, 2))

T = CSng(Cells(11, 2))

k2 = 1

 

If ComboBox1.ListIndex >= 0 Then

Select Case ComboBox1.ListIndex

   Case 0

       k1 = Sheets(1).Cells(14, 2)

   Case 1

       k1 = Sheets(1).Cells(15, 2)

   End Select

Sheets(2).Cells(12, 2) = k1

End If

 

If ComboBox2.ListIndex >= 0 Then

Select Case ComboBox2.ListIndex

   Case 0

       k2 = Sheets(1).Cells(1, 13)

   Case 1

       k2 = Sheets(1).Cells(2, 13)

   Case 2

       k2 = Sheets(1).Cells(3, 13)

   Case 3

       k2 = Sheets(1).Cells(4, 13)

   Case 4

       k2 = Sheets(1).Cells(5, 13)

   Case 5

       k2 = Sheets(1).Cells(6, 13)

   Case 6

       k2 = Sheets(1).Cells(7, 13)

   Case 7

       k2 = Sheets(1).Cells(8, 13)

   Case 8

       k2 = Sheets(1).Cells(9, 13)

   End Select

Sheets(2).Cells(13, 2) = k2

End If

 

   ListBox1.Clear

   ListBox1.AddItem " kQd   g    U    Q  V1 n1"

i = 2

For k = KnToKk Step dK

Qd = k * Sqr(H)

       g = Io * F

 

If Qd< g Then

       Io = CCur(Io - 0.01)

       g = Io * F

Sheets(2).Cells(6, 2) = Io

       U = "Нет"

Else

       U = "Да"

End If

 

       Q = Io * S

       V1 = WorksheetFunction.RoundUp(((k1 * V) / k2), 0)

       n1 = WorksheetFunction.RoundUp((V1 / (Qd * T)), 0)

ListBox1.AddItem CStr(Format(k, "0.00")) & " " &CStr(Format(Qd, "0.00")) & " " &CStr(Format(g, "0.00")) & " " &CStr(U) & " " &CStr(Format(Q, "0.00")) & " " &CStr(Int(V1)) & " " &CStr(n1) & " "

Sheets(2).Cells(i, 4) = k

Sheets(2).Cells(i, 5) = Qd

Sheets(2).Cells(i, 6) = g

Sheets(2).Cells(i, 7) = U

Sheets(2).Cells(i, 8) = Q

Sheets(2).Cells(i, 9) = V1

Sheets(2).Cells(i, 10) = n1

i = i + 1

Next

End Sub

 

Private Sub CmdClear_Click()

ListBox1.Clear: Range("D2:J12").ClearContents

k = "": Qd = "": g = "": U = "": Q = "": V1 = "": n1 = ""

End Sub

 

Private Sub CmdExit_Click()

End

End Sub


 

ОПИСАНИЕ РАБОТЫ ПРОГРАММЫ

 

Процедура SubUserForm_activate():

Элемент ComboBox образует выпадающее поле со списком.

ComboBox1.Clear- очистка элементов выпадающего поля со списком.

    ComboBox1.AddItemSheets(1).Cells(14, 1) - заполняем элементы управления первого поля с выпадающим списком значениями: Sheets(1) – лист1, Cells(14, 1) - строка 14, столбец 1.

    ComboBox2.AddItemSheets(1).Cells(1, 13) - заполняем элементы управления второго поля с выпадающим списком значениями: Sheets(1) – лист1, Cells(1, 13) - строка 1, столбец 13.

Программный модуль «Расчет».

Процедура SubCmdCalc_Click():

Kn = CSng(Cells(3, 2)) - объявление переменных, функция CSng возвращает значение Expression, преобразованное в числовой длинный тип данных с плавающей запятой обычной точности Singleиз листа1, 3 строка, 2 столбца.

          Альтернативой оператору "If ... End" служит оператор "SelectCase" (с английского "SelectCase" можно перевести как "Выбор Ситуации"), который упрощает восприятие кода "на глаз". И если "If ... End" оператор в каждом своём "ElseIf" вынужден обращаться к проверяемым значениям снова и снова (допустим, выражение каждый раз одинаковое), то "SelectCase" делает это только один раз, что позволяет последнему на больших массивах данных работать быстрее. Этот оператор позволяет удобно задать ветвление программы из одной точки в большое количество веток. То есть в основном применяется при множественных условиях проверки, когда проверяемых условий больше двух.

IfComboBox1.ListIndex>= 0 ThenSelectCaseComboBox1.ListIndex. В случае Case 0 переменной k1 присваивается число с листа1 строка 14 столбец 2. Если Case 1 переменной k1 присваивается число с листа1 строка 15 столбец 2.Sheets(2).Cells(12, 2) = k1 - в лист2 в ячейку строка 12 столбец 2 заносятся данные присвоенные переменной k1.

IfComboBox2.ListIndex>= 0 ThenSelectCaseComboBox2.ListIndex.В случае Case 0 переменной k2 присваивается число с листа1 строка 1 столбец 13. Если Case 1 переменной k2 присваивается число с листа1 строка 2 столбец 13 и так далее до Case 8.

Sheets(2).Cells(13, 2) = k2 - в лист2 в ячейку строка 13 столбец 2 заносятся данные присвоенные переменной k2.

Элемент управления ListBox (Список) предоставляет пользователю выбрать значение из списка данных (один или несколько одновременно). Если число элементов в списке превышает число пунктов, которое список может вывести на экран, то в список автоматически добавляется полоса прокрутки.

Если нет выбранных элементов в списке, то значение свойства ListIndex равно -1. Первый пункт списка имеет значение ListIndexравным 0, а значение свойства ListCount всегда больше на единицу наибольшего значения ListIndex.

Для добавления или удаления пунктов в список программным путем используйте методы AddItem или RemoveItem.

ListBox1.Clear - очистка списка.

ListBox1.AddItem" kQdgUQV1 n1" – вывод на экран названия столбцов.

Fork = KnToKkStepdK - оператор цикла, перебирается значение переменной k от Kn до Kk с шагом dK. Далее производится вычисление Qd и g. Потом следует оператор If, если Qd<g то переменная Io уменьшается на 0,01 и заново вычисляется g, переменная Io выводится Sheets(2).Cells(6, 2) = Io в лист2, строка 6 столбец 2, переменной U присваивается значение «Нет». Если условие Qd<g не соблюдается, то переменной U присваивается значение «Да».

Далее вычисляются Q, V1 и n1. Оператор WorksheetFunction.RoundUp используется для округления результатов вычислений вверх до целого числа.

ListBox1.AddItemCStr(Format(k, "0.00")) & " " &CStr(Format(Qd, "0.00")) & " " &CStr(Format(g, "0.00")) & " " &CStr(U) & " " &CStr(Format(Q, "0.00")) & " " &CStr(Int(V1)) & " " &CStr(n1) & " " - выводит на экран результаты вычислений.

Sheets(2).Cells(i, 4) = k - выводит результаты вычислений в лист2, i-тая строка столбец 4. Переменная i, увеличивается на 1, начиная с 2.

Программный модуль «Очистка».

Процедура SubCmdClear_Click(). При нажатии кнопки «Очистить» очищается окно вывода результатов вычислений ListBox1.Clear и данные в ячейках «D2:J12».

Программный модуль «Выход».

Процедура SubCmdExit_Click(). При нажатии кнопки «Выход» выходим из программы End.

 


 

ЛИСТИНГ РАБОТЫ ПРОГРАММЫ

 

Таблица 5

 

Рисунок 3


 

ЗАКЛЮЧЕНИЕ

 

В ходе выполнения курсового проекта расчета установок пеной низкой и средней кратности я освоил методику расчетов. Кроме этого, мною отработаны навыки использования литературных источников при решении конкретных вопросов проектирования.

В проекте произведен расчет установок пожаротушения пеной низкой и средней кратности с помощью таблицы MSExcel. Также с помощью интегрированной среды разработки приложений на языке VisualBasicforApplicationsбыла написана программа расчета. Были сравнены результаты работы программы и табличного расчета, итоговые расчеты совпали.


 

СПИСОК ИСПОЛЬЗУЕМОЙ ЛИТЕРАТУРЫ

 

1. "Нормы пожарной безопасности. Установки пожаротушения и сигнализации. Нормы и правила проектирования. НПБ 88-2001" (утв. Приказом МВД России от 04.06.2001 N 31)

2. Ситка, И. В., Антонов С. Ю., Митрофанова Т. В. Пожарная тактика : учебно-методическое пособие. – Чебоксары : Чуваш. гос. пед.ун-т, 2015. – 132 с.

3. Теребнёв В. В., Артемьев Н. С., Думилин А. И.. Противопожарная защита и тушение пожаров. Книга 1: Жилые и общественные здания и сооружения. — М.: Пожнаука, 2006.

— 314 с.

4. Теребнев В.В., Артемьев Н.С., Корольченко Д.А., Подгрушный А.В.,
Фомин В.И., Грачев В.А. Промышленные здания и сооружения. Серия «Противопожарная защита и тушение пожаров». Книга 2. - М.: Пожнаука, 2006. - 412 с.


Дата добавления: 2018-05-02; просмотров: 284; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!