Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Модуль 1_VBasic

.pdf
Скачиваний:
21
Добавлен:
22.02.2016
Размер:
5.61 Mб
Скачать

This document is created with trial version of Document2PDF Pilot 2.16.100.

Рисунок 9.3 - Вікно програми – приклада роботи з меню, масивами На першому етапі розробки програми слід створити форму, помістити на

неї такі елементи управління:

Об'єкт

Властивість

Значення

1

2

3

Форма (Form)

Name

frmMenu

 

Caption

Робота з меню, масивами

 

BackColor

білий

Етикетка (Label)

Name

lblZag

 

Caption

Відомість реалізації товарів

 

BackColor

білий

 

Font

14 пунктів, напівжирний курсив

 

AutoSize

True

Етикетка (Label)

Name

lblZ

 

Caption

Найменування

 

BackColor

білий

 

Font

12 пунктів, напівжирний

 

Alignment

2 - Center

 

BorderStyle

1 – Fixed Single

Далі слі д клацнути на етикетці lblZ, скопіювати її в буфер обміну, виконати операцію вставки даних з буферу, на запитання системи відповісти Так. Етикетка lblZ після цієї операції стає об’єктом lblZ(0), тому що властивість Index елемента управління прийме значення 0. Новий об’єктом, який отримано з буферу обміну, буде мати ім’я lblZ(1), його властивість Index буде мати значення 1. Цю етикетку слід перетягти у відповідне місце,

встановити значення властивості

Caption Ціна, налаштувати розмір

об’єкта. Аналогічним ч ином слід створити об’єкти

lblZ(2) - Кількість,

lblZ(3) Сума. Таким чином, ств

орено масив етикеток lblZ, у якому

міститься 4 елемента.

 

 

Після створення шапки документу аналогічним чином слід створити масиви текстових полів для введення даних у таблицю.

1. Створити поле txtN для введення найменування товару з такими властивостями:

Властивість визначає, що об’єкт буде в рамці

This document is created with trial version of Document2PDF Pilot 2.16.100.

Текстове поле

 

Name

txtN

(Text Box)

 

Text

ëû

 

 

Font

12 пунктів, напівжирний

 

 

BorderStyle

1 – Fixed Single

2.

Скопіювати

поле txtN у буфер обміну, вставити текстове поле з

буферу 5 разів, пересвідчитись у правильності імен об’єктів: txtN(0), txtN(1), txtN(2), txtN(3), txtN(4), txtN(5). Створено масив текстових полів txtN, що

нараховує 6 елементів.

 

3.

Створити поле txtС для введення ціни товару з такими

властивостями:

 

Текстове поле

 

Name

txtС

(Text Box)

 

Text

ëû

 

 

Font

12 пунктів, напівжирний

 

 

BorderStyle

1 – Fixed Single

4.

Скопіювати

поле txtС у буфер обміну, вставити текстове поле з

буферу 5 разів, пересвідчитись у правильності імен об’єктів: txtС(0), txtС(1), txtС(2), txtС(3), txtС(4), txtС(5). Створено масив текстових полів txtС, у якому

є 6 елементів.

 

5.

Створити поле txtК для введення ціни товару з такими

властивостями:

 

Текстове поле

 

Name

txtК

(Text Box)

 

Text

ëû

 

 

Font

12 пунктів, напівжирний

 

 

BorderStyle

1 – Fixed Single

6.

Скопіювати

поле txtК у буфер обміну, вставити текстове поле з

буферу 5 разів, пересвідчитись у правильності імен об’єктів: txtК(0), txtК(1), txtК(2), txtК(3), txtК(4), txtК(5). Створено масив текстових полів txtК, що

нараховує 6 елементів.

 

7.

Створити поле txtS для виведення вартості товару з такими

властивостями:

 

 

 

 

 

Текстове поле

 

Name

txtS

(Text Box)

 

Text

ëû

 

 

Font

12 пунктів, напівжирний

 

 

BorderStyle

1 – Fixed Single

 

 

Enabled

False

8.

Скопіювати

поле txtS у буфер обміну, вставити текстове поле з

