Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Visual Basic.doc
Скачиваний:
24
Добавлен:
21.02.2016
Размер:
15.63 Mб
Скачать

Приклад програми з використанням підпрограм, вікон повідомлень

Як приклад розглядається програма, яка дозволить ввести данні в масив записів з полями для збереження прізвищ та ініціалів співробітників, сум нарахованої заробітної плати. При введенні значень нарахованої заробітної плати програма повинна перевіряти значення і, якщо введено від’ємне число видавати повідомлення та знищувати уміст текстового поля. Командами меню Вікно користувач повинен мати змогу Очистити таблицю, підсумок або таблицю і підсумок, завершити роботу програми. Режим меню Розрахунок дає змогу визначити суму нарахування з фонду заробітної плати у пенсійний фонд (32% від загальної суми нарахувань), у фонд соціального страхування (4,4% від загальної суми нарахувань), у фонд зайнятості (0,5% від загальної суми нарахувань).

Рисунок 5.1 - Види вікна програми – приклада

На етапі візуальної розробки програми слід створити форму, розташувати на неї елементи управління, визначити їх властивості у відповідності з даними таблиці:

Об’єкт

Властивість

Значення

Форма (Form)

Name

frmMain

Caption

Виплати з фонду заробітної плати

Font

Times New Roman, 12 п., напівжирний

Етикетка (Label)

Name

lblZag

Caption

Введіть дані для розрахунку:

Font

курсив

Етикетка (Label)

Name

lblNamе

Caption

П І Б

Етикетка (Label)

Name

lblN

Caption

Нараховано

Етикетка (Label)

Name

lblRez

Caption

“_”

Масив текстових полів (TextBox)

Name

txtName(04)

Text

“_”

Index

04

Масив текстових полів (TextBox)

Name

txtN(04)

Text

“_”

Index

04

Далі слід розчинити вікно редактору меню командою ToolsMenu Editor, створити таке меню програми:

Caption

Name

Структура меню

Вікно

mnuWind

Вікно

Очистка

mnuClear

. . . .Очистка

таблиця

mnuTabl

. . . . . . . . таблиця

підсумок

mnuPid

. . . . . . . . підсумок

таблиця та підсумок

mnuTablPid

. . . . . . . . таблиця та підсумок

Вихід

mnuExit

. . . .Вихід

Розрахунок

mnuRoz

Розрахунок

Пенсійний фонд

mnuPF

. . . .Пенсійний фонд

Фонд соціального страхування

mnuSS

. . . .Фонд соціального страхування

Фонд зайнятості

mnuFZ

. . . .Фонд зайнятості

Щоб накопичити дані в масиві, організувати перевірку даних, що вводяться, на невід’ємність, масив слід оголосити, створити таку процедуру.

Дані в рядку коду

Коментар

Dim Z(5)

Оголошення в розділі General Declaration масиву Z, у якому 5 елементів.

Private Sub txtN_Change(Index As Integer)

Заголовок процедури, яка виконується коли зміниться вміст будь-якого елементу масиву txtN, відбудеться подія Change. Процедура приймає значення 1-го параметра – значення властивості Index конкретного елементу, що змінився.

If Val(txtN(Index).Text) < 0 Then

Якщо властивість Text елементу масиву txtN з індексом Index менш ніж 0, то

Povid Index

виконується процедура Povid, яка приймає значення змінної Index як фактичний параметр

Else

інакше

Z(Index) = Val(txtN(Index).Text)

у відповідний елемент масиву змінних Z записується значення нарахованої заробітної плати співробітникові, яке попередньо перетворюється функцією Val на числове

End If

Кінець оператору If

End Sub

Кінець процедури

Для створення нової процедури Povid, яка повинна виводити повідомлення у випадку, якщо в полі нарахувань введено від’ємне число, слід перебуваючи у вікні коду виконати команду меню ToolsAdd Procedure. У вікні діалогу треба ввести ім’я процедури, обрати перемикачі Sub, Public. До коду програми буде добавлено заголовок і останній рядок процедури, далі слід визначити параметри процедури і її вміст як у таблиці:

Дані в рядку коду

Коментар

Public Sub Povid(I As Integer)

Параметром процедури є змінна I типу Integer

MsgBox "У чарунку введено від’ємне значення!", 0 + 64, "Увага!"

Оператором MsgBox виводиться таке вікно повідомлення:

txtN(I).Text = " "

Після натиснення на кнопці Ок буде знищено вміст елементу масиву тестових полів txtN з індексом, який буде прийнято як фактичний параметр процедури

End Sub

Кінець процедури

