Розробка програмного модуля

[ виправити ] текст може містити помилки, будь ласка перевіряйте перш ніж використовувати.

скачати

Кафедра «Автоматизовані системи управління»

Курсова робота

з дисципліни ВТіП

Розробка програмного модуля

Введення

Метою даної курсової роботи є розробка програмного модуля, за допомогою якого можна задати розмірність квадратної матриці, заповнити матрицю випадковими цілими числами від 0 до 6 і обчислити:

- Суму елементів, що знаходяться під головною діагоналлю,

- Суму елементів, які становлять головну діагональ.

Для розробки програми використаний табличний процесор Excel і мова програмування Visual Basic for Application.

У першому розділі, який називається «Постановка завдання», наведена математична модель задачі, описані вхідні і вихідні дані, описана обробка помилок.

У другому розділі «Проектування програмного модуля», зображена структурна діаграма програмного модуля, розроблена схема програмного модуля і призначений для користувача інтерфейс.

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

Тестування програмного модуля наведено в четвертому розділі.

Крім того, даний висновок і наведено список використаних джерел.

1. Постановка завдання

1.1 Математична модель задачі

Визначення квадратної матриці: квадратною матрицею n-го порядку називається матриця, що складається з m рядків і m стовпців. Головною діагоналлю квадратної матриці називається діагональ, складена з елементів a 11 a 22 ... a mm.

Спосіб знаходження суми елементів квадратної матриці, що лежать під головною діагоналлю:

Необхідний результат виходить при підсумовуванні елементів у наступному порядку: а 21 + а 31 + а 32 + ... + а i1 + a i2 + a i3 + a i (j-1) - підсумовуються елементи, починаючи із другого рядка, і, при збільшенні рядка на 1, число стовпців, що містять потрібні елементи, також збільшується на 1. У стислому вигляді цей цикл виглядає так: i = f ... m, де початкове f = 2; j = 1 ... (mb), де початкове b = m-1. При кожній наступній ітерації значення f збільшується на 1, а значення b на 1 зменшується.

Суму елементів діагоналі матриці можна отримати при підсумовуванні елементів, що лежать на перетині однакових рядка і стовпця, тобто якщо i = j.

1.2 Вхідні дані

У даному курсовому проекті до вхідних даних відноситься розмірність квадратної матриці (значення m).

Вимоги до вхідних даних:

- Значення m повинно вводитися в числовій формі;

- Значення m повинно бути цілим, позитивним числом більше нуля.

1.3 Вихідні дані

До вихідних даних належать:

- Висновок заповненої матриці на форму;

- Висновок заповненої матриці на лист Excel;

- Сума елементів, що знаходяться під головною діагоналлю;

- Сума елементів, які становлять головну діагональ.

Вимоги до вихідних даних:

- Вихідні дані виводяться в числовому вигляді.

1.4 Обробка помилок

При виконанні програмного модуля проведена обробка наступних помилок:

- У полі введення розмірності матриці вводиться нечислове значення. У цьому випадку з'являється повідомлення про помилку, яке має вигляд, представлений на малюнку 1:

Рисунок 1 - Повідомлення про помилку, у разі нечислове введення розмірності матриці

- У полі введення вводиться дробове числове значення. У цьому випадку з'являється повідомлення про помилку, яке має вигляд, представлений на малюнку 2:

Рисунок 2 - Повідомлення про помилку, у разі введення дробового значення розмірності матриці

- У полі введення вводиться негативне число, або число, що дорівнює нулю. У цьому випадку з'являється повідомлення про помилку, яке має вигляд, представлений на малюнку 3:

Малюнок 3 - Повідомлення про помилку, у разі введення негативного, або нульового значення розмірності матриці

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

2. Проектування програмного модуля

2.1 Структурна діаграма програмного модуля

Програма має структуру, показану на малюнку 4:

Рисунок 4 - Структурна діаграма програмного модуля

