《模拟时钟的VB程序.docx》由会员分享,可在线阅读,更多相关《模拟时钟的VB程序.docx(17页珍藏版)》请在优知文库上搜索。
1、沈阳航空航天大学课程设计学号班级姓名指导教师94030102李超刘学平2010年3月15日沈阳航空航天大学课程设计任务书学院:航空宇航工程学院专业:飞行器创造班级:94030102学号:2022040301055题目:摹拟时钟一、课程设计时间2022年3月7日11日(第1周),共计1周。二、课程设计内容在窗体上演示一个正在工作的有时、分、秒指针的时钟,要求:可以对时钟的时间进行手工修正。用户界面中的菜单(或者命令按钮)至少应包括“运行时钟”、“修改时间”、“退出” 3项。三、课程设计要求程序质量:贯彻事件驱动的程序设计思想。用户界面友好,功能明确,操作方便;可以增加其它功能或者修饰。代码应适当
2、缩进,并给出必要的注释,以增强程序的可读性。课程设计说明书:课设结束后,上交课程设计说明书和源程序。课程设计说明书的内容参见提供的模板。四、指导教师和学生签字指导教师:学生签名:五、成绩六、教师评语沈航设计用纸目录一、需求分析二、设计分析三、关键技术四、总结五、完整的源程序六、参考文献沈航设计用纸 一、需求分析“摹拟时钟”软件。在窗体上演示一个正在工作的有 时、分、秒 指针的时钟,要求:可以对时钟的时间进行手工修正。用户界面中的菜 单(或者命令按钮)至少应包括“运 行时钟”、“修改时间”、“退 出” 3项。在VB窗体Fornl 1中设计摹拟时钟表盘,设计四个 按钮:运 行时钟、修改时间、应用、
3、退出。在窗体Fonn2中设计填输入时间的位 置和两个按钮:重新输入、确定。用运行时钟按钮使时钟从零点开始运行。利用修改时间按钮在Form2中输入合理时间,单击确定后单 击应用使摹拟时钟按所需时间开始运行。Form2中重新输入按钮可以使所有Text控件清空,可以进行 时间的重新输入。程序可以实现时钟指针的转动。、设计分析(1)基本原理:设计表盘,利用勾股定理实现时钟的转动,通过 两个窗体的配合实现修改时间的功能,使摹拟时钟能像正常时 钟一样运行。(2) 总体设计:(3)详细设计:图1总体设计图2详细设计(4 )表盘设计:图3表格三、关键技术1实现指针的转动Private Sub Timerl_T
4、imerO Static s!, m!, h!s = s + 1m = s / 60h = m / 60LineS.X2=LineS.Xl+ a* Sin(s*6*pai/ 180)LineS.Y2=LineS.Yl-a* Cos(s*6*pai/ 180)LineM.X2=LineM.Xl+ b* Sin(m*6*pai/ 180)LineM.Y2=LineM. Yl-b* Cos(m*6*pai/ 180)LineH.X2 = LineH.Xl + c * Sin(h * 30 * pai / 180)LineH. Y2 = LineH. Y l c * Cos(h * 30 * pai
5、/180)End Sub使时钟从初始位置开始工作2 Forml与Form2的连接(1)显示 Form2Private Sub Command2_Click()Timer2.Interval = 0TimerLInterval = 0Form2.Show 关闭定时器1、定时器2,对时间进行手工修改End Sub图5(2)Form2 隐藏Private Sub Command l_Click()If Val(TextLText) 24 Or Val(TextLText) 60Or Val (Text2. Text) 60 Or Val (Text3. Text) 0 Then MsgBox 请输入
6、合理时间Textl. Text = Text2. Text =,数据不合理时弹出提示ElseFormLShowForm2.Hide读取到修改后的时间数据并关闭窗体2End IfEnd Sub注:输入的时间不合理会弹出提示,输入时间为空时也会弹出提示图6沈航设计用纸3 ,修改的时间数据的读取与运行Private Sub Command4_Click ()If Form2.Textl.Text = Or Form2.Text2. Text = Or 请输入准确时间提示用户输入准确时间ElseTimer2.Interval = 1000: s = Form2.Text3.Tex 激活定时器 2End
7、 IfEnd SubPrivate Sub Timer2_Timer()s = s + 1m = Form2.Text2.Text + s / 60h = Form2.Textl.Text + m / 60LineS.X2 =LineS.Y2 =LineS.Xl +LineS.Yl -a * Sin(s * 6a * Cos(s * 6pai / 180)pai /180)LineM.X2 =LineM.Y2 =LineM.Xl +LineM.Yl -b * Sin(m * 6b * Cos(m * 6pai /180)pai / 180)LineH.X2 = LineH.Xl +c*Sin(
8、h*30*pai180)LineH.Y2 = LineH.Yl -c * Cos(h *30* pai/180)End Sub,使时钟在修改时间后开始四、总结本次课程设计我的任务是运用VB设计一个摹拟时钟,包含 运行时钟、修改时间、应用、退出等功能。程序需要两个窗体、两个TinIer控件以及四个按钮 控件: 运行时钟、修改时间、应用、退出。可实现与正常时钟相同的运 行速度。可以进行手动的修改、运行时钟。还可以对用户输入的 时间数据进行判断。在此次课设过程中,设计界面使我了解到手工绘图方面的一 些控件,现在可以进行熟练的运用。Tilner控件的运行方法让我 用尽了心思,对于指针的初始位置的设置,
9、我运用到了控件的尺 寸,指针的长度设置我运用到了勾股定理,为了美观和人性化处 理对各个功能之间的显示与切换我下个很大功夫。VB的设计过程让我深刻认识到知识的实用之处,这是一个 即动手又动脑的一次实习。让我意识到VB的魅 力所在,它使我 们能形象的了解到生活中的一些具体事物,使我们锻炼了自己的 动手能力,发挥了自己的智慧。让我们发现自己的不足,认识到 更多我们所没有触及的知识。虽然这次设计浮现不少艰难的,但是在老师和学生的匡助下 我终于做出来了,我感到很开心,毕竟是自己的劳动成果。很高 兴可以完成这次课设,它让我懂得惟独努力才有收获。五、完整的源程序Private Sub Command3_Cl
10、ick ()ElKr结束程序End SubPrivate Sub Command4_Click()If Form2.Textl.Text = Or Form2.Text2. Text = Or 请输入准确时间提示用户输入准确时间ElseTimer2.Interval = 1000: s = Form2.Text3.Tex 激活定时器 2End IfEnd SubPrivate Sub Form_Load()LineS.Xl = ShapeLLeft + ShapeLWidth / 2LineS.Yl = ShapeLTop + ShapeLHeight / 2LineS.X2 = LineS.
11、XlLineS.Y2 = ShapeLTop + 15(设置秒针初始位置LineM.Xl = LineS.XlLineM.Yl = LineS.YlLineM.X2 = LineM.XlLineM. Y2 = ShapeLTop + 260设置分针初始位置LineH.Xl = LineS.XlLineH.Yl = LineS.YlLineH.X2 = LineH.XlLineH.Y2 = ShapeLTop + 500设置时针初始位置a = Sqr(LineS.Xl - LineS.X2) b =2 (LineS.Yl LineS.Y2) A 2)Sqr(LineM.Xl - LineM.X2
12、)2 + (LineM.Yl LineM.Y2)人 2)c = Sqr(LineH. Xl - LineH. X2)指2 + (LineH. Yl . LineH.Y2)设置 2),针长唐LineS.BorderColor = vbBlackLineS.BorderWidth = 1LineM.BorderColor = vbBlueLineM. Border W idth = 2LineH-BorderColor = vbRedLineH.BorderWidth = 3设置指针的颜色和粗细End SubPrivate Sub Timerl_Timer()Static s!, m!, h!s
13、= s + 1m = s / 60h = m / 60LineS.X2=LineS.XlSin(sLineS.Y2=LineS.YlCos(sLineM.X=LineM.XlSin(m2=LineM. YlCos(LineH.X2=LineH.XlSin(hLineH.Y2 = LineH.Yl -cCos(hEnd Sub Private Sub Timer2_Timer()s = s + 1m = Form2.Text2.Text + s / 60 h =Form2.Textl.Text + m / 60LineS.X2 = LineS.Xl + a * Sin(s * 6LineS.Y2
14、 = LineS.Yl - a * Cos(s * 6LineM.X2 = LineM.X 1 + b * Sin(m * (LineM.Y2 = LineM.Yl b * Cos(m * LineH.X2 = LineH.Xl + c * Sin(h * LineH.Y2 = LineH.Yl - c * Cos(h * End Subpai 180)pai 180)pai 180)pai 180)30* pai/180)30* pai/180),使时钟从初始位置开始工作* pai/180)* pai /180)* pai/180)6 * pai /180)30* pai/180)30* pai /180)使时钟在修改时间后开始工作六、参考文献1刘瑞新Visual Basi程序设计教程.北京:机械工业出版社,20032龚沛增.Visual Basi程序设计教程,清华大学出版