буферу 5 разів, пересвідчитись у правильності імен об’єктів: txtS(0), txtS(1), txtS(2), txtS(3), txtS(4), txtS(5). Створено масив текстових полів txtS.

Додати до форми такі етикетки для виведення підсумкових значень:

Об'єкт

Властивість

Значення

Етикетка (Label)

Name

lblPid

 

Caption

ëû

 

BackColor

білий

 

Font

12 пунктів, напівжирний курсив

Етикетка (Label)

Name

lblSC

 

Caption

ëû

 

BackColor

білий

 

Font

12 пунктів, напівжирний курсив

Поле можно буде використовувати лише для виведення даних, ввести інформацію неможливо.

This document is created with trial version of Document2PDF Pilot 2.16.100.

Після визначення візуального вигляду форми можна приступити до створення меню. Для цього слід пересвідчитись, що вікно форми є активним, виконати команду Tools Menu Editor, у вікні редактору меню визначити складові елементи меню, їх властивості, рівень підпорядкування як у таблиці. При створенні наступного елемента меню слід використовувати кнопку Next,

для зміни рівня підпорядкування – кнопки , .

Caption

Name

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

Вікно

mnuWind

Вікно

Очистити

mnuClear

. . . . Очистити

Таблицю

mnuTabl

. . . . . . . . Таблицю

Підсумки

mnuPid

. . . . . . . . Підсумки

Вихід

mnuExit

. . . . Вихід

Розрахунок

mnuRoz

Розрахунок

Сума

mnuRSum

. . . . Сума

Підсумок

mnuRPid

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

Середня ціна

mnuRSC

. . . . Середня ціна

Далі можна починати розробку коду програми. Щоб створити процедуру, пов’язану з режимом меню, слід у вікні форми обрати відповідний режим у меню, клацнути на ньому лівою кнопкою миші. В наслідок цих дій відчиняєт ься вікно коду з заголовком процедури, ім’я якої складається з імені пункту м еню, знака підкреслення і назви події Click – процедуру буде виконано, якщо під час роботи програми клацнути на пункті меню.

Створимо процедуру для завершення роботи програм:

Private Sub mnuExit_Click()

End

End Sub

Дію програми вже можна перевірити, тобто можна запустити програму на виконання, завершити роботу програми.

Програма повинна працювати таким чином:

1.Після завантаження програми користувач повинен мати змогу ввести дані для розрахунків.

2.У меню Розрахунок активним є лише пункт Сума тому, що при

виконанні розрахунку суми дані про кількість товару в кожному рядку таблиці та суму записуються в масиви змінних Sum, K, в яких по 6 елементів. Обчисленні значення будуть використовуватись для подальших розрахунків. Масиви змінних слід оголосити у розділі General Declaration оператором:

Dim Sum(6), K96)

3. Після розрахунку сум по товарах користувач не повинен мати змогу зм інювати значення текстових полів для введення даних, значення властивості Enabled зміниться на False. У меню команда Розрахунок Сума повинна ст ати неактивною (значення вла стивості Enabled елементу меню зміниться на False), а команди Розрахунок Підсумок, Розрахунок Середня ціна навпаки повинні стати активними.

This document is created with trial version of Document2PDF Pilot 2.16.100.

4. Після очистки полів таблиці текстові поля для введення даних стають доступними, команда меню Розрахунок Сума активною, команди меню Розрахунок Підсумок, Розрахунок Середня ціна неактивними.

Обов’язкові процедури програми повинні бути такими:

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

Коментар

1

2

Dim Sum(6), K(6)

Оголошення масивів Sum(6), K(6).

Private Sub mnuTabl_Click()

Процедура виконується, якщо клацнути на пункті

 

Таблицю в режимі Очистити пункту меню Вікно.

For i = 0 To 5

Змінна циклу і використовується для роботи з

 

індексами елементів масивів, тому вона може

 

змінюватись від 0 до 5.

txtN(i).Text = " "

Властивості Text і-го елемента масиву txtN

txtC(i).Text = " "

привласнюється значення – порожній рядок.

Знищується вміст чергового поля для введення ціни.

txtK(i).Text = " "

Знищується вміст чергового поля для введення

txtS(i).Text = " "

кількості.

Знищується вміст поля для виведення суми.

