模拟单摆运动.docx
- 文档编号:8817359
- 上传时间:2023-02-01
- 格式:DOCX
- 页数:11
- 大小:584.88KB
模拟单摆运动.docx
《模拟单摆运动.docx》由会员分享,可在线阅读,更多相关《模拟单摆运动.docx(11页珍藏版)》请在冰豆网上搜索。
模拟单摆运动
沈阳航空航天大学
课程设计
学号*************
班级94060302
姓名景双双
指导教师刘学平
2011年7月6日
沈阳航空航天大学
课程设计任务书
学院:
机电工程学院专业:
车辆工程班级:
94060302
学号:
*************题目:
模拟单摆运动
一、课程设计时间
2011年6月27日~7月1日(第18周),共计1周。
二、课程设计内容
设计一个单摆机构,运动过程可随时停止和启动。
初始参数包括:
初始角、触发时钟的间隔。
用户界面中的菜单至少应包括“初始参数设置”、“开始运动”、“退出”3项三、课程设计要求
程序质量:
✧贯彻事件驱动的程序设计思想。
✧用户界面友好,功能明确,操作方便;可以增加其他功能或修饰。
✧代码应适当缩进,并给出必要的注释,以增强程序的可读性。
课程设计说明书:
✧课设结束后,上交课程设计说明书和源程序。
课程设计说明书的内容参见提供的模板。
四、指导教师和学生签字
指导教师:
________学生签名:
________
五、成绩
六、教师评语
一、
需求分析
模拟单摆运动,主要是使单摆能够在最低点左右摆动动,从而使得本软件能够模拟单摆的运动情况,用来在物理课的时候让同学能够更直接的感受到单摆的运行轨迹以及运行周期与初始角.绳长还有球质量的关系。
要求
1设计界面把需要的文本控件.按钮控件以及图形添加到适合的位置
2单摆可随时停止和启动
3设置初始参数,初始参数包括:
初始角度、触发时钟的时间间隔
④用户界面中的菜单至少应包括“初始参数设置”、“开始运动”、“退出”3项。
二、设计分析
(1)基本原理:
设计窗体,通过时钟控件实现摆球的摆动
(2)总体设计:
图1总体设计
(3)详细设计:
图1详细设计
(4)数据库设计:
数据库设计是总体设计阶段非常重要的环节,数据库结构的变化会造成编码的改动,所以必须认真设计数据库结构后再进行编码,从而避免无谓的重复工作。
本系统由于是模拟单摆的运动系统所以不需要引入数据只要按照使用者的需要把单摆运动的各个参数填入对应的框内即可。
三、关键技术
(1)建立符合要求的窗体
图1窗体
(2)编辑timer的语句使得单摆能够执行左右摆动的功能
程序段如下:
PrivateSubTimer1_Timer()
r=Val(Text4.Text)
Shape1.Width=2*Val(Text4.Text)
Shape1.Height=2*Val(Text4.Text)
Ifb=1Then
Ifa=-Val(Text1.Text)Thenb=2
Line2.X2=Line2.X1-len1*Sin(a*p/180)
Line2.Y2=Line2.Y1+len1*Cos(a*p/180)
Shape1.Left=Line2.X1-r-len1*Sin(a*p/180)
Shape1.Top=Line2.Y1-r+len1*Cos(a*p/180)
a=a-1
EndIf
Ifb=2Then
Ifa=Val(Text1.Text)Thenb=1
Line2.X2=Line2.X1-len1*Sin(a*p/180)
Line2.Y2=Line2.Y1+len1*Cos(a*p/180)
Shape1.Left=Line2.X1-r-len1*Sin(a*p/180)
Shape1.Top=Line2.Y1-r+len1*Cos(a*p/180)
a=a+1
EndIf
EndSub
(3)单摆运动是模拟物理实验用电脑给用户直观的学习工具
程序段如下:
Constp=3.14
Dima,len1,b
PrivateSubCommand1_Click()
IfCommand1.Caption="开始"Then
Command1.Caption="暂停"
Timer1.Enabled=True
Timer1.Interval=Text2.Text
Else
Command1.Caption="开始"
Timer1.Enabled=False
EndIf
EndSub
PrivateSubCommand2_Click()
End
EndSub
PrivateSubForm_Load()
a=Text1.Text
len1=1000*Sqr
(2)
b=1
Timer1.Enabled=False
EndSub
PrivateSubText1_Change()
a=Val(Text1.Text)
IfText1.Text=""Then
MsgBox"请输入初始角",,注意
Command1.Enabled=True
Timer1.Enabled=False
EndIf
EndSub
PrivateSubText2_Change()
Timer1.Interval=Val(Text2.Text)
IfText2.Text=""Then
MsgBox"请输入时间间隔",,注意
Command1.Enabled=True
Timer1.Enabled=False
EndIf
EndSub
PrivateSubText3_Change()
len1=Val(Text3.Text)
IfText3.Text=""Then
MsgBox"请输入绳长",,注意
Command1.Enabled=True
Timer1.Enabled=False
EndIf
EndSub
PrivateSubText4_Change()
IfText4.Text=""Then
MsgBox"请输入球半径",,注意
Command1.Enabled=True
Timer1.Enabled=False
EndIf
EndSub
(4)按照不同的绳长,球半径,间隔时间,起始角填入到对应的文本框
程序段如下:
PrivateSubText1_Change()
a=Val(Text1.Text)
IfText1.Text=""Then
MsgBox"请输入初始角",,注意
Command1.Enabled=True
Timer1.Enabled=False
EndIf
EndSub
PrivateSubText2_Change()
Timer1.Interval=Val(Text2.Text)
IfText2.Text=""Then
MsgBox"请输入时间间隔",,注意
Command1.Enabled=True
Timer1.Enabled=False
EndIf
EndSub
PrivateSubText3_Change()
len1=Val(Text3.Text)
IfText3.Text=""Then
MsgBox"请输入绳长",,注意
Command1.Enabled=True
Timer1.Enabled=False
EndIf
EndSub
PrivateSubText4_Change()
IfText4.Text=""Then
MsgBox"请输入球半径",,注意
Command1.Enabled=True
Timer1.Enabled=False
EndIf
EndSub
图2不同球半径
图3不同绳长
总结:
在本次课设中我的题目是《模拟单摆运动》,经过一周的课设,是我重新学习了vb。
并从中发现了许多新的知识与乐趣。
应用timer控件,命令按钮,文本框,标签等控件的使用和属性的意义以及if语句等在本次课设中我遇到了一些问题,例如单摆函数方程,不过通过自己在网上搜索资料以及向老师和同学的请教,我完成了本次课设。
从本次课设中,我又学到了许多关于vb方面的知识,锻炼了自己的能力和素质,在今后的生活和各做中奠定了良好的基础。
五、完整的源程序
Constp=3.14
Dima,len1,b
PrivateSubCommand1_Click()
IfCommand1.Caption="开始"Then
Command1.Caption="暂停"
Timer1.Enabled=True
Timer1.Interval=Text2.Text
Else
Command1.Caption="开始"
Timer1.Enabled=False
EndIf
EndSub
PrivateSubCommand2_Click()
End
EndSub
PrivateSubForm_Load()
a=Text1.Text
len1=1000*Sqr
(2)
b=1
Timer1.Enabled=False
EndSub
PrivateSubText1_Change()
a=Val(Text1.Text)
IfText1.Text=""Then
MsgBox"请输入初始角",,注意
Command1.Enabled=True
Timer1.Enabled=False
EndIf
EndSub
PrivateSubText2_Change()
Timer1.Interval=Val(Text2.Text)
IfText2.Text=""Then
MsgBox"请输入时间间隔",,注意
Command1.Enabled=True
Timer1.Enabled=False
EndIf
EndSub
PrivateSubText3_Change()
len1=Val(Text3.Text)
IfText3.Text=""Then
MsgBox"请输入绳长",,注意
Command1.Enabled=True
Timer1.Enabled=False
EndIf
EndSub
PrivateSubText4_Change()
IfText4.Text=""Then
MsgBox"请输入球半径",,注意
Command1.Enabled=True
Timer1.Enabled=False
EndIf
EndSub
PrivateSubTimer1_Timer()
r=Val(Text4.Text)
Shape1.Width=2*Val(Text4.Text)
Shape1.Height=2*Val(Text4.Text)
Ifb=1Then
Ifa=-Val(Text1.Text)Thenb=2
Line2.X2=Line2.X1-len1*Sin(a*p/180)
Line2.Y2=Line2.Y1+len1*Cos(a*p/180)
Shape1.Left=Line2.X1-r-len1*Sin(a*p/180)
Shape1.Top=Line2.Y1-r+len1*Cos(a*p/180)
a=a-1
EndIf
Ifb=2Then
Ifa=Val(Text1.Text)Thenb=1
Line2.X2=Line2.X1-len1*Sin(a*p/180)
Line2.Y2=Line2.Y1+len1*Cos(a*p/180)
Shape1.Left=Line2.X1-r-len1*Sin(a*p/180)
Shape1.Top=Line2.Y1-r+len1*Cos(a*p/180)
a=a+1
EndIf
EndSub
六、参考文献
[1]吴凤翔.《VisualBasic程序设计教程》.北京:
中国林业出版社,2003
[2]王运坚.《VisualBasic6.0应用指南》.北京:
人民邮电出版社,1997
[3]郭军.《网络管理与控制技术》.北京:
人民邮电出版社,2006
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 模拟 单摆 运动
![提示](https://static.bdocx.com/images/bang_tan.gif)