КУРСОВАЯ РАБОТА
по информатике
на тему: Расчет составной конструкциисистемы двух тел
СОДЕРЖАНИЕ
Введение
1. Постановка задачи
2. Исходные данные
3. Математическаямодель (Расчётная формула)
4. Краткиетеоретические сведенья об используемых методах решения задачи
5. Описание форм,переменных свойств объектов
Заключение
Список используемой литературы
Приложение 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 предназначен для реализации отображения исходныхданных.
Для реализации данного блока конструируемформу Form2.На форме размещаем кнопку для выхода (Command1), TextBox для ввода заданных значений, кнопку Command2 для просмотра схемы.
Блок 2 предназначен для расчета реакций опор и сил встержнях.
Для реализации данного блока конструируемформу Form3.
На форме размещаем 2 сетки, с помощьюкоторых происходит отображение рассчитанных величин. Также на данной формеразмещены кнопки, которые позволяют нам связать VB с Excel.
Блок 3 предназначен для реализации просмотра паспортапрограммы.
Для реализации данного блока конструируемформу Form1.
Блок 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 Переменные, хранящие значения сил F1,F2,M. соответственно Ya,Xa,Ma,Rb,Xc,Yc Single Переменные, в которые записываются значения реакций опор Yb,Xb,Ra alfa1,alfa2,betta Single Переменные, хранящие значение угла наклона линии действия силы F1,F2,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 следует нажать клавишу f5 или выбрать вменю пункт RUN.
Для просмотра исходных данных выбираем вменю пункт “Исходные данные”, для просмотра рисунка фермы выбираем “Схемазадания”, для отображения расчета реакций опор и сил в стержнях плоской фермывыбираем “Расчет”, график зависимости реакции опоры A от направления приложения силы F1 отбражаетсяпри нажатии кнопки Excel в меню Расчет. Чтобы узнать кто является авторомданного курсового выбираем “Паспорт”, для выхода — “Выход”.
Списокиспользованной литературы
1. Катков В.Л., Любимский Э.З.“Программирование”. – Минск “Вышэйшая школа”, 1992г.
2. Кетков Ю.Л. “Диалог на языкеБЭЙСИК для мини – и микро – ЭВМ”. – Москва “Наука”, 1992г.
3. Трояновский В.М., Шаньгин В.Ф.“БЭЙСИК для начинающих и будущих профессионалов”. – Москва “Высшая школа”,1992г.
4. Турчак Л.И. “Основы численныхметодов” – М.: Наука, 1987.
5. Уолш Б. “Программирование на VISUAL BASIC”. – Москва “Радио и связь”, 1998г.
Приложение 1. ТЕКСТ ПРОГРАММЫ
Option Explicit
Global P1 As Single, P2 As Single, M As Single, Qr AsSingle, Q As Single, alf1 As Single, alfa1 As Single
Global Xa As Single, Rb As Single, Rd As Single, Ya AsSingle, 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)
'Подпись точек заделки
Picture1.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) =«F1=»
.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