时钟模拟.docx
- 文档编号:14795409
- 上传时间:2023-06-27
- 格式:DOCX
- 页数:14
- 大小:207.84KB
时钟模拟.docx
《时钟模拟.docx》由会员分享,可在线阅读,更多相关《时钟模拟.docx(14页珍藏版)》请在冰点文库上搜索。
时钟模拟
沈阳航空航天大学
课程设计
学号__2009040301007_______
班级__94030101________
姓名__陈祥永________
指导教师__刘学平________
2011年3月18日
沈阳航空航天大学
课程设计任务书
学院:
航宇专业:
飞行器制造工程班级:
94030101
学号:
2009040301007题目:
时钟模拟
一、课程设计时间
2011年3月7日~11日(第1周),共计1周。
二、课程设计内容
在窗体上演示一个正在工作的有时、分、秒指针的时钟,要求:
可以对时钟的时间进行手工修正。
用户界面中的菜单(或命令按钮)至少应包括“运行时钟”、“修改时间”、“退出”3项。
三、课程设计要求
程序质量:
✧贯彻事件驱动的程序设计思想。
✧用户界面友好,功能明确,操作方便;可以增加其它功能或修饰。
✧代码应适当缩进,并给出必要的注释,以增强程序的可读性。
课程设计说明书:
✧课设结束后,上交课程设计说明书和源程序。
课程设计说明书的内容参见提供的模板。
四、指导教师和学生签字
指导教师:
________学生签名:
________
五、成绩
六、教师评语
目录
需求分析4
设计分析5
关键技术6
总结13
完整的源程序14
参考文献17
需求分析
模拟时钟运行,主要要求是设计一个有时针,分针和秒针的时钟。
其应该具有“运行时钟”,“修改时钟”和“退出程序”3种业务。
要求:
①在窗体上设计一个具有时针,分针和秒针的表盘。
此表盘用户菜单至少应包括“运行时钟”,“修改时钟”和“退出”3项。
②能够运行时钟。
③能够随时对时钟进行修改。
④能够随时退出运行程序。
设计分析
(1)基本原理:
建立程序设计与图形方法绘制图形的综合应用。
用CurrentX,CurrentY显示当前坐标,并用Line方法For循环以及Timer控件使时钟能够动态运行
(2)设计:
关键技术
1开始代码如下
PrivateSubForm_Load()
Label1.Visible=False
Label2.Visible=False
Label3.Visible=False
Text1.Visible=False
Text2.Visible=False
Text3.Visible=False
Shape1.Shape=3
Shape1.Width=3000
Shape1.Height=3000
'设置指针初始位置
LineS.X1=Shape1.Left+Shape1.Width/2
LineS.Y1=Shape1.Top+Shape1.Height/2
LineS.X2=LineS.X1
LineS.Y2=Shape1.Top/90*100
LineM.X1=LineS.X1
LineM.Y1=LineS.Y1
LineM.X2=LineM.X1
LineM.Y2=Shape1.Top/90*100+150
LineH.X1=LineS.X1
LineH.Y1=LineS.Y1
LineH.X2=LineH.X1
LineH.Y2=Shape1.Top/90*100+300
'求三个针的长度
len_s=Sqr((LineS.X1-LineS.X2)^2+(LineS.Y1-LineS.Y2)^2)
len_m=Sqr((LineM.X1-LineM.X2)^2+(LineM.Y1-LineM.Y2)^2)
len_h=Sqr((LineH.X1-LineH.X2)^2+(LineH.Y1-LineH.Y2)^2)
'设置指针粗细、颜色
LineS.BorderColor=RGB(0,0,0)
LineS.BorderWidth=1
LineM.BorderColor=RGB(0,0,255)
LineM.BorderWidth=2
LineH.BorderColor=RGB(255,0,0)
LineH.BorderWidth=3
'标记表盘
Form1.CurrentX=LineS.X1-400
Form1.CurrentY=Shape1.Top
Print12
Form1.CurrentX=LineS.X1-260
Form1.CurrentY=Shape1.Top+Shape1.Height-350
Print6
Form1.CurrentX=Shape1.Left+Shape1.Width-400
Form1.CurrentY=Shape1.Top+Shape1.Height/2-200
Print3
Form1.CurrentX=Shape1.Left-100
Form1.CurrentY=Shape1.Top+Shape1.Height/2-180
Print9
EndSub
2Timer控件代码如下
PrivateSubTimer1_Timer()
s=s+1
LineS.X2=LineS.X1+len_s*Sin(s*6*pi/180)
LineS.Y2=LineS.Y1-len_s*Cos(s*6*pi/180)
Ifs=60Thenm=m+1:
s=0:
h=h+1/60
LineM.X2=LineM.X1+len_m*Sin(m*6*pi/180)
LineM.Y2=LineM.Y1-len_m*Cos(m*6*pi/180)
Ifm=60Thenm=0
Ifh>12Thenh=h-12
LineH.X2=LineH.X1+len_h*Sin(h*30*pi/180)
LineH.Y2=LineH.Y1-len_h*Cos(h*30*pi/180)
EndSubEndSub
3开始运行代码如下
PrivateSubCommand1_Click()
s=Second(Time):
m=Minute(Time):
h=Hour(Time)+m/60
Timer1.Enabled=True
Timer1.Interval=1000
EndSub
4修改时间代码如下
PrivateSubCommand2_Click()
Timer1.Enabled=False
Label1.Visible=True
Label2.Visible=True
Label3.Visible=True
Text1.Visible=True
Text2.Visible=True
Text3.Visible=True
MsgBox"请输入要修改的时间"
Text1.SetFocus
MsgBox"输入的数字必须符合常识"
EndSub
5确定控件按钮代码如下
PrivateSubCommand4_Click()
Dima%,b%,c%
a=Text1:
b=Text2:
c=Text3
s=a:
m=b:
h=c+m/60
Timer1.Enabled=True
Timer1.Interval=1000
Label1.Visible=False
Label2.Visible=False
Label3.Visible=False
Text1.Visible=False
Text2.Visible=False
Text3.Visible=False
EndSub
5退出代码如下
PrivateSubCommand3_Click()
End
EndSub
总结
这次课设我的题目是时钟模拟,通过这次课设让我了解了VB可以画出许多图形,并且可以将其与Timer控件联系起来,是图形能够运动起来。
还可以运用一些颜色函数给予图形色彩,使图形更加美观生动。
在课设过程中,我遇到了重重困难,例如:
怎样画出时钟和指针的形状以及标注表盘刻度。
还有,怎样设计Timer的内部代码以使时钟能够运行。
通过老师的指点和自己查阅资料,我克服了困难,顺利的完成了任务。
同时我也了解了VB的出现是一场技术革命,它在生活中各个方面都能发挥巨大的作用,而且它也是理论联系实践的一个重要环节,培养了我们独立的创新思维能力。
完整的源程序
Constpi=3.14159
Privatelen_s%,len_m%,len_h%
Dims!
m!
h!
PrivateSubCommand1_Click()
s=Second(Time):
m=Minute(Time):
h=Hour(Time)+m/60
Timer1.Enabled=True
Timer1.Interval=1000
EndSub
PrivateSubCommand2_Click()
Timer1.Enabled=False
Label1.Visible=True
Label2.Visible=True
Label3.Visible=True
Text1.Visible=True
Text2.Visible=True
Text3.Visible=True
MsgBox"请输入要修改的时间"
Text1.SetFocus
MsgBox"输入的数字必须符合常识"
EndSub
PrivateSubCommand3_Click()
End
EndSub
PrivateSubCommand4_Click()
Dima%,b%,c%
a=Text1:
b=Text2:
c=Text3
s=a:
m=b:
h=c+m/60
Timer1.Enabled=True
Timer1.Interval=1000
Label1.Visible=False
Label2.Visible=False
Label3.Visible=False
Text1.Visible=False
Text2.Visible=False
Text3.Visible=False
EndSub
PrivateSubForm_Load()
Label1.Visible=False
Label2.Visible=False
Label3.Visible=False
Text1.Visible=False
Text2.Visible=False
Text3.Visible=False
Shape1.Shape=3
Shape1.Width=3000
Shape1.Height=3000
'设置指针初始位置
LineS.X1=Shape1.Left+Shape1.Width/2
LineS.Y1=Shape1.Top+Shape1.Height/2
LineS.X2=LineS.X1
LineS.Y2=Shape1.Top/90*100
LineM.X1=LineS.X1
LineM.Y1=LineS.Y1
LineM.X2=LineM.X1
LineM.Y2=Shape1.Top/90*100+150
LineH.X1=LineS.X1
LineH.Y1=LineS.Y1
LineH.X2=LineH.X1
LineH.Y2=Shape1.Top/90*100+300
'求三个针的长度
len_s=Sqr((LineS.X1-LineS.X2)^2+(LineS.Y1-LineS.Y2)^2)
len_m=Sqr((LineM.X1-LineM.X2)^2+(LineM.Y1-LineM.Y2)^2)
len_h=Sqr((LineH.X1-LineH.X2)^2+(LineH.Y1-LineH.Y2)^2)
'设置指针粗细、颜色
LineS.BorderColor=RGB(0,0,0)
LineS.BorderWidth=1
LineM.BorderColor=RGB(0,0,255)
LineM.BorderWidth=2
LineH.BorderColor=RGB(255,0,0)
LineH.BorderWidth=3
'标记表盘
Form1.CurrentX=LineS.X1-400
Form1.CurrentY=Shape1.Top
Print12
Form1.CurrentX=LineS.X1-260
Form1.CurrentY=Shape1.Top+Shape1.Height-350
Print6
Form1.CurrentX=Shape1.Left+Shape1.Width-400
Form1.CurrentY=Shape1.Top+Shape1.Height/2-200
Print3
Form1.CurrentX=Shape1.Left-100
Form1.CurrentY=Shape1.Top+Shape1.Height/2-180
Print9
EndSub
PrivateSubTimer1_Timer()
s=s+1
LineS.X2=LineS.X1+len_s*Sin(s*6*pi/180)
LineS.Y2=LineS.Y1-len_s*Cos(s*6*pi/180)
Ifs=60Thenm=m+1:
s=0:
h=h+1/60
LineM.X2=LineM.X1+len_m*Sin(m*6*pi/180)
LineM.Y2=LineM.Y1-len_m*Cos(m*6*pi/180)
Ifm=60Thenm=0
Ifh>12Thenh=h-12
LineH.X2=LineH.X1+len_h*Sin(h*30*pi/180)
LineH.Y2=LineH.Y1-len_h*Cos(h*30*pi/180)
EndSub
参考文献
[1]刘瑞新.《VisualBasic程序设计教程》.北京:
机械工业出版社,2003
[2]龚沛曾杨志强陆慰民.《VisualBasic程序设计教程》.高等教育出版社2007
[3]龚沛曾杨志强陆慰民.《VisualBasic程序设计教程实验指导与测试》.高等教育出版社2007
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 时钟 模拟