У даній діаграмі UserForm_Initialize () - процедура ініціалізації користувача форми. CommandButton1_Click () - процедура, що спрацьовує при натисканні кнопки «Заполнить матрицю», яка проводить перевірку правильності введення розмірності матриці, заповнення матриці і виведення її на користувальницьку форму. CommandButton2_Сlick () - процедура, що спрацьовує при натисканні кнопки «Очистити», яка очищає форму. CommandButton3_Сlick () - процедура, що спрацьовує при натисканні кнопки «Вийти», що дозволяє користувачеві завершити роботу з програмою. CommandButton4_Click () - процедура, що спрацьовує при натисканні кнопки «Про програму», яка дає короткі відомості про програму та її розробника. CommandButton5_Сlick () - процедура, що спрацьовує при натисканні кнопки «Працювати з Excel», що дозволяє користувачеві перейти на роботу з аркушем Excel. OptionButton1_Click () - процедура-перемикач, при виборі якого обчислюється сума елементів, що знаходяться під головною діагоналлю. OptionButton2_Click () - процедура-перемикач, при виборі якого обчислюється сума елементів, які становлять головну діагональ.

2.2 Розробка схеми програмного модуля та її опис

Блок-схема процедури заповнення квадратної матриці представлена ​​на малюнку 5:


1

2

3

4

5

6

7

8


9

Рисунок 5 - Схема програмного модуля (Заповнення матриці)

Опис блок-схеми:

1 - введення розміру масиву;

2 - перевірка того, що введений розмір масиву є числом;

3 - перевірка того, що введений розмір масиву є позитивним числом, відмінним від нуля;

4 - перевірка того, що введений розмір масиву є цілим числом;

5 - завдання динамічного масиву;

6 - цикл, який пробігає значення рядків від 1 до заданого розміру масиву, з кроком рівним за замовчуванням 1;

7 - цикл, що пробігає значення стовпців від 1 до заданого розміру масиву, з кроком рівним за замовчуванням 1;

8 - тіло циклу, яке заповнює масив випадковими числами від 0 до 6;

9 - висновок результату в поле, призначене для виведення квадратної матриці.

Блок-схема процедури для першого перемикача представлена ​​на малюнку 6:

1

2

3

4

5

6

Рисунок 6 - Схема програмного модуля (перший перемикач)

Опис блок-схеми:

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

2 - цикл, що пробігає значення рядків від f до заданого розміру масиву, з кроком рівним за замовчуванням 1;

3 - цикл, який пробігає значення стовпців від 1 до m - b, з кроком рівним за замовчуванням 1;

4 - ви хування суми елементів, що лежать під головною діагоналлю;

5 - збільшення параметра f на 1 і зменшення параметра b на 1, після закінчення циклу для стовпців (блок 3), і перехід до циклу для рядків (блок 2);

6 - ви вод результату в поле виведення суми елементів.

Блок-схема процедури для другого перемикача представлена ​​на малюнку 7:

1

2

3

4

5

6

Рисунок 7 - Схема програмного модуля (другий перемикач)

Опис блок-схеми:

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

2 - цикл, який пробігає значення рядків від 1 до заданого розміру масиву, з кроком рівним за замовчуванням 1;

3 - цикл, який пробігає значення стовпців від 1 до заданого розміру масиву, з кроком рівним за замовчуванням 1;

4 - перевірка умови i = j. У разі виконання цієї умови відбувається перехід до блоку 5, в іншому випадку - до блоку 3;

5 - ви хування суми елементів, які становлять головну діагоналлю;

6 - ви вод результату в поле виведення суми елементів.

Блок-схема процедури для роботи з аркушем Excel представлена ​​на малюнку 8:


1

2

3

4

5

6

7

8

9


10

11

12

13

14

15

16

17

18

19

20

21

Рисунок 8 - Схема програмного модуля (Робота з аркушем Excel)

Опис блок-схеми:

1 - введення розміру масиву;

2 - перевірка того, що введений розмір масиву є числом;

3 - перевірка того, що введений розмір масиву є позитивним числом, відмінним від нуля;

4 - перевірка того, що введений розмір масиву є цілим числом;