txtN(i).Enabled = True

Властивості Enabled поля txtN(i) привласнюється

 

значення True, після цього можна буде змінювати

txtC(i).Enabled = True

значення поля за допомогою клавіатури.

Можна змінювати значення елементу масиву для

txtK(i).Enabled = True

введення ціни з використанням клавіатури.

як у попередньому пункті

Next

І привласнюється значення і+1, якщо і менше або

 

рівно 5, починається наступна ітерація циклу, в

 

іншому випадку цикл завершує свою роботу.

mnuRSum.Enabled = True

Команда меню Розрахунок Сума стає активною.

mnuRPid.Enabled = False

Команда меню Розрахунок Підсумок стає

 

неактивною.

mnuRSC.Enabled = False

Команда меню Розрахунок Середня ціна стає

End Sub

неактивною.

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

Private Sub mnuPid_Click()

Заголовок процедури, які буде виконано якщо в

 

меню обрати команду Вікно Очистка

 

Підсумки.

lblPid.Caption = " "

Знищується текст у етикетці lblPid.

lblSC.Caption = " "

Знищується текст у етикетці lblSC.

End Sub

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

Private Sub mnuRSum_Click()

Заголовок процедури, яка пов’язана з командою

For i = 0 To 5

меню Розрахунок Сума.

Для і, що змінюється від 0 до 5 виконується такі дії:

C = Val(txtC(i).Text)

Змінній С привласнюється значення властивості

 

Text чергового елемента масиву txtC(i), яке при

 

цьому перетворюється з числового на текстове.

K(i) = Val(txtK(i).Text)

Елементу масиву змінних K(i) привласнюється

 

значення, яке введено в елемент масиву полів

 

txtK(i).

Sum(i) = K(i) * C

Елементу масиву змінних Sum(i) привласнюється

If Sum(i) <> 0 Then

значення добутку ціни на кількість.

Якщо значення суми, яке отримано, не рівно 0, то

This document is created with trial version of Document2PDF Pilot 2.16.100.

1

2

txtS(i).Text = Str(Sum(i))

виводиться значення суми у елементі масиву

End If

текстових полів txtS(i).

Елемент масиву txtN(i) для введення найменувань

txtN(i).Enabled = False

 

товарів стає недоступним для подальшого

 

редагування.

txtC(i).Enabled = False

Елемент масиву txtC(i) для введення цін товарів

 

стає недоступним для подальшого редагування.

txtK(i).Enabled = False

Елемент масиву txtК(i) для введення кількості стає

 

недоступним для подальшого редагування.

Next

І привласнюється значення і+1, якщо і менше або

 

рівно 5, починається наступна ітерація циклу, в

 

іншому випадку цикл завершує свою роботу.

mnuRSum.Enabled = False

Команда меню Розрахунок Сума стає

 

неактивною.

mnuRPid.Enabled = True

Команда меню Розрахунок Підсумок стає

 

активною.

mnuRSC.Enabled = True

Команда меню Розрахунок Середня ціна стає

End Sub

активною.

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

Private Sub mnuRPid_Click()

Заголовок процедури, яка пов’язана з командою

 

меню Розрахунок Підсумок.

Pid = 0

Змінній Pid для накопичення підсумку надається

 

значення 0.

For i = 0 To 5

Для і від 0 до 5

Pid = Pid + Sum(i)

змінній Pid привласнюється значення – попереднє

 

значення Pid + значення поточного елементу масиву

 

змінних Sum(i), в якому зберігаються розраховані

Next

суми по товарах.

Перехід до наступної ітерації або кінець циклу.

lblPid.Caption = "Підсумок: " +

Друкування результату в етикетці lblPid.

Str(Pid) + " грн."

 

End Sub

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

Private Sub mnuRSC_Click()

Заголовок процедури, яка пов’язана з командою

 

меню Розрахунок Середня ціна.

Pid = 0

Змінній Pid для накопичення підсумку надається

 

значення 0.

Kol = 0

Змінній Kol для накопичення загальної кількості

 

товарів привласнюється значення 0.

For i = 0 To 5

Для і від 0 до 5

Pid = Pid + Sum(i)

