模拟时钟转动程序设计说明书.docx

上传人:b****1 文档编号:1356821 上传时间:2023-04-30 格式:DOCX 页数:8 大小:43.55KB
下载 相关 举报
模拟时钟转动程序设计说明书.docx_第1页
第1页 / 共8页
模拟时钟转动程序设计说明书.docx_第2页
第2页 / 共8页
模拟时钟转动程序设计说明书.docx_第3页
第3页 / 共8页
模拟时钟转动程序设计说明书.docx_第4页
第4页 / 共8页
模拟时钟转动程序设计说明书.docx_第5页
第5页 / 共8页
模拟时钟转动程序设计说明书.docx_第6页
第6页 / 共8页
模拟时钟转动程序设计说明书.docx_第7页
第7页 / 共8页
模拟时钟转动程序设计说明书.docx_第8页
第8页 / 共8页
亲,该文档总共8页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

模拟时钟转动程序设计说明书.docx

《模拟时钟转动程序设计说明书.docx》由会员分享,可在线阅读,更多相关《模拟时钟转动程序设计说明书.docx(8页珍藏版)》请在冰点文库上搜索。

模拟时钟转动程序设计说明书.docx

模拟时钟转动程序设计说明书

摘要-2-

1引言-3-

1.1选题背景-3-

1.2任务与分析-3-

2方案设计-4-

3界面设计-5-

4代码设计及程序调试-6-

总结与体会-10-

致谢-11-

参考文献-12-

摘要

随着计算机的不断更新发展,计算机图形操作和动画设计扮演着极为重要的角色,Windows环境下的VisualBasic提供了丰富的图形功能。

本文主要通过对选题背景、方案设计、界面设计、代码编写及调试以及软件使用说明等的介绍,介绍了作者利用VisualBasic对“模拟时钟转动”程序的开发设计过程。

关键词:

VisualBasic模拟时钟转动程序设计

1引言

1.1选题背景

通过一年来对VisualBasic高级语言程序设计的学习,我已经掌握了一些常用的控件的使用方法,对简单的程序设计的常用算法也有了一定的了解,还掌握了对图形和动画的一些基本操作。

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

1.2任务与分析

任务的具体内容:

设计一个类似于Windows“时钟”的程序,并用数字显示时间。

在界面显示一个活动时钟,能模拟机械钟表行走,还要准确的利用数字显示时间。

任务具体要求:

要求遵循面向对象和结构化程序设计的编程思路,设计合理的界面,设置所需控件及其属性,编写相应的事件过程,并上机调试程序,在基本要求达到后,进行一定创新设计。

并编写规范的设计说明书一份。

软件的预期功能:

实现石英钟表式的能够有指针运动的时钟显示。

2方案设计

显示一个动画时钟,该时针随着每一秒而动态变化。

与其他图形动画技术一样,每隔0.1秒(100毫秒)触发Timer事件下的过程,,首先利用PSET,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*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界面设计

简易时钟设计程序的模拟时钟运行界面如图所示

程序运行界面