5 - завдання динамічного масиву;

6 - цикл, який пробігає значення рядків від 1 до заданого розміру масиву, з кроком рівним за замовчуванням 1;

7 - цикл, який пробігає значення стовпців від 1 до заданого розміру масиву, з кроком рівним за замовчуванням 1;

8 - тіло циклу, яке заповнює масив випадковими числами від 0 до 6;

9 - висновок масиву на лист Excel;

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

11 - цикл, який пробігає значення рядків від f до заданого розміру масиву, з кроком рівним за замовчуванням 1;

12 - цикл, який пробігає значення стовпців від 1 до m - b, з кроком рівним за замовчуванням 1;

1913 - ви хування суми елементів, що лежать під головною діагоналлю;

1914 - збільшення параметра f на 1 і зменшення параметра b на 1, після закінчення циклу для стовпців (блок 12), і перехід до циклу для рядків (блок 11);

1915 - висновок суми елементів, що лежать під головною діагоналлю на лист Excel;

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

17 - цикл, який пробігає значення рядків від 1 до заданого розміру масиву, з кроком рівним за замовчуванням 1;

18 - цикл, який пробігає значення стовпців від 1 до заданого розміру масиву, з кроком рівним за замовчуванням 1;

19 - перевірка умови i = j. У разі виконання цієї умови відбувається перехід до блоку 5, в іншому випадку - до блоку 3;

1920 - ви хування суми елементів, які становлять головну діагоналлю;

21 - висновок суми елементів, які становлять головну діагональ на аркуш Excel.

2.3 Розробка користувальницького інтерфейсу.

Інтерфейс користувача (ПІ) програми - це сукупність елементів, що дозволяють користувачу програми керувати її роботою і отримувати необхідні результати, тобто це діалог між комп'ютером і користувачем.

Інтерфейс для програмного модуля, розробленого в даному курсовому проекті представлений на рисунку 9:












Рисунок 9 - Вид користувальницької форми: 1 - поле для введення розмірності квадратної матриці, 2 - поле для виводу суми елементів матриці, залежно від вибраного перемикача; 3 - перемикач, при виборі якого обчислюється сума елементів матриці, що знаходяться під головною діагоналлю; 4 - перемикач, при виборі якого обчислюється сума елементів матриці, що становлять головну діагональ; 5 - кнопка, при натисканні якої відбувається заповнення матриці; 6 - кнопка, яка здійснює очищення всіх полів форми; 7 - кнопка, що здійснює вихід з програми; 8 - кнопка, при натисканні якої з'являється коротка інформація про програму; 9 - кнопка, що дозволяє користувачеві перейти на роботу з аркушем Excel; 10 - поле для виводу заповненої матриці

3. Реалізація програмного модуля

3.1 Код програми

Dim summa 1 As Double

Dim summa2 As Double

Dim a () As Double

Dim m As Variant

'Задаємо початкові параметри при ініціалізації форми:

Private Sub UserForm_Initialize ()

Application.Visible = False

UserForm1.Caption = "Курсовий проект "

CommandButton1.Default = True

TextBox1.SetFocus

End Sub

'Процедура заповнення матриці:

Private Sub CommandButton1_Click ()

m = TextBox1.Text

If IsNumeric (TextBox1.Text) = False Then

MsgBox "Розмірність матриці повинна задаватися числом", 16, "Помилка вводу"

TextBox1.Text = ""

TextBox1.SetFocus

Exit Sub

End If

If m <= 0 Then

MsgBox "Розмірність матриці задається позитивним числом відмінним від нуля", 16,

"Помилка введення "

TextBox1.Text = ""

TextBox1.SetFocus

Exit Sub

End If

m = CDbl (m)

If m <> Int (m) Then

MsgBox "Розмірність матриці повинна задаватися цілим числом", 16, "Помилка вводу"

TextBox1.Text = ""

TextBox1.SetFocus

Exit Sub

End If

ReDim a (1 To m, 1 To m)

For i = 1 To m

For j = 1 To m

a (i, j) = Int ((7 * Rnd) + 0)