змінній Pid привласнюється значення – попереднє

 

значення Pid + значення поточного елементу масиву

 

змінних Sum(i), в якому зберігаються розраховані

 

суми по товарах.

Kol = Kol + K(i)

змінній Kol привласнюється значення – попереднє

 

значення Kol + значення поточного елементу

 

масиву змінних К(i), в якому зберігаються дані про

Next

кількість реалізованих товарів по рядках таблиці.

Перехід до наступної ітерації або кінець циклу.

2
Друкування результату в етикетці lblSC.
Кінець процедури.

This document is created with trial version of Document2PDF Pilot 2.16.100.

1

lblSC.Caption = "Середня ціна: " + Str(Pid / Kol) + " грн."

End Sub

Для того, щоб встановити правильні значення параметрів, які визначають активність команд меню, слід перейти у вікно редактора меню, для елементів меню встановити такі значення властивості Enabled:

для елемента mnuRSum (Розрахунок Сума) – True (включити прапорець, щоб визначити, що пункт меню є активним);

для елемента меню mnuRPid (Розрахунок Підсумок) – False

(виключити прапорець, режим меню є неактивни м, оскільки щоб підрахувати підсумки, слід спочатку обчислити суми реалізації товарів);

∙ для елемента mnuRSC (Розрахунок Середня ціна) – False.

Після введення програмного коду програма виконує всі необхідні функції, може бути апробована.

Щоб розширити м ожливості програми за бажанням можна додати ще один режим меню Параметри. Для цього треба активізувати форму, перейти до редактору меню командою Tools Menu Editor, у вікні редактору додати до меню такі елементи:

Caption

Name

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

Параметри

mnuParam

Параметри

Колір

mnuColor

. . . . Колір

Символ

mnuSimbl

. . . . . . . . Символ

чорний

mnuBlack

. . . . . . . . . . . . чорний

синій

mnuBlue

. . . . . . . . . . . . синій

червоний

mnuRed

. . . . . . . . . . . . червоний

Фон

mnuF

. . . . . . . . Фон

білий

mnuWhite

. . . . . . . . . . . . білий

жовтий

mnuYellow

. . . . . . . . . . . . жовтий

Шрифт

mnuFont

. . . . Шрифт

звичайний

mnuNormal

. . . . . . . . звичайний

напівжирний

mnuBold

. . . . . . . . напівжирний

Для зміни кольору символів, фон

у об’єктів, слід змінювати значення

властивостей BackColor

– колір фону,

ForeColor – колір символів. Це

можна зр обити за допомогою функції

QBColor(), параметрами якої є такі

кольори:

 

 

 

 

 

 

 

 

 

 

Колір

 

Номер

 

 

 

Колір

Номер

Black

 

Чорний

 

0

Dark Gray

 

Темно - сірий

8

Blue

 

Синій

 

1

Light Blue

 

Голубий

9

Green

 

Зелений

 

2

Light Green

 

Світло - зелений

10

Cyan

 

Бірюзовий

 

3

Light Cyan

 

Світло - бірюзовий

11

Red

 

Червоний

 

4

Light Red

 

Рожевий

12

Magenta

 

Фіолетовий

 

5

Light Magenta

Світло - фіолетовий

13

Brown

 

Коричневий

 

6

Yellow

 

 

Жовтий

14

Light Gray

 

Сірий

 

7

White

 

 

Білий

15

This document is created with trial version of Document2PDF Pilot 2.16.100.

Щоб змінювати колір символів, наприклад, на синій слід створити таку процедуру:

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

Коментар

Private Sub mnuBlue_Click()

Процедура, яка виконується якщо обрати

mnuBlack.Enabled = True

команду Параметри Колір Символ синій.

Пункт меню для вибору чорного кольору

mnuBlue.Enabled = False

символів стає активним.

Пункт меню для вибору синього кольору

mnuRed.Enabled = True

символів стає неактивним.

Пункт меню для вибору червоного кольору

 

символів стає активним.

lblZ.ForeColor = QBColor(1)

Колір символів етикетки lblZ стає синім (код

For i = 0 To 3

синього кольору - 1).

Для і від 0 до 3

lblZag(i).ForeColor = QBColor(1)

