模拟时钟的VB程序
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
沈阳航空航天大学
课程设计任务书
学院:航空宇航工程学院专业:飞行器制造班级:94030102
学号:2009040301055 题目:模拟时钟
一、课程设计时间
2011年3月7日~11日(第1周),共计1周。
二、课程设计内容
在窗体上演示一个正在工作的有时、分、秒指针的时钟,要求:可以对时钟的时间进行手工修正。
用户界面中的菜单(或命令按钮)至少应包括“运行时钟”、“修改时间”、“退出”3项。
三、课程设计要求
程序质量:
✧贯彻事件驱动的程序设计思想。
✧用户界面友好,功能明确,操作方便;可以增加其它功能或修饰。
✧代码应适当缩进,并给出必要的注释,以增强程序的可读性。
课程设计说明书:
✧课设结束后,上交课程设计说明书和源程序。课程设计说明书的内容参见提
供的模板。
四、指导教师和学生签字
指导教师:________ 学生签名:________
五、成绩
六、教师评语
目录
一、需求分析 (4)
二、设计分析 (5)
三、关键技术 (7)
四、总结 (12)
五、完整的源程序 (14)
六、参考文献 (16)
一、需求分析
“模拟时钟”软件。在窗体上演示一个正在工作的有时、分、秒指针的时钟,要求:可以对时钟的时间进行手工修正。用户界面中的菜单(或命令按钮)至少应包括“运行时钟”、“修改时间”、“退出”3项。
①在VB窗体Form1中设计模拟时钟表盘,设计四个按钮:运行时钟、修改时间、应用、退出。在窗体Form2中设计填输入时间的位置和两个按钮:重新输入、确定。
②用运行时钟按钮使时钟从零点开始运行。
③利用修改时间按钮在Form2中输入合理时间,单击确定后单击应用使模拟时钟按所需时间开始运行。
④Form2中重新输入按钮可以使所有Text控件清空,可以进行时间的重新输入。
⑤程序可以实现时钟指针的转动。
二、设计分析
(1)基本原理:设计表盘,利用勾股定理实现时钟的转动,通过两个窗体的配合实现修改时间的功能,
使模拟时钟能像正常时钟一样运行。
(2)总体设计:
图1 总体设计
(3)详细设计:
图2 详细设计(4)表盘设计:
图3 表格三、关键技术
1实现指针的转动
Private Sub Timer1_Timer()
Static s!, m!, h!
s = s + 1
m = s / 60
h = m / 60
LineS.X2 = LineS.X1 + a * Sin(s * 6 * pai / 180)
LineS.Y2 = LineS.Y1 - a * Cos(s * 6 * pai / 180)
LineM.X2 = LineM.X1 + b * Sin(m * 6 * pai / 180) LineM.Y2 = LineM.Y1 - b * Cos(m * 6 * pai / 180)
LineH.X2 = LineH.X1 + c * Sin(h * 30 * pai / 180)
LineH.Y2 = LineH.Y1 - c * Cos(h * 30 * pai / 180)
End Sub '使时钟从初始位置开始工作
图4
2 Form1与Form2的连接
(1)显示Form2
Private Sub Command2_Click()
Timer2.Interval = 0
Timer1.Interval = 0
Form2.Show '关闭定时器1、定时器2,对时间进行手工修改
End Sub
图5
(2)Form2隐藏
Private Sub Command1_Click()
If Val(Text1.Text) > 24 Or Val(Text1.Text) < 0 Or Val(Text2.Text) > 60 Or Val(Text2.Text) < 0 Or Val(Text3.Text) > 60 Or Val(Text3.Text) < 0 Then MsgBox "请输入合理时间": Text1.Text = "": Text2.Text = "": Text3.Text = "" '数据不合理时弹出提示Else
Form1.Show
Form2.Hide '读取到修改后的时间数据并关闭窗体2 End If
End Sub
注:输入的时间不合理会弹出提示,输入时间为空时也会弹出提示
图6 图7
3.修改的时间数据的读取与运行
Private Sub Command4_Click()
If Form2.Text1.Text = "" Or Form2.Text2.Text = "" Or Form2.Text3.Text = "" Then
MsgBox "请输入准确时间": Form2.Show '提示用户输入准确时间Else
Timer2.Interval = 1000: s = Form2.Text3.Text - 1 '激活定时器2 End If
End Sub
Private Sub Timer2_Timer()
s = s + 1
m = Form2.Text2.Text + s / 60
h = Form2.Text1.Text + m / 60
LineS.X2 = LineS.X1 + a * Sin(s * 6 * pai / 180)
LineS.Y2 = LineS.Y1 - a * Cos(s * 6 * pai / 180)
LineM.X2 = LineM.X1 + b * Sin(m * 6 * pai / 180)
LineM.Y2 = LineM.Y1 - b * Cos(m * 6 * pai / 180)
LineH.X2 = LineH.X1 + c * Sin(h * 30 * pai / 180)
LineH.Y2 = LineH.Y1 - c * Cos(h * 30 * pai / 180)
End Sub '使时钟在修改时间后开始