Next j

Next i

With ListBox1

ColumnCount = m

List = a

End With

End Sub

'Процедура очищення користувальницької форми:

Private Sub CommandButton 2_ Click ()

OptionButton1.Value = False

OptionButton2.Value = False

TextBox1.Text = ""

TextBox2.Text = ""

ListBox1.Clear

TextBox 1. SetFocus

End Sub

'Процедура виходу з програми:

Private Sub CommandButton3_Click ()

UserForm1.Hide

Application. Quit

End Sub

'Виклик короткої інформації про програму:

Private Sub CommandButton 4_ Click ()

MsgBox "Програма для заповнення випадковими числами" & Chr (13) & _

"Від 0 до 6 квадратної матриці, розмірністю" & Chr (13) & _

"Задається користувачем, і обчислення суми" & Chr (13) & _

"Елементів матриці, залежно від вибрано-" & Chr (13) & _

"Го перемикача." & Chr (13) & _

"Розробник: Логунов А.П..", 48, "Про програму"

End Sub

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

Private Sub OptionButton1_Click ()

summa1 = 0

f = 2

b = m - 1

For i = f To m

For j = 1 To m - b

summa1 = summa1 + a (i, j)

Next j

f = f + 1

b = b - 1

Next i

TextBox 2. Text = summa 1

End Sub

'Процедура обчислення суми елементів, які становлять головну діагональ:

Private Sub OptionButton2_Click ()

summa2 = 0

= 1 For i To m

For j = 1 To m

If i = j Then

summa2 = summa2 + a (i, j)

End If

Next j

Next i

TextBox2.Text = summa2

End Sub

'Процедура для роботи з Excel:

Private Sub CommandButton5_Click ()

Application.Visible = True

Cells.Select

Selection.ClearContents

Range ("A1"). Select

UserForm1.Hide

m = InputBox ("Задайте розмірність матриці", "Вікно введення")

If IsNumeric (m) = False Then

MsgBox "" Розмірність матриці повинна задаватися числом ", 16," Помилка вводу "

Exit Sub

End If

If m <= 0 Then

MsgBox "Розмірність матриці задається позитивним числом відмінним від нуля", 16,

"Помилка вводу"

Exit Sub

End If

m = CDbl (m)

If m <> Int (m) Then

MsgBox "Розмірність матриці повинна задаватися цілим числом", 16, "Помилка вводу"

Exit Sub

End If

Cells (5, 1) = "Матриця розмірністю n =" & m & ":"

ReDim a (1 To m, 1 To m)

For i = 1 To m

For j = 1 To m

a (i, j) = Int ((7 * Rnd) + 0)

Cells (i + 5, j) = a (i, j)

Next j

Next i

summa1 = 0

f = 2

b = m - 1

For i = f To m

For j = 1 To m - b

summa1 = summa1 + a (i, j)

Next j

f = f + 1

b = b - 1

Next i

Cells (2, 1) = "Сума елементів під головною діагоналлю =" & summa1

summa2 = 0

For i = 1 To m

For j = 1 To m

If i = j Then

summa2 = summa2 + a (i, j)

End If

Next j

Next i

Cells (3, 1) = "Сума елементів складових головну діагональ =" & summa 2

Select Case MsgBox ("Назад до UserForm?", VbYesNo, "Вікно повернення")

Case vbYes

Application.Visible = False

TextBox1.SetFocus

UserForm1.Show

Case vbNo

End Select

End Sub

3.2 Опис використаних операторів і функцій

Dim ім'я_змінної As Тіп_переменной - синтаксис опису типу змінної;

Private - вказує, що процедура Sub доступна для всіх інших процедур тільки того модуля, в якому вона описана;

If Умова Then [Інструкція] [Else Інструкціі_else] - оператор умовного переходу. Якщо умова приймає значення True, то виконується інструкція Then, якщо False, то виконується інструкція_else. Гілка Else є необов'язковою;

IsNumeric (змінна) - функція, що перевіряє чи є змінна числовим значенням;