кожний і-ий елемент масиву етикеток lblZag

Next

змінює свій колір на синій.

Етикетка для виведення підсумку lblPid змінює

lblPid.ForeColor = QBColor(1)

 

колір символів на синій.

lblSC.ForeColor = QBColor(1)

Етикетка для виведення середньої ціни lblSC

End Sub

змінює колір символів на синій.

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

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

Private Sub mnuBlack_Click()

Private Sub mnuRed_Click()

mnuBlack.Enabled = False

mnuBlack.Enabled = True

mnuBlue.Enabled = True

mnuBlue.Enabled = True

mnuRed.Enabled = True

mnuRed.Enabled = False

lblZ.ForeColor = QBColor(0)

lblZ.ForeColor = QBColor(4)

For i = 0 To 3

For i = 0 To 3

lblZag(i).ForeColor = QBColor(0)

lblZag(i).ForeColor = QBColor(4)

Next

Next

lblPid.ForeColor = QBColor(0)

lblPid.ForeColor = QBColor(4)

lblSC.ForeColor = QBColor(0)

lblSC.ForeColor = QBColor(4)

End Sub

End Sub

Перед апробацією цієї гілки меню у вікні редактора меню слід визначити такі значення властивості Enabled:

для елемента mnuBlack False (виключити прапорець, щоб визначити, що пункт меню є неактивним);

для елемента меню mnuBlue - True;

для елемента mnuRed True.

Для зміни кольору фону треба створити такі процедури, пов’язані з командами меню Параметри Колір Фон білий (mnuWhite), Параметри Колір Фон жовтий (mnuYellow):

This document is created with trial version of Document2PDF Pilot 2.16.100.

Private Sub mnuWhite_Click()

Private Sub mnuYellow_Click()

mnuWhite.Enabled = False

mnuWhite.Enabled = True

mnuYellow.Enabled = True

mnuYellow.Enabled = False

frmMenu.BackColor = QBColor(15)

frmMenu.BackColor = QBColor(14)

lblZ.BackColor = QBColor(15)

lblZ.BackColor = QBColor(14)

For i = 0 To 3

For i = 0 To 3

lblZag(i).BackColor = QBColor(15)

lblZag(i).BackColor = QBColor(14)

Next

Next

For i = 0 To 5

For i = 0 To 5

txtN(i).BackColor = QBColor(15)

txtN(i).BackColor = QBColor(14)

txtC(i).BackColor = QBColor(15)

txtC(i).BackColor = QBColor(14)

txtK(i).BackColor = QBColor(15)

txtK(i).BackColor = QBColor(14)

txtS(i).BackColor = QBColor(15)

txtS(i).BackColor = QBColor(14)

Next

Next

lblPid.BackColor = QBColor(15)

lblPid.BackColor = QBColor(14)

lblSC.BackColor = QBColor(15)

lblSC.BackColor = QBColor(14)

End Sub

End Sub

Після створення процедур для зміни кольору фону необхідно правильно встановити властивості Enabled для елементів меню:

для елемента mnuWhite False (виключити прапорець, щоб визначити, що пункт меню є неактивним);

для елемента mnuYellow True.

Встановити напівжирний або звичайний шрифт символів усіх об’єктів

форми можна за допомогою властивості

FontBold, яка може приймати

значення True – напівжирний стиль шрифту, False – звичайний шрифт.

Для зміни шрифтів елементів управління в формі необхідно створити

процедури для елементів меню

mnuBold (Параметри Шрифт

напівжирний) і mnuNormal (Параметри Шрифт звичайний).

Private Sub mnuBold_Click()

 

 

Private Sub mnuNormal_Click()

mnuNormal.Enabled = True

 

 

mnuNormal.Enabled = False

mnuBold.Enabled = False

 

 

mnuBold.Enabled = True

lblZ.FontBold = True

 

 

lblZ.FontBold = False

For i = 0 To 3

 

 

For i = 0 To 3

lblZag(i).FontBold = True

 

 

lblZag(i).FontBold = False

Next

 

 

Next

For i = 0 To 5

 

 

For i = 0 To 5

txtN(i).FontBold = True

 

 

txtN(i).FontBold = False

