模拟时钟转动程序设计说明书_第1页
模拟时钟转动程序设计说明书_第2页
模拟时钟转动程序设计说明书_第3页
模拟时钟转动程序设计说明书_第4页
模拟时钟转动程序设计说明书_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、摘要.-0-1引言.-2-1.1选题背景.-2-1.2任务与分析.-2-2方案设计.-3-3界面设计.-3-4代码设计及程序调试.-4-总结与体会.-7-致谢.-9-参考文献.-10-摘要随着计算机的不断更新发展,计算机图形操作和动画设计扮演着极为重要的角色,Windows环境下的VisualBasic提供了丰富的图形功能。本文主要通过对选题背景、方案设计、界面设计、代码编写及调试以及软件使用说明等的介绍,介绍了作者利用VisualBasic对“模拟时钟转动”程序的开发设计过程。关键词:VisualBasic模拟时钟转动-1-程序设计1引言1.1选题背景通过一年来对VisualBasic高级语

2、言程序设计的学习,我已经掌握了一些常用的控件的使用方法,对简单的程序设计的常用算法也有了一定的了解,还掌握了对图形和动画的一些基本操作。为了进一步加深理解、验证、巩固课堂教学内容,加深对可视化编程思想的理解,强化VisualBasic对程序流程控制、常用控件的属性、事件、方法的理解和使用;为了进一步提高编程能力、程序的调试能力,理论联系实际的能力;巩固所学的这些程序设计的方法,为了达到后续课程对实际编程计算能力的要求,特选定“模拟时钟转动程序设计”这个寓教于乐的小题目作为课程设计实践教学环节的题目,有助于培养综合运用所学知识解决实际问题的能力,可以充分发挥想象力和创新能力;有助于提高独立思考能

3、力,自学能力和团队协作能力。1.2任务与分析任务的具体内容:设计一个类似于Windows“时钟”的程序,并用数字显示时间。在界面显示一个活动时钟,能模拟机械钟表行走,还要准确的利用数字显示时间。任务具体要求:要求遵循面向对象和结构化程序设计的编程思路,设计合理的界面,设置所需控件及其属性,编写相应的事件过程,并上机调试程序,在基本要求达到后,进行一定创新设计。并编写规范的设计说明书一份。软件的预期功能:实现石英钟表式的能够有指针运动的时钟显示。-2-2方案设计显示一个动画时钟,该时针随着每一秒而动态变化。与其他图形动画技术一样,每隔0.1秒(100毫秒)触发Timer事件下的过程,首先利用PS

4、ET,LINE,CIRCLE绘图方法绘制时钟的表盘。然后再绘制三个指针的位置,计算指针的坐标,设计各个指针的转动角度和时间,这样就实现了每秒走时的电子钟。主要思路:(1)绘图方法中的Line,Circle方法进行表盘的设计将Form大小确定为50000*5000,通过Form大小的确定可以确定出表盘圆心的位置,即(BaseX=Me.ScaleWidth/2,BaseY=Me.ScaleHeight/2),以及圆的半径大小R=BaseX*0.8(2)绘图方法中的line来绘制指针通过圆心的确定就能确定指针的起点坐标,从而设计指针的长度和两端点坐标,起点坐标为(BaseX+(R-15)*Sin(i

5、*PI/180),BaseY-(R-15)*Cos(i*PI/180)),终点坐标为(BaseX+R*Sin(i*PI/180),BaseY-R*Cos(i*PI/180))(3)利用Timer控件来控制指针的绘制和运动将Timer控件的Interval属性设为100毫秒,即是1秒触动一次时间,从而通过调用DrawClock,Biaopan子过程每一秒画一次表盘(4)子过程,子函数在程序中通过DrawClock,Biaopan子过程来画表盘和指针,每一次调用子过程,画出下一秒的指针,以及用背景色为白色色上一秒的指针线掩盖原来的指针。-3-3界面设计简易时钟设计程序的模拟时钟运行界面如图所示程序

6、运行界面将Form窗口设计为5000*5000的正方形,所取的圆的直径为窗体宽度的0.8倍,在界面中就可以依次设计出112数字label的位置,秒针每转动一格指针转过的角度为6度,就可以计算出秒针末端的坐标(BaseX+R*Sin(i*PI/180),BaseY-R*Cos(i*PI/180)-4-4代码设计及程序调试第一步,先新建一个工程,然后用“工具箱”中的工具加入一个Timer1,将Timer1的属性interval改为100。定义变量的代码如下:ConstPI=3.1415926DimBaseXAsInteger,BaseYAsInteger,RAsIntegerDimr1AsInte

7、ger,r2AsInteger,r3AsInteger第二步,绘制表盘的的代码,首先寻找圆心,将整个圆周先分为360份,每30份为1次绘制小时,再利用三角函数计算出每一分钟的刻度应该的坐标,画线,再沿分钟的刻度用circle函数边缘画出表盘的圆圈。PrivateSubbiaopan()DimiAsIntegerBaseX=Me.ScaleWidth/2BaseY=Me.ScaleHeight/2IfBaseX>BaseYThenR=BaseX*0.8IfBaseX<BaseYThenR=BaseY*0.8以上语句是用于确定表盘的大小和表盘圆心的位置Fori=0To360Step6F

8、ori=0To360Step6IfiMod90=0ThenMe.DrawWidth=6DrawLineBaseX+(R-15)*Sin(i*PI/180),BaseY-(R-15)*Cos(i*PI/180),BaseX+R*Sin(i*PI/180),BaseY-R*Cos(i*PI/180),3EndIf通过一个if语句结构,如果在for循环中如果i能够被90整出则画出3、6、9、12数字label所对应的表盘刻度IfiMod30=0ThenMe.DrawWidth=6DrawLineBaseX+(R-15)*Sin(i*PI/180),BaseY-(R-15)*Cos(i*PI/180)

9、,BaseX+R*Sin(i*PI/180),BaseY-R*Cos(i*PI/180),4EndIf通过一个if语句结构,如果在for循环中如果i能够被30整出则画出1、2、4、5、7、8、10、11数字label所对应的表盘刻度Me.DrawWidth=5Me.Circle(BaseX,BaseY),R,vbBlue上面两句用于画出表盘的圆,圆心为(BaseX,BaseY)第三步,绘制时钟的指针,先将系统时间中间的秒,分钟,小时提出作为1个-5-参数,再用这个参数带入三角函数的运算,计算出时针,分针,秒针各自时间内应该走过的角度,利用划线的函数画出各个指针。Me.DrawWidth=1Dr

10、awLineBaseX,BaseY,BaseX+(R-8)*Sin(Second*PI/30),BaseY-(R-8)*Cos(Second*PI/30),0用于画出秒针的线条DrawLineBaseX,BaseY,BaseX+R*0.8*Sin(Minute*PI/30),BaseY-R*0.8*Cos(Minute*PI/30),1用于画出分针的线条DrawLineBaseX,BaseY,BaseX+R*0.6*Sin(Hours+Minute/60)*PI/6),BaseY-R*0.6*Cos(Hours+Minute/60)*PI/6),2用于画出时针的线条第四步,画线函数,用line