MsgBox (повідомлення, [кнопка], [заголовок]) - виводить на екран діалогове вікно, що містить повідомлення;

CDbl () - функція перетворення зчитувальних даних у числовий формат типа Double, тому що числа, що вводяться у текстову область форми, сприймаються як текст, а не як число.

Int () - функція, яка повертає цілі числові значення;

ReDim <ім'я масиву> (<задається розмірність масиву>) - функція завдання динамічного масиву;

For Лічильник = Початок To Кінець [Step Крок]

[Інструкції]

Next Лічильник - повторює виконання групи інструкцій, поки Лічильник змінюється від початкового значення до кінцевого з вказаним кроком. Якщо крок не вказаний, то він вважається рівним 1;

Rnd - функція, що служить для генерації випадкових чисел;

With Об'єкт

[Інструкції]

End With - дозволяє виконати послідовність інструкцій над Об'єктом не повторюючи його імені;

ColumCount - встановлює число стовпців у списку;

Clear - очищення;

SetFocus - повертає курсор в зазначене поле;

InputBox () - виводить на екран діалогове вікно, що містить повідомлення і поле введення, встановлює режим очікування введення тексту користувачем або натискання кнопки, а потім повертає значення типу String, що містить текст, введений у полі;

Select Case Вираз

Case список виразів

[Інструкції]

Case Else

[Інструкції Else]

End Select - виконує одну з декількох груп інструкцій залежно від деякого виразу.

4. Тестування програмного модуля

Нижче наведено приклад роботи програмного модуля. Для цього ввели в поле введення розмірність матриці дорівнює 5. При натисканні кнопки «Заполнить матрицю» у вікні виводу з'явилося квадратна матриця п'ятого порядку, заповнена випадковими числами від 0 до 6, що представлено на рисунку 10:


Рисунок 10 - Вид користувальницької форми із заповненою матрицею

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

При натисканні кнопки «про програму» з'являється повідомлення з короткою інформацією про програму.

При натисканні кнопки «Працювати з Excel» з'являється діалогове вікно, в якому задається розмірність матриці.

При натисканні кнопки «Оk» на аркуші Excel з'являється результат, який представлений на малюнку 11:

Малюнок 11 - Лист Excel з результатом

Діалогове вікно «вікно повернення» дозволяє користувачеві повернутися до роботи з користувацької формою.

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

Висновок

У даному курсовому проекті за допомогою мови програмування Visual Basic for Application був розроблений програмний модуль, який дозволяє: задавати квадратну матрицю і програмно заповнювати її випадковими числами від 0 до 6; обчислювати суму елементів знаходяться під головною діагоналлю; обчислювати суму елементів складових головну діагональ. Було передбачено режим роботи з аркушем Excel.

У програмі проведена обробка можливих помилок, що полегшує користувачеві роботу з програмою.

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

Список використаних джерел

1. Гарнаєв А.Ю. Самовчитель VBA. - СПб.: БХВ - Санкт-Петербург, 2000. - 512 с.

2. Гарнаєв А.Ю. Самовчитель VBA. - СПб, БХВ - Санкт-Петербург, 2002.

3. MS OfficeXP: Розробка додатків / За редакцією Ф.А. Новікова. СПб.: БХВ - Санкт-Петербург, 2003.

Додати в блог або на сайт

Цей текст може містити помилки.

Програмування, комп'ютери, інформатика і кібернетика | Курсова
72.4кб. | скачати


Схожі роботи:
Розробка програмного модуля для обчислення інтеграла
Розробка універсального програмного модуля УПМ для РЕУ
Розробка програмного модуля який знаходить суму кутових елементів матриці і суму елементів
Проект програмного модуля для знаходження кореня рівняння
Порядок розробки програмного модуля Атестація програмних засобів
Проект програмного модуля для знаходження наближеного значення нескінченної суми
Розробка конструкції антенного модуля НВЧ
Розробка економічного ядра модуля ERP системи
Розробка процесорного модуля апарату штучної вентиляції л гкіх
© Усі права захищені
написати до нас