txtC(i).FontBold = True

 

 

txtC(i).FontBold = False

txtK(i).FontBold = True

 

 

txtK(i).FontBold = False

txtS(i).FontBold = True

 

 

txtS(i).FontBold = False

Next

 

 

Next

lblPid.FontBold = True

 

 

lblPid.FontBold = False

lblSC.FontBold = True

 

 

lblSC.FontBold = False

End Sub

 

 

End Sub

This document is created with trial version of Document2PDF Pilot 2.16.100.

Перед використанням цієї функції програми слід визначити такі значення властивості Enabled для елементів меню:

для елемента mnuBold False;

для елемента mnuNormal True.

10.Завдання для лабораторної роботи на тему "Управління програмою за допомогою меню. Робота з масивами елементів управління, змінних”

Розробити програму за індивідуальним варіантом. При розробці програми слід створити форм у для розрахунку економічних показників із застосування масивів елементів управління – етикеток і текстових полів, меню програми, програмний код, перевірити дію програми. Далі необхідно зберегти програму на магнітному диску, надрукувати форму та код програми.

Меню програми повинно мати таку структуру:

Вікно

 

 

Розрахунок

 

 

?

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Очистка всієї таблиці

 

 

Інформаційні рядки

 

 

Інформація про автора

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Вихід

 

 

Підсумкові значення

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

У формі слід надати змогу користувачеві ввести 5 інформаційних рядків, розрахувати підсумкові значення по рядках і таблиці в цілому. Розрахункові показники помічено символом *.

Звіт про роботу повинен вміщувати:

-блок-схему алгоритмічного процесу розв’язання задачі;

-роздруковані форми програми;

-роздрукований код програми.

Варіант №1

Створити програму, що дозволяє обробити такі дані:

Аналіз стану товарних запасів

Найменування

Норматив

Фактичні

Відхилення

товарних груп

товарних запасів

запаси (сума)

від нормативу

 

 

 

* (факт-норматив)

Підсумок:

*

*

*

This document is created with trial version of Document2PDF Pilot 2.16.100.

Варіант №2

Створити програму, що дозволяє обробити такі дані:

Відомості про виробництво продукції

Найменування

 

Місяці

 

Усього за період

продукції

 

 

 

 

 

 

 

 

січень

лютий

березень

 

 

 

 

 

*

Підсумок:

*

*

*

*

Варіант №3

Створити програму, що дозволяє обробити такі дані:

Картка кількісного обліку товарів

Найменування

Залишок на

Прихід

Витрата

Залишок на

товару

початок періоду

 

 

кінець періоду

 

 

 

 

* (гр.2+гр.3-гр.4)

Підсумок:

*

*

*

*

Варіант №4

Створити програму, що дозволяє обробити такі дані:

Відомості про виробництво продукції

Найменування

Перший

Другий

Третій

Четвертий

Усього

продукції

квартал

квартал

квартал

квартал

за рік

 

 

 

 

 

*

Підсумок:

*

*

*

*

*

Варіант №5

Створити програму, що дозволяє обробити такі дані:

Аналіз виконання плану товарообігу за структурою

Найменування

План

Фактично

Відхилення

Відсоток виконання

товарів

реалізації

реалізовано

від плану

плану

 

 

 

* (гр.3-гр.2)

* (гр.3/гр.2*100)

Підсумок:

*

*

*

*

Варіант №6

Створити програму, що дозволяє обробити такі дані:

Аналіз реалізації товарів у 2005 році в порівнянні з 2004 р. (тис. грн.)

Найменування

Реалізація в 2004 р.

Реалізація

Відхилення

 

товарів

 

в 2005 р.

Сума

Відсоток

 

 

 

 

* (гр. 3/ гр. 2*100)

Разом:

 

 

 

 

Варіант №7

Створити програму, що дозволяє обробити такі дані:

Відомість розрахунків покупців по кредитах

Прізвище

Сума

Сума внесків

Залишок

покупця

кредиту

у погашенні

пеня за

заборгованості

 

 

заборгованості

прострочення

 

 

 

 

платежу

 

 

 

 

 

* (гр.2-гр.3)

Підсумок:

*

*

*

*