Наступним кроком створення програми може бути створення процедур, які пов’язані з командами режиму меню ВікноОчистити: таблицю, підсумок або таблицю і підсумок, Вихід.

Дані в рядку коду

Коментар

Private Sub mnuExit_Click()

Процедура завершує роботу програми, якщо в меню обрано команду Вихід.

End

End Sub

Public Sub ClearTabl()

Заголовок процедури ClearTabl, яку слід створити для знищення вмісту елементів масивів текстових полів командою ToolsAdd Procedure.

For I = 0 To 4

Для і, що змінюється від 0 до 4

Z(I) = 0

елементу масиву змінних Z привласнюється значення 0

txtName(I).Text = " "

уміст і-го елементу текстових полів txtName для введення ПІП знищується

txtN(I).Text = " "

уміст і-го елементу текстових полів txtN для введення нарахованих сум заробітної плати знищується

Next

Кінець циклу

End Sub

Кінець процедури

Public Sub ClearlPid()

Заголовок процедури ClearlPid, яку слід створити для знищення вмісту етикетки для виведення результатів командою ToolsAdd Procedure.

lblRez.Caption = " "

Знищення вмісту етикетки lblRez.

End Sub

Кінець процедури

Private Sub mnuTabl_Click()

Процедура, яку буде виконано, якщо в меню обрано команду ВікноОчистититаблицю.

ClearTabl

Виклик процедури ClearTabl для знищення вмісту таблиці.

End Sub

Кінець процедури

Private Sub mnuPid_Click()

Процедура, яку буде виконано, якщо в меню обрано команду ВікноОчиститипідсумок.

ClealPid

Виклик процедури ClealPid для знищення вмісту етикетки з підсумком.

End Sub

Кінець процедури

Private Sub mnuTablPid_Click()

Процедура, яку буде виконано, якщо в меню обрано команду ВікноОчистититаблицю і підсумок.

ClearTabl

Виклик процедури ClearTabl для знищення вмісту таблиці.

ClealPid

Виклик процедури ClealPid для знищення вмісту етикетки з підсумком.

End Sub

Кінець процедури

Для виконання розрахунків пропонується створити функцію RozSum командою меню Tools – Add Procedure, у вікні діалогу команди слід ввести ім’я функції, обрати перемикачі Function, Public. Далі треба створити коди процедур, які пов’язані з командами режиму Розрахунок.

Дані в рядку коду

Коментар

Public Function RozSum(V As Single)

Функція RozSum приймає один параметр – число типу Single, яке буде розміщено в змінній V. Змінна V буде вміщувати відсоток для розрахунку певного виду виплат з фонду соціального страхування.

RozSum = 0

Імені функції привласнюється значення 0.

For I = 0 To 4

Для і, що змінюється від 0 до 4,

RozSum = RozSum + Z(I)

Функції RozSum привласнюється значення – RozSum + значення і-го елементу масиву змінних Z

Next

Кінець циклу.

RozSum = RozSum * V

Імені функції привласнюється значення – RozSum* V.

End Function

Кінець функції.

Private Sub mnuPF_Click()

Процедуру буде виконано, якщо в меню обрано команду РозрахунокПенсійний фонд.

lblRez.Caption = "Нараховано в пенсійний фонд " + Str(RozSum(0.32)) + " грн."

Властивості Caption етикетки для виведення результату lblRez привласнюється результат конкатенації рідка символів "Нараховано в пенсійний фонд "; результату, який повертає функція RozSum(0.32) для аргументу 0,32, що перетворено до символьного типу функцією Str(); рядка символів " грн.".

End Sub

Кінець процедури.

Private Sub mnuSS_Click()

Процедуру буде виконано, якщо в меню обрано команду РозрахунокФонд соціального страхування.

lblRez.Caption = "Нараховано в фонд соціального страхування " + Str(RozSum(0.044)) + " грн."

Властивості Caption етикетки для виведення результату lblRez привласнюється результат конкатенації рідка символів "Нараховано в фонд соціального страхування "; результату, який повертає функція RozSum(0.044) для аргументу 0,044, що перетворено до символьного типу функцією Str(); рядка символів " грн.".

End Sub

Кінець процедури.

Private Sub mnuZan_Click()

Процедуру буде виконано, якщо в меню обрано команду РозрахунокФонд зайнятості.

lblRez.Caption = "Нараховано в фонд зайнятості " + Str(RozSum(0.005)) + " грн."

Властивості Caption етикетки для виведення результату lblRez привласнюється результат конкатенації рідка символів "Нараховано в фонд зайнятості "; результату, який повертає функція RozSum(0.005) для аргументу 0,005, що перетворено до символьного типу функцією Str(); рядка символів " грн.".

End Sub

Кінець процедури.