将Form窗口设计为5000*5000的正方形,所取的圆的直径为窗体宽度的0.8倍,在界面中就可以依次设计出1—12数字label的位置,秒针每转动一格指针转过的角度为6度,就可以计算出秒针末端的坐标((BaseX+R*Sin(i*PI/180),BaseY-R*Cos(i*PI/180)

4代码设计及程序调试

第一步,先新建一个工程,然后用“工具箱”中的工具加入一个Timer1,将Timer1的属性interval改为100。

定义变量的代码如下:

ConstPI=3.1415926

DimBaseXAsInteger,BaseYAsInteger,RAsInteger

Dimr1AsInteger,r2AsInteger,r3AsInteger

第二步,绘制表盘的的代码,首先寻找圆心,将整个圆周先分为360份,每30份为1次绘制小时,再利用三角函数计算出每一分钟的刻度应该的坐标,画线,再沿分钟的刻度用circle函数边缘画出表盘的圆圈。

PrivateSubbiaopan()

DimiAsInteger

BaseX=Me.ScaleWidth/2

BaseY=Me.ScaleHeight/2

IfBaseX>BaseYThenR=BaseX*0.8

IfBaseX

以上语句是用于确定表盘的大小和表盘圆心的位置

Fori=0To360Step6

Fori=0To360Step6

IfiMod90=0Then

Me.DrawWidth=6

DrawLineBaseX+(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),3

EndIf

通过一个if语句结构,如果在for循环中如果i能够被90整出则画出3、6、9、12数字label所对应的表盘刻度

IfiMod30=0Then

Me.DrawWidth=6

DrawLineBaseX+(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),4

EndIf

通过一个if语句结构,如果在for循环中如果i能够被30整出则画出1、2、4、5、7、8、10、11数字label所对应的表盘刻度

Me.DrawWidth=5

Me.Circle(BaseX,BaseY),R,vbBlue

上面两句用于画出表盘的圆,圆心为(BaseX,BaseY)

第三步,绘制时钟的指针,先将系统时间中间的秒,分钟,小时提出作为1个参数,再用这个参数带入三角函数的运算,计算出时针,分针,秒针各自时间内应该走过的角度,利用划线的函数画出各个指针。

Me.DrawWidth=1

DrawLineBaseX,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函数,将坐标定于为静态变量,将上一次的画线颜色设置为背景颜色,并且设置画线的宽度。

PrivateSubDrawLine(x1AsInteger,y1AsInteger,x2AsInteger,y2AsInteger,FlagAsInteger)

StaticOldSX1AsInteger,OldSX2AsInteger,OldSY1AsInteger,OldSY2AsInteger

SelectCaseFlag

Case0

Me.DrawWidth=1

Me.Line(OldSX1,OldSY1)-(OldSX2,OldSY2),BackColor

Me.Line(x1,y1)-(x2,y2),vbBlue

OldSX1=x1

OldSX2=x2

OldSY1=y1

OldSY2=y2

在子过程中用Static函数确定下来原来的指针坐标,下一秒画线的时候将原来的指针掩盖

第五步,调用子过程,显示现在时间。

PrivateSubTimer1_Timer()

CallDrawClock

CallDrawClock

EndSub

Timer每触动一次,调用一次DrawClock和DrawClock子过程,画出当前时间的指针位置。

总结与体会

本段具体内容为本次课程设计整体上的总结与体会,可包含所设计软件的优点和不足的分析,遇到的困难及解决方法等。

在这个简易时钟设计的过程中,我是对时钟的表盘设计和时针的设计。

在课设创作的过程中,我学会了基本的VB编程技能,对软件制作也有了初步的了解。

同时也遇到了种种困难,体验到了编程的艰辛。

在实现“时钟指针运动”的过程中,指针运动的坐标难以计算,无法实现指针的机械转动。

无法实现对时钟的时间进行修改。

后来,我们通过相互讨论及查询相关资料,细心检查语句。

不断使逻辑和格式趋于完善。

最终,问题得以解决。

软件的制作是一件辛苦而费力的工作,但在同学的努力下,我们不但按时完成,而且从中学到了许多课本上没有的东西,首先是团队的合作精神。

现代软件的制作不是一个人可以完成的,个人始终需要集体的支持。

在确定制作项目之后,我们进行了分工,每个人都有任务。

但分工不等于对其余人的工作放手不管,在遇到困难时,大家集中在一起进行分析讨论,共同解决。

其次是学习与实践的关系。

在课本上学到了VB程序的基础知识。

但在实践中,需要大量的拓展知识。

我们在理解书本知识的基础上,查阅了大量的书籍,不仅找到了问题的解决方法,而且优中取优,尽量选取最简方法,从而促进了我们VB知识的提高。

在设计中会遇到很多的困难,其主要的原因如下:

(1)对所学过的相关知识不是很熟练,不会灵活应用;

(2)缺乏实践经验,不会理论联系实际;

(3)思维不是很灵活;

(4)在设计的时候不够认真仔细;

(5)知识面不够广;

(6)画图的经验不足,不会应用简单的方法;

(7)对VB编程不是很熟练,有很多的方法不会应用。

通过本次的VB程序简易时钟设计,要吸取一定的经验,在以后的学习和工作当中就要更加的认真仔细,尽量不让不该发生的错误发生,也更应该增加实践经验和灵活的思维方法,当然,努力学习还是首要的任务,因为只有有了很牢固的知识后才能让我们做什么事都游刃有余,胸有成竹。

这次的VB程序设计的计算能力,绘图能力,应用VB编程的能力,应用资料、手册、标准的能力都得到了很大的提高。

虽然,在设计的过程中遇到了很多的问题,最后每个问题都得到解决的时候,有种如释重负的感觉,心里充满了成就感。

此外,我还得出一个结论:

知识必须通过应用才能实现其价值!

有些东西以为学会了,但真正到用的时候才发现是两回事,所以我认为只有到真正会用的时候才是真的学会了。

致谢

这次能够顺利的完成这次课程设计,首先我要感谢在课程设计辅导我的张诗波老师,是他在我每次感到困难的时候给予我很大的帮助,还要感谢那些在设计的时候向我提供意见的同学们,当然还要感谢学校提供这么好的学习环境,让我们能够顺利的完成这次课程设计,感谢我的父母和朋友们给与我的物质精神上的鼓励和支持。

【参考文献】

[1]杨明广.王秀华.VisualBasic程序设计教程[M].北京:

中国科学技术出版社,2006

[2]王秀华.余建坤.VisualBasic程序设计上机和级考实训教程[M].北京:

中国科学技术出版社,2006

[3]郭瑞军.VisualBasic数据库开发实例精粹[M].北京:

电子工业出版社,2003

[4]曾强聪,新编visualbasic程序设计教程,清华大学出版社,2004

[5]刘瑞新,visualbasic程序设计教程(第二版),电子工业出版社,2003

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 幼儿教育 > 幼儿读物

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2