计算机应用基础课程设计说明书vb时钟程序.docx

上传人:b****5 文档编号:5783128 上传时间:2023-01-01 格式:DOCX 页数:12 大小:170.96KB
下载 相关 举报
计算机应用基础课程设计说明书vb时钟程序.docx_第1页
第1页 / 共12页
计算机应用基础课程设计说明书vb时钟程序.docx_第2页
第2页 / 共12页
计算机应用基础课程设计说明书vb时钟程序.docx_第3页
第3页 / 共12页
计算机应用基础课程设计说明书vb时钟程序.docx_第4页
第4页 / 共12页
计算机应用基础课程设计说明书vb时钟程序.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

计算机应用基础课程设计说明书vb时钟程序.docx

《计算机应用基础课程设计说明书vb时钟程序.docx》由会员分享,可在线阅读,更多相关《计算机应用基础课程设计说明书vb时钟程序.docx(12页珍藏版)》请在冰豆网上搜索。

计算机应用基础课程设计说明书vb时钟程序.docx

计算机应用基础课程设计说明书vb时钟程序

交通与汽车工程学院

课程设计说明书

课程名称:

计算机应用基础课程设计

课程代码:

6011339

题目:

时钟程序设计

年级/专业/班:

2011级车辆2班

学生姓名:

曹安

学  号:

312011*********

开始时间:

2012年2月20日

完成时间:

2012年3月2日

课程设计成绩:

学习态度及平时成绩(30)

技术水平与实际能力(20)

创新(5)

说明书(计算书、图纸、分析报告)撰写质量(45)

总分(100)

指导教师签名:

年月日

目录(小三黑体,居中)

摘要……………………………………………………………………………………………2

1引言…………………………………………………………………………………………3

1.1问题的提出………………………………………………………………………………3

1.2任务与分析………………………………………………………………………………3

2设计方案……………………………………………………………………………………4

2.1程序功能设计……………………………………………………………………………4

2.1.1程序功能描述…………………………………………………………………………4

2.1.2程序功能结构分析……………………………………………………………………4

2.2程序界面和代码设计……………………………………………………………………5

2.2.1工程设计框架…………………………………………………………………………5

2.2.2各界面及代码设计……………………………………………………………………5

3结果分析…………………………………………………………………………………12

结论…………………………………………………………………………………………12

致谢…………………………………………………………………………………………13

参考文献……………………………………………………………………………………14

 

摘要

随着计算机的不断更新发展,计算机绘图方法和计时器的使用扮演着极为重要的角色,Windows环境下的VisualBasic提供了丰富的绘图方法。

本文主要通过对选题背景、方案设计、界面设计、代码编写及调试以及软件使用说明等的介绍,介绍了作者利用VisualBasic对“简易时钟程序设计”应用软件的开发设计过程,并分析了所开发软件系统的优点和不足。

关键词:

VisualBasic简易时钟程序设计

 

1引言

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

为了进一步加深理解、验证、巩固课堂教学内容,加深对可视化编程思想的理解,强化VisualBasic对程序流程控制、常用控件的属性、事件、方法的理解和使用;

1.1问题的提出

为了进一步提高编程能力、程序的调试能力,理论联系实际的能力;巩固所学的这些程序设计的方法,为了达到后续课程对实际编程计算能力的要求,特选定“简易时钟程序设计”这个寓教于乐的小题目作为课程设计实践教学环节的题目,有助于培养综合运用所学知识解决实际问题的能力,可以充分发挥想象力和创新能力;有助于提高独立思考能力,自学能力和团队协作能力。

1.2任务与分析

本任务是设计一个简易时钟,显示当前的时间。

主要运用了visualbasic的绘图方法和对timer控件的使用。

要将绘图方法和时间指针的走动相结合起来,找出其内在的联系。

 

2设计方案

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

与其他图形动画技术一样,每隔1秒(1000毫秒)触发Timer事件下的过程,绘制三个指针的位置,这样就实现了每秒走时的电子钟。

而显示当前时间则在timer事件中将当前时间(time)附给tabel1的caption,这样就显示啦,当前的时间。

在时钟的框架上,用绘图方法line和circle就可以啦。

2.1程序功能设计

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

2.1.1程序功能描述

1、在界面显示一个活动时钟,能模拟机械钟表行走;