11、函数,将坐标定于为静态变量,将上一次的画线颜色设置为背景颜色,并且设置画线的宽度。PrivateSubDrawLine(x1AsInteger,y1AsInteger,x2AsInteger,y2AsInteger,FlagAsInteger)StaticOldSX1AsInteger,OldSX2AsInteger,OldSY1AsInteger,OldSY2AsIntegerSelectCaseFlagCase0Me.DrawWidth=1Me.Line(OldSX1,OldSY1)-(OldSX2,OldSY2),BackColorMe.Line(x1,y1)-(x2,y2),vbBlu

12、eOldSX1=x1OldSX2=x2OldSY1=y1OldSY2=y2在子过程中用Static函数确定下来原来的指针坐标,下一秒画线的时候将原来的指针掩盖第五步,调用子过程,显示现在时间。PrivateSubTimer1_Timer()CallDrawClockCallDrawClockEndSubTimer每触动一次,调用一次DrawClock和DrawClock子过程,画出当前时间的指针位置。-6-总结与体会本段具体内容为本次课程设计整体上的总结与体会,可包含所设计软件的优点和不足的分析,遇到的困难及解决方法等。在这个简易时钟设计的过程中,我是对时钟的表盘设计和时针的设计。在课设创作的

13、过程中,我学会了基本的VB编程技能,对软件制作也有了初步的了解。同时也遇到了种种困难,体验到了编程的艰辛。在实现“时钟指针运动”的过程中,指针运动的坐标难以计算,无法实现指针的机械转动。无法实现对时钟的时间进行修改。后来,我们通过相互讨论及查询相关资料,细心检查语句。不断使逻辑和格式趋于完善。最终,问题得以解决。软件的制作是一件辛苦而费力的工作,但在同学的努力下,我们不但按时完成,而且从中学到了许多课本上没有的东西,首先是团队的合作精神。现代软件的制作不是一个人可以完成的,个人始终需要集体的支持。在确定制作项目之后,我们进行了分工,每个人都有任务。但分工不等于对其余人的工作放手不管,在遇到困难

14、时,大家集中在一起进行分析讨论,共同解决。其次是学习与实践的关系。在课本上学到了VB程序的基础知识。但在实践中,需要大量的拓展知识。我们在理解书本知识的基础上,查阅了大量的书籍,不仅找到了问题的解决方法,而且优中取优,尽量选取最简方法,从而促进了我们VB知识的提高。在设计中会遇到很多的困难,其主要的原因如下:(1)对所学过的相关知识不是很熟练,不会灵活应用;(2)缺乏实践经验,不会理论联系实际;(3)思维不是很灵活;(4)在设计的时候不够认真仔细;(5)知识面不够广;(6)画图的经验不足,不会应用简单的方法;(7)对VB编程不是很熟练,有很多的方法不会应用。通过本次的VB程序简易时钟设计,要吸

15、取一定的经验,在以后的学习和工作当中就要更加的认真仔细,尽量不让不该发生的错误发生,也更应该增加实践经验和灵活的思维方法,当然,努力学习还是首要的任务,因为只有有了很牢固的知识后才能让我们做什么事都游刃有余,胸有成竹。这次的VB程序设计的计算能力,绘图能力,应用VB编程的能力,应用资料、-7-手册、标准的能力都得到了很大的提高。虽然,在设计的过程中遇到了很多的问题,最后每个问题都得到解决的时候,有种如释重负的感觉,心里充满了成就感。此外,我还得出一个结论:知识必须通过应用才能实现其价值!有些东西以为学会了,但真正到用的时候才发现是两回事,所以我认为只有到真正会用的时候才是真的学会了。-8-致谢这次能够顺利的完成这次课程设计,首先我要感谢在课程设计辅导我的张诗波老师,是他在我每次感到困难的时候给予我很大的帮助,还要感谢那些在设计的时候向我提供意见的同学们,当然还要感谢学校提供这么好的学习环境,让我们能够顺利的完成这次课程设计,感谢我的父母和朋友们给与

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论