Курсова робота
з інформатики
на тему: Розрахунок складеної конструкції системи двох тіл
ЗМІСТ
Введення
Постановка завдання
Вихідні дані
Математична модель (Розрахункова формула)
Короткі теоретичні відомості про використовувані методи вирішення задачі
Опис форм, змінних властивостей об'єктів
Висновок
Список використаної літератури
Додаток 1. Текст програми
Введення
Персональний комп'ютер - невід'ємна частина робочого місця інженера, фахівця будь-якого профілю, керівника організації, установи, надійним засобом оперативного збору та обробки інформації.
Зміна технічних можливостей обчислювальної техніки сприяло розробці та нових систем програмування, що дозволяють інженеру - не програмісту самостійно розробляти власні програми досить високої якості для вирішення поточних завдань. Одним з таких мов програмування високого рівня є Visual Basic.
Visual Basic пред'являє досить високі вимоги до технічних характеристик персонального комп'ютера. Visual Basic в середовищі Windows дозволяє створювати додатки - програми для роботи в цьому середовищі. При цьому програми мають схожий інтерфейс і способи управління. Зокрема, Visual Basic дозволяє додавати до вікон полях введення, меню, командні кнопочки, перемикачі, прапорці, списки, лінійки прокрутки, а так само діалогові вікна для вибору файлу або каталогу. Програміст може використовувати сітку для обробки табличних даних, організовувати взаємодію з іншими додатками Windows і доступ до баз даних.
1. Постановка завдання
Розробка програми для розрахунку складеної конструкції системи двох тіл.
Вихідні дані до проекту згідно з методичними матеріалами. Варіант N20. Розробити програму для розрахунку реакцій складеної конструкції при шарнірною і ковзної закладенні. Оцінити варіанти побудови системи по мінімаль реакцій опор А. Дослідити залежність реакції опори А від напрямку сили Р 1. Побудувати графіки залежності реакцій опори в залежності від напрямку дії сили Р 1 в електронній таблиці.
2. Вихідні дані
Вихідні дані до проекту згідно з методичними матеріалами. Варіант N16. Розробити програму для розрахунку реакцій складеної конструкції при шарнірною і ковзної закладенні.
Схема (Рис.2.1)
Рис.2.1 Схема
3. Короткі теоретичні відомості про використовувані методи вирішення задачі
Створюємо програму в середовищі VISUAL BASIC 6.0.
Конструюємо форму mdiform. На формі розміщуємо меню для вибору режимів роботи: Введення даних, Розрахунок, Паспорт, Вихід.
Блок 1 призначений для реалізації відображення вихідних даних.
Для реалізації даного блоку конструюємо форму Form 2.На формі розміщуємо кнопку для виходу (Command 1), TextBox для введення заданих значень, кнопку Command 2 для перегляду схеми.
Блок 2 призначений для розрахунку реакцій опор і сил у стержнях.
Для реалізації даного блоку конструюємо форму Form 3.
На формі розміщуємо 2 сітки, за допомогою яких відбувається відображення розрахованих величин. Також на даній формі розміщені кнопки, які дозволяють нам зв'язати VB з Excel.
Блок 3 призначений для реалізації перегляду паспорта програми.
Для реалізації даного блоку конструюємо форму Form 1.
Блок 4 призначений для виходу з програми.
Розміщуємо в проекті модуль (modul е1) для оголошення глобальних змінних і розрахунку математичної моделі.
4. Опис форм, змінних властивостей об'єктів
ОПЕРАТОР - це вказівки для виконання певної дії.
Розрізняють:
оператори присвоювання (організуючі обчислення);
оператори переходу (безумовного переходу);
умовні оператори (умовного переходу);
оператори циклу (повторення);
оператори процедур (підпрограм);
оператори введення - виведення.
У курсовій роботі містяться наступні оператори:
Оператор CLS - Очищення екрана.
Оператор QBCOLOR - встановлює колір екрану.
Оператор DIM-Оголошення змінних.
Оператор END - Закінчує програму, процедуру, блок або тип
даних, визначений користувачем.
Оператори FOR і NEXT установки параметрів. Всі оператори, охоплені цією парою операторів, повторюють свою роботу в умовах визначених аргументами оператора FOR.
Оператор SUB - визначає процедуру SUB
Оператор IF - організація умовного переходу або виконання зазначеної дії в залежності від результату перевірки логічного умови. Форми та конструкції:
Оператор CURENT (X, Y) - переміщає курсор на екрані в зазначену позицію.
Оператор PRINT - для виведення даних на екран і в файли даних подальшого доступу.
Оператор WHILE - виконує серію операторів, поки зазначена умова вірно.
Таблиця визначення типів змінних
Таблиця 5,1
Ім'я змінної | Тип змінної | Коментар |
F1, F2, M | Single | Змінні, що зберігають значення сил F 1, F 2, M. відповідно |
Ya, Xa, Ma, Rb, Xc, Yc | Single | Змінні, в які записуються значення реакцій опор Yb, Xb, Ra |
alfa1, alfa2, betta | Single | Змінні, що зберігають значення кута нахилу лінії дії сили F 1, F 2, Rb до горизонталі |
pi | Const | Константа, що зберігає значення числа π. |
i | Integer | Допоміжні змінні - лічильник. |
NameFile | String | Змінна, що використовується для позначення імені створюваного текстового файлу. |
ObjXLApp | Application | Змінна для роботи з додатком Ехсе l |
c, d | Single | Допоміжні змінні, використовувані для побудови малюнка. |
a | Single |
Змінні зберігають зачення ширини. |
Таблиця опису елементів управління
Таблиця 5,2
Елемент управління | Властивості | Значення | |
Form | Name Border Style Caption MDIChild WindowState | Form3 1 - Fixed Single Розрахунок True 0 - Normal | |
CommandButton | Name Caption Cancle Style Visible | cmdClose Закрити False 1 - Graphical True | |
MSFlexGrid | Name BorderStyle Cols Rows FixedCols FixedRows ScrollBars | MSFlexGrid 1 - flexBorderSingle 5 2 1 1 0 - flexScrollBarVertical | |
PictureBox | Name BorderStyle Enabled Visible | Picture1 1 - Fixed Single True True |
Висновок
Для запуску програми в редакторі VISUAL BASIC 6.0 слід натиснути клавішу f 5 або вибрати в меню пункт RUN.
Для перегляду вихідних даних вибираємо в меню пункт "Вихідні дані", для перегляду малюнка ферми вибираємо "Схема завдання", для відображення розрахунку реакцій опор і сил у стержнях плоскої ферми вибираємо "Розрахунок", графік залежності реакції опори A від напрямку прикладання сили F 1 відображується при натисканні кнопки Excel у меню Розрахунок. Щоб дізнатися хто є автором даного курсового вибираємо "Паспорт", для виходу --- "Вихід".
Список використаної літератури
Катков В.Л., Любимський Е.З. "Програмування". - Мінськ "Вишейшая школа", 1992р.
Кетков Ю.Л. "Діалог мовою Бейсік для міні - і мікро - ЕОМ". - Москва "Наука", 1992р.
Трояновський В.М., Шаньгін В.Ф. "Бейсік для початківців і майбутніх професіоналів". - Москва "Вища школа", 1992р.
Турчак Л.І. "Основи чисельних методів" - М.: Наука, 1987.
Уолш Б. "Програмування на VISUAL BASIC". - Москва "Радіо і зв'язок", 1998р.
Додаток 1.
ТЕКСТ ПРОГРАМИ
Option Explicit
Global P1 As Single, P2 As Single, M As Single, Qr As Single, Q As Single, alf1 As Single, alfa1 As Single
Global Xa As Single, Rb As Single, Rd As Single, Ya As Single, Yd As Single
Global Xc As Single, Yc As Single, Mc As Single
Global beta As Single, ugol As Single
Global i As Integer, j As Integer
Global Const pi = 3.14159265358979
Public Sub RaschetSharnir ()
P1 = Val (frmDannye.tbP1.Text)
P2 = Val (frmDannye.tbP2.Text)
M = Val (frmDannye.tbM.Text)
alf1 = Val (frmDannye.tbA1.Text)
alfa1 = pi * alf1 / 180
Rd = (-4 * P1 * Cos (alfa1) + 0.25 * P2 - 0.104 - 0.928 * P1 * Sin (alfa1)) / 3.464
Rb = 28.135 + 0.103 * P2 - Rd - 0.268 * P1 * Sin (alfa1)
Xa = P1 * Sin (alfa1) + 0.866 * P2 + 0.866 * Rd - 0.866 * Rb + 52.5
Ya =-P1 * Cos (alfa1) + 0.5 * P2 - 0.5 * Rd - 0.5 * Rb + 60
End Sub
Public Sub RaschetZadelka ()
P1 = Val (frmDannye.tbP1.Text)
P2 = Val (frmDannye.tbP2.Text)
M = Val (frmDannye.tbM.Text)
alf1 = Val (frmDannye.tbA1.Text)
alfa1 = pi * alf1 / 180
Rd = (-P1 * (Sin (alfa1) - 7.464 * Cos (alfa1)) - 3.348 * P2 - 342.81) / 7.464
Rb = -2 * P1 * Cos (alfa1) + 120 + P2 + Rd
Xa = P1 * Sin (alfa1) + P2 * 0.866 + 0.866 * Rd - 0.866 * Rb + 52.5
End Sub
Private Sub ex_Click ()
otvet = MsgBox ("Завершити програму?", vbYesNo + vbQuestion, "Курсова робота з інформатики")
If otvet = vbYes Then End
End Sub
Private Sub MDIForm_Load ()
End Sub
Private Sub mnuDannye_Click ()
frmDannye.Show
End Sub
Private Sub mnuExit_Click ()
otvet = MsgBox ("Завершити програму?", vbYesNo + vbQuestion, "Курсова робота з інформатики")
If otvet = vbYes Then End
End Sub
Private Sub mnuPassport_Click ()
frmPasport.Show
End Sub
Private Sub mnuRaschet_Click ()
frmRaschet.Show
End Sub
Private Sub cmdShow_Click ()
Set Pic1 = Picture1
Picture1.Picture = LoadPicture ()
a = 10
alfa = 4 * Atn (1) / 3
Picture1.ScaleMode = 6
Picture1.DrawWidth = 3.5
'Малюємо вихідний малюнок
xo = 10: yo = 40 'початкова точка
Picture1.Line (xo, yo + 2 * a) - (xo + 3 * a, yo)
Picture1.Line (xo + 3 * a, yo) - (xo + 3 * a, yo - 1 * a)
Picture1.Line (xo + 3 * a, yo - 1 * a) - (xo + 8 * a, yo - 1 * a)
Picture1.Line (xo + 8 * a, yo - 3 * a) - (xo + 8 * a, yo + 2 * a)
Picture1.Circle (xo + 3 * a, yo), 1, vbBlue
Picture1.DrawWidth = 1.5
'Закладення нижні:
'A
Picture1.Circle (xo, yo + 2 * a + 0.5), 1
Picture1.Line (xo, yo + 2 * a + 0.5) - (xo - 2, yo + 2 * a + 7)
Picture1.Line (xo, yo + 2 * a + 0.5) - (xo + 2, yo + 2 * a + 7)
Picture1.Line (xo - 4, yo + 2 * a + 7) - (xo + 4, yo + 2 * a + 7)
For s = xo - 5 To xo + 3 Step 1
Picture1.Line (s + 1.5, yo + 2 * a + 7) - (s, yo + 2 * a + 7 + 2)
Next s
'B
Picture1.Line (xo + 8 * a - a / 3 - 2, yo + 2 * a + 5) - (xo + 8 * a + a / 3 - 3, yo + 2 * a + 7)
Picture1.Circle (xo + 8 * a, yo + 2 * a), 1
Picture1.Line (xo + 8 * a - a / 3 - 2, yo + 2 * a + 5) - (xo + 8 * a - 1, yo + 2 * a + 1)
Picture1.Line (xo + 8 * a + a / 3 - 3, yo + 2 * a + 7) - (xo + 8 * a, yo + 2 * a + 1)
Picture1.Circle (xo + 8 * a - a / 3 - 2, yo + 2 * a + 6), 1
Picture1.Circle (xo + 8 * a + a / 3 - 3, yo + 2 * a + 8), 1
Picture1.Line (xo + 8 * a - a / 3 - 4, yo + 2 * a + 7) - (xo + 8 * a + a / 3 - 2, yo + 2 * a + 10)
'D
Picture1.Circle (xo + 8 * a, yo - 3 * a), 1
Picture1.Line (xo + 8 * a, yo - 3 * a) - (xo + 8 * a + 2, yo - 3 * a + 5)
Picture1.Circle (xo + 8 * a + 2, yo - 3 * a + 5), 1
'Сила P1
Picture1.Line (xo + 5 * a, yo - 1 * a) - (xo + 4.5 * a - 1.5 * a * Sin (alfa - 0.7 * Atn (1)), yo - 0.4 * a * Cos (alfa) ), & HC0 &
Picture1.Line (xo + 4.5 * a - 1.5 * a * Sin (alfa - 0.7 * Atn (1)), yo - 0.4 * a * Cos (alfa)) - (xo + 4.5 * a, yo - 0.4 * a ), & HC0 &
Picture1.Line (xo + 4.5 * a - 1.5 * a * Sin (alfa - 0.7 * Atn (1)), yo - 0.4 * a * Cos (alfa)) - (xo + 4.3 * a, yo - 0.8 * a ), & HC0 &
'Сила P2
Picture1.Line (xo + 3 * a, yo - 1 * a) - (xo + 1 * a + 2 * a * Cos (alfa), yo - 2.5 * a - Sin (alfa)), & HC0 &
Picture1.Line (xo + 1 * a + 2 * a * Cos (alfa), yo - 2.5 * a - Sin (alfa)) - (xo + 2.16 * a, yo - 1 * a - 10), & HC0 &
Picture1.Line (xo + 1 * a + 2 * a * Cos (alfa), yo - 2.5 * a - Sin (alfa)) - (xo + 2.5 * a, yo - 1 * a - 12), & HC0 &
'Малюємо навантаження q
Picture1.DrawWidth = 1.2
For s = xo + 3 * a To xo + 5 * a Step 5
Picture1.Line (s, yo - 2 * a) - (s, yo - 1 * a)
Picture1.Line (s, yo - 10) - (s - 0.8, yo - a * 1.5)
Picture1.Line (s, yo - 10) - (s + 0.8, yo - a * 1.5)
Next s
Picture1.Line (xo + 3 * a, yo - 2 * a) - (xo + 5 * a, yo - 2 * a)
'Q2-q1
Picture1.Line (xo + 8 * a, yo - 1 * a) - (xo + 8 * a + 5, yo - 1 * a)
Picture1.Line (xo + 8 * a + 5, yo - 1 * a) - (xo + 8 * a + 10, yo + 2 * a)
Picture1.Line (xo + 8 * a + 10, yo + 2 * a) - (xo + 8 * a, yo + 2 * a)
Picture1.Line (xo + 8 * a, yo + 2 * a) - (xo + 8 * a + 10, yo + 2 * a)
Picture1.Line (xo + 8 * a, yo + 2 * a) - (xo + 8 * a + 3, yo + 2 * a - 1)
Picture1.Line (xo + 8 * a, yo + 2 * a) - (xo + 8 * a + 3, yo + 2 * a + 1)
Picture1.Line (xo + 8 * a, yo - 1 * a) - (xo + 8 * a + 3, yo - 1 * a - 1)
Picture1.Line (xo + 8 * a, yo - 1 * a) - (xo + 8 * a + 3, yo - 1 * a + 1)
Picture1.Line (xo + 8 * a, yo - 1 * a) - (xo + 8 * a + 3, yo - 1 * a - 1)
Picture1.Line (xo + 8 * a, yo - 1 * a + 5) - (xo + 8 * a + 6, yo - 1 * a + 5)
Picture1.Line (xo + 8 * a, yo - 1 * a + 5) - (xo + 8 * a + 3, yo - 1 * a + 4)
Picture1.Line (xo + 8 * a, yo - 1 * a + 5) - (xo + 8 * a + 3, yo - 1 * a + 6)
Picture1.Line (xo + 8 * a, yo - 1 * a + 10) - (xo + 8 * a + 7, yo - 1 * a + 10)
Picture1.Line (xo + 8 * a, yo - 1 * a + 10) - (xo + 8 * a + 3, yo - 1 * a + 9)
Picture1.Line (xo + 8 * a, yo - 1 * a + 10) - (xo + 8 * a + 3, yo - 1 * a + 11)
Picture1.Line (xo + 8 * a, yo - 1 * a + 15) - (xo + 8 * a + 8, yo - 1 * a + 15)
Picture1.Line (xo + 8 * a, yo - 1 * a + 15) - (xo + 8 * a + 3, yo - 1 * a + 14)
Picture1.Line (xo + 8 * a, yo - 1 * a + 15) - (xo + 8 * a + 3, yo - 1 * a + 16)
Picture1.Line (xo + 8 * a, yo - 1 * a + 20) - (xo + 8 * a + 9, yo - 1 * a + 20)
Picture1.Line (xo + 8 * a, yo - 1 * a + 20) - (xo + 8 * a + 3, yo - 1 * a + 19)
Picture1.Line (xo + 8 * a, yo - 1 * a + 20) - (xo + 8 * a + 3, yo - 1 * a + 21)
Picture1.Line (xo + 8 * a, yo - 1 * a + 25) - (xo + 8 * a + 10, yo - 1 * a + 25)
Picture1.Line (xo + 8 * a, yo - 1 * a + 25) - (xo + 8 * a + 3, yo - 1 * a + 24)
Picture1.Line (xo + 8 * a, yo - 1 * a + 25) - (xo + 8 * a + 3, yo - 1 * a + 26)
'Підпис точок закладення
Picture 1. DrawWidth = 1.1
Picture1.FontSize = 12
Picture1.CurrentX = xo - 6
Picture1.CurrentY = yo + 12
Picture1.Print "A"
Picture1.CurrentX = xo + 8 * a - 10
Picture1.CurrentY = yo - 1 * a + 25
Picture1.Print "B"
Picture1.CurrentX = xo + 25
Picture1.CurrentY = yo - 5
Picture1.Print "C"
Picture1.CurrentX = xo + 7 * a + 15
Picture1.CurrentY = yo - 2 * a - 15
Picture1.Print "D"
Picture1.CurrentX = xo + 3 * a + 10
Picture1.CurrentY = yo - 0.3 * a
Picture1.Print "P1"
Picture1.CurrentX = xo + 1.5 * a
Picture1.CurrentY = yo - 2 * a
Picture1.Print "P2"
Picture1.CurrentY = yo + 1 * a
Picture1.Print "M"
Picture1.CurrentX = xo + 5 * a
Picture1.CurrentY = yo - 2.5 * a
Picture1.Print "q"
Picture1.CurrentX = xo + 8 * a + 8
Picture1.CurrentY = yo - 1 * a
Picture1.Print "q1"
Picture1.CurrentX = xo + 8 * a + 10
Picture1.CurrentY = yo - 1 * a + 25
Picture1.Print "q2"
'Сектор під момент
'Picture1.ForeColor = 0
Picture1.Circle (xo + 1.9 * a, yo + 1 * a), 6, 0, 7 * Atn (1), 3.5 * Atn (1)
Picture1.Line (xo + 2.31 * a, yo + 1.5 * a) - (xo + 1.9 * a + 4.7, yo + 1 * a)
Picture1.Line (xo + 2.31 * a, yo + 1.5 * a) - (xo + 2 * a + 7, yo + 1 * a)
Picture1.DrawWidth = 1
Picture1.DrawStyle = 2
End Sub
Private Sub Command1_Click ()
Unload Me
End Sub
Private Sub Form_load ()
frmDannye.Height = 6195
frmDannye.Width = 9195
End Sub
Option Explicit
Private Sub cmdClose_Click ()
Unload Me
End Sub
Private Sub cmdExcel_Click ()
Dim XL As New Excel.Application
XL.Workbooks.Open App.Path & "\ MyBook.xls"
XL.Visible = True
Set XL = XL.ActiveWorkbook.Sheets.Application
With XL.ActiveSheet
. Cells (1, 2) = "Вихідні дані"
. Cells (2, 1) = "F 1 ="
. Cells (3, 1) = "F2 ="
. Cells (4, 1) = "M ="
. Cells (5, 1) = "alfa1 ="
. Cells (2, 2) = Val (frmDannye.tbP1.Text)
. Cells (3, 2) = Val (frmDannye.tbP2.Text)
. Cells (4, 2) = Val (frmDannye.tbM.Text)
. Cells (5, 2) = pi * alf1 / 180
. Cells (2, 3) = "kH"
. Cells (3, 3) = "kH"
. Cells (4, 3) = "kH * m"
. Cells (5, 3) = "рад"
. Cells (1, 6) = "Розрахунок реакцій"
. Cells (2, 6) = "Шарнірне закріплення:"
. Cells (3, 6) = "Rd ="
. Cells (4, 6) = "Rb ="
. Cells (5, 6) = "Xa ="
. Cells (6, 6) = "Ya ="
. Cells (10, 6) = "Ковзна закладення:"
. Cells (11, 6) = "Rd ="
. Cells (12, 6) = "Rb ="
. Cells (13, 6) = "Xa ="
End With
End Sub
Private Sub Command1_Click ()
Unload Me
frmRaschet.Show
End Sub
Private Sub Form_load ()
frmRaschet.Height = 5325
frmRaschet.Width = 8340
For i = 0 To 1
msfgSharnir.ColAlignment (i) = 4
msfgZadelka.ColAlignment (i) = 4
Next i
msfgSharnir.TextMatrix (0, 0) = "Сила"
msfgSharnir.TextMatrix (0, 1) = "Значення"
msfgSharnir.TextMatrix (1, 0) = "Rd"
msfgSharnir.TextMatrix (2, 0) = "Rb"
msfgSharnir.TextMatrix (3, 0) = "Xa"
msfgSharnir.TextMatrix (4, 0) = "Ya"
msfgZadelka.TextMatrix (0, 0) = "Сила"
msfgZadelka.TextMatrix (0, 1) = "Значення"
msfgZadelka.TextMatrix (1, 0) = "Rd"
msfgZadelka.TextMatrix (2, 0) = "Rb"
msfgZadelka.TextMatrix (3, 0) = "Xa"
Vyvod
End Sub
Private Sub vscrlUgol_Change ()
txtUgol.Text = vscrlUgol.Value
Vyvod
End Sub
Public Sub Vyvod ()
'Beta = Val (txtUgol.Text)
RaschetSharnir
msfgSharnir.TextMatrix (1, 1) = Str (Round (Rd, 2))
msfgSharnir.TextMatrix (2, 1) = Str (Round (Rb, 2))
msfgSharnir.TextMatrix (3, 1) = Str (Round (Xa, 2))
msfgSharnir.TextMatrix (4, 1) = Str (Round (Ya, 2))
RaschetZadelka
msfgZadelka.TextMatrix (1, 1) = Str (Round (Rd, 2))
msfgZadelka.TextMatrix (2, 1) = Str (Round (Rb, 2))
msfgZadelka.TextMatrix (3, 1) = Str (Round (Xa, 2))
End Sub
Private Sub Form_Load ()
End Sub
Private Sub vixod_Click ()
Unload Me
End Sub