2、表盘上有刻度和数字,数字显示当前时间;

3、时针、分针、秒针的位置与数字显示时间一致,与计算机系统时间一致;

4、用户能修改时间并与计算机系统时间一致;

2.1.2程序功能结构分析

主要使用时钟Timer控件的Interval属性和Timer事件。

1小时=60分=3600秒。

分别用Hour()函数、Minute()函数、Second()函数返回当前系统时间Time()的小时、分钟、秒数。

首先使用Scale方法定制用户坐标系统,如Picture1.Scale(X1,Y1)-(X2,Y2),定义了坐标系统(Picture1)的左上角(X1,Y1)和右下角(X2,Y2)的坐标值。

坐标系统的中心在图片框的正中,时钟绘制在图片框中的正中央,外圈用Pset方法或Circle方法绘制,时针、分针和秒针用Line方法选择不同的线形和颜色绘制。

每隔30°用Line画一大刻度,每隔6°用Line画一小刻度,表盘上的数字用CurrentX,CurrentY属性定位后再用Print方法输出。

时针、分针、秒针随时间变化而导致的位置改变同样使用Line方法来实现,代码写在Timer事件中。

2.2程序界面和代码设计

2.2.1工程设计框架

系统有两个窗口一个模块工程名为”我的时钟”

窗体名为”我的时钟”

2.2.2各界面及代码设计

(1)主界面

图1

欢迎界面主要代码如下:

ConstPI=3.1415926

DimBaseXAsInteger,BaseYAsInteger,RAsInteger

Dimbasex1AsInteger,basey1AsInteger,basex2AsInteger,basey2AsInteger

Dimbasex3AsInteger,basey3AsInteger,basex4AsInteger,basey4AsInteger

Dimbasex5AsInteger,basey5AsInteger

Dimr1AsInteger,r2AsInteger,r3AsInteger

DimjiayiAsInteger

DimjiaerAsInteger

DimSecondAsInteger

DimMinuteAsInteger

DimHoursAsInteger

PrivateSubCommand1_Click()

End

EndSub

PrivateSubCommand2_Click()

Form2.Show

EndSub

PrivateSubCommand3_Click()

jiayi=jiayi+1

EndSub

PrivateSubCommand4_Click()

jiaer=jiaer+1

EndSub

PrivateSubCommand5_Click()

jiayi=jiayi-1

EndSub

PrivateSubCommand6_Click()

jiaer=jiaer-1

EndSub

2)Command7代码

PrivateSubCommand7_Click()

jiayi=0

jiaer=0

EndSub

3)加载界面时公用代码

PrivateSubForm_Load()

Me.ScaleMode=3

Me.AutoRedraw=True

Me.ForeColor=vbBlack

Label16.Caption=Time

Label3.ForeColor=vbRed

Label6.ForeColor=vbRed

Label9.ForeColor=vbRed

Label12.ForeColor=vbRed

IfMe.Width<3000ThenMe.Width=3000

IfMe.Height<3000ThenMe.Height=3000

EndSub

4)画指针用函数

PrivateSubInit()

DimiAsInteger

BaseX=Me.ScaleWidth/2

BaseY=Me.ScaleHeight/2

IfBaseX>BaseYThenR=BaseY*0.6

IfBaseY>BaseXThenR=BaseY*0.6

r1=R*0.2

r2=R*0.1

r3=R*0.05

Fori=0To360Step6

IfiMod30=0Then

Me.DrawWidth=5

DrawLineBaseX+(R-3)*Sin(i*PI/180),BaseY-(R-3)*Cos(i*PI/180),BaseX+(R-8)*Sin(i*PI/180),BaseY-(R-8)*Cos(i*PI/180),3

Else

Me.DrawWidth=3

Me.PSet(BaseX+(R-3)*Sin(i*PI/180),BaseY-(R-3)*Cos(i*PI/180))

EndIf

Nexti

Me.DrawWidth=1

Me.Circle(BaseX,BaseY),R

EndSub

5)画外部表盘函数

PrivateSubDrawClock()

IfHours>12Then

Hours=Hours-12

EndIf

Me.DrawWidth=1

Me.Circle(BaseX,BaseY),4

DrawLineBaseX-r1*Sin(Second*PI/30),BaseY+r1*Cos(Second*PI/30),BaseX+(R-10)*Sin(Second*PI/30),BaseY-(R-10)*Cos(Second*PI/30),0

DrawLineBaseX-r2*Sin(Minute*PI/30),BaseY+r2*Cos(Minute*PI/30),BaseX+R*0.8*Sin(Minute*PI/30),BaseY-R*0.8*Cos(Minute*PI/30),1

DrawLineBaseX-r3*Sin((Hours+Minute/60)*PI/6),BaseY+r3*Cos((Hours+Minute/60)*PI/6),BaseX+R*0.6*Sin((Hours+Minute/60)*PI/6),BaseY-R*0.6*Cos((Hours+Minute/60)*PI/6),2

EndSub

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

StaticOldSX1AsInteger,OldSX2AsInteger,OldSY1AsInteger,OldSY2AsInteger

StaticOldMX1AsInteger,OldMX2AsInteger,OldMY1AsInteger,OldMY2AsInteger

StaticOldHX1AsInteger,OldHX2AsInteger,OldHY1AsInteger,OldHY2AsInteger

SelectCaseFlag

Case0

Me.DrawWidth=2

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

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

OldSX1=x1

OldSX2=x2

OldSY1=y1

OldSY2=y2

Case1

Me.DrawWidth=4

Me.Line(OldMX1,OldMY1)-(OldMX2,OldMY2),BackColor

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

OldMX1=x1

OldMX2=x2

OldMY1=y1

OldMY2=y2

Case2

Me.DrawWidth=6

Me.Line(OldHX1,OldHY1)-(OldHX2,OldHY2),BackColor

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

OldHX1=x1

OldHX2=x2

OldHY1=y1

OldHY2=y2

CaseElse

EndSelect

EndSub

PrivateSubForm_Resize()

Me.Cls

CallInit

EndSub

6)工作函数

PrivateSubTimer1_Timer()

DimaAsInteger

DimbAsInteger

DimcAsInteger

Second=DatePart("s",Time)

Minute=DatePart("n",Time)+jiaer

Hours=DatePart("h",Time)+jiayi

a=DatePart("s",Time)

b=DatePart("n",Time)+jiaer

c=DatePart("h",Time)+jiayi

CallDrawClock

DimTtAsString

Label16.Caption=c&":

"&b&":

"&a

EndSub

(2)信息界面

图2

界面一主要代码如下:

PrivateSubCommand1_Click()

UnloadMe

Form1.Show

EndSub

 

3结果分析

运行结果图3

结论

在设计过程中,我通过查阅大量有关资料,与同学交流经验和自学,并向老师请教等方式,使自己学到了不少知识,也经历了不少艰辛,但收获同样巨大。

在整个设计中我懂得了许多东西,大大提高了自己的动手能力,使我充分体会到了在创造过程中探索的艰难和成功时的喜悦。

虽然这个设计做的也不太好,但是在设计过程中所学到的东西是这次程序设计的最大收获和财富,使我终身受益。

当然,我也深刻地体会到从理论到实践是很难的过程,特别是在进行具体时间和指针传动之间的怎么联系时,遇到很大的困难,但最后还是通过上网寻求帮助,得以解决。

而在怎么样写出钟盘上的时间数时,则想出了一个看视比较笨的办法(用标签再在标签上写具体时间数字),但是确很实用。

设计时由于自己的粗心大意带来的错误也不少,所以以后再编程时一定会多加注意这方面的问题。

在编程的过程中学到了很多新的东西,例如:

怎样使用菜单编辑器,怎样将某个窗体在运行时显示为第一个。

当然以前所学的很多知识也得到巩固,例如对timer事件的使用,对绘图方法的掌握。

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

致谢

这次课程设计的圆满完成得到了滕老师还有同学的帮助,在此对我表示感谢.。

 

参考文献

[1]杨明广.王秀华.VisualBaisc程序设计教程.中国科学技术出版社,2006.11,21世纪教材;

[2]王秀华.余建坤.VisualBaisc程序设计上机和级考实训教程.中国科学技术出版社,2006.11,21世纪教材;

[3]龚沛曾.VisualBaisc程序设计简明教程(第二版).高等教育出版社,2003

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

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

当前位置:首页 > 表格模板 > 书信模板

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1