沈阳理工大学 机械工程 学院VB程序设计训练任务书学生姓名 班级 学号 设计题目 指针时钟 具体内容 一.目的和要求1. 目的:培养学生利用语言进行程序设计的能力,主要培养学生使用提供的彼岸准函数,熟练使用相关的控件和方法进行程序设计。VB设计训练是学习完《VB程序设计》课程后进行的一次全面的综合性上机实验。其目的在于为学生提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼学生的分析解决实际问题的能力。提高学生适应实际,实践编程的能力。2. 基本要求①要求使用VB对象的思想来完成程序的设计。②在设计程序的过程中,要求使用按钮、文本框、标签、形状等基本控件的属性、方法和相关事件。使用Line方法画线模拟指针。③在设计中使用系统提供的方法显示三个指针并区分其颜色可以随时间进度移动,指示正确当前时间。二.设计要求使用指针方式时钟显示当前时间,具有圆形的钟面,。新建立一个工程,在默认的窗体上添加以下三个LINE控件和一个TIMER控件分别用三条线表示时针、分针,秒针。 制作一个提取系统时间并正确走时的时钟,该时钟有时针、分针和秒针,并且可以走动,如果系统时间正确,则它的时间也准确。 控件名称 属性 属性值Picture AutoSize True AutoRedraw TrueTimer Enabled True Interval 1000Label1 Caption 指针效果 Font 黑体、粗体二. 技术要求1. 按照给定题目独立设计程序,上机调试通过。2. 写出设计报告分为两部分,一,Resize调整外形,二,Timer设置时间。使用了LINE控件用来表示指针,根据粗细不同,分别为时、分、秒针,每个LINE都有2个点的坐标,一个点是原点,也就是表盘的最中心点,另一个点根据当前的时间计算从而决定。然后通过TIMER控件,每隔1秒计算一次进行刷新,即可以实现。①Resize部分Dim xx1%,yy1% ‘宣告变量xx1,yy1为整型Private Sub Form_Resize()‘Me当前窗体, 清屏 = True‘AutoRedraw自动绘制图形xx1 = \ 2‘计算圆心的x轴的xx1yy1 = ( - 405) \ 2 ‘计算圆心的y轴的yy1‘设置三条线的坐标,将三根针的起点x1,y1全定位在圆心上 = xx1: = = xx1: = = xx1: = (xx1 - 950, yy1)-(xx1 - 850, yy1) (xx1 + 850, yy1)-(xx1 + 950, yy1) (xx1, yy1 - 950)-(xx1, yy1 - 850) (xx1, yy1 + 850)-(xx1, yy1 + 950) = (xx1, yy1), 950‘设置三条线的颜色与宽度 = = QBColor(12) = = QBColor(14) = = QBColor(10) = 500End Sub②Timer部分Private Sub Timer1_Timer() = Time‘标题栏显示时间Second Hand‘画秒针sdeg = Second(Time) * 6‘计算秒针的角度,每一秒是360度除以60秒=6度,所以乘以6srad = ( / 180) * sdeg‘VB是以弧度单位来计算,所以角度弧度是,秒针跑了N度就乘以 = + (900 * Sin(srad))‘900是秒针的长度,以圆心(line2的x1,y1)为准,计算出在这个弧度时位置 = - (900 * Cos(srad))‘900是秒针的长度,以圆心(line2的x1,y1)为准,计算出在这个弧度时位置Minute Hand‘画分针Mdeg = Minute(Time) * 6 + (sdeg * 1 / 60)‘计算分针的角度,每一分是360度除以60秒=6度,所以乘以6,秒针动分针也要动,所以要加上秒针移动所产生的分针移动。秒针转了一圈360度,分针才进了1分钟就是6度,比例为1/ = ( / 180) * Mdeg‘VB是以弧度单位来计算,所以角度弧度是,分针跑了N度就乘以 = (750 * Sin(mrad)) + ‘750是分针的长度,以圆心(line2的x1,y1)为准,计算出在这个弧度时位置 = - (750 * Cos(mrad))‘750是分针的长度,以圆心(line2的x1,y1)为准,计算出在这个弧度时位置Hour Hand‘画时针hdeg = Hour(Time) * 30 + (Mdeg / 12)‘计算时针的角度,每一小时是30度,所以乘以6,分针动时针也要动,所以要加上分针移动所产生的分针移动。秒针转了一圈360度,分针才进了1刻就是30度,比例为1/12hrad = ( / 180) * hdeg‘VB是以弧度单位来计算,所以角度弧度是,时针跑了N度就乘以 = (500 * Sin(hrad)) + ‘500是时针的长度,以圆心(line3的x1,y1)为准,计算出在这个弧度时位置 = - (500 * Cos(hrad))‘500是时针的长度,以圆心(line3的x1,y1)为准,计算出在这个弧度时位置End Sub③窗体布局截图一个Timer控件,三条Line控件。④程序运行后的截图三.结束语这个时钟程序花了不少时间,倒不是因为不去努力什么的,只是因为以前从没有做过VB编程的东西,刚开始连完全不知道那些函数是干什么的,因为和以前很多东西不一样,很多知识要重新开始学,于是去图书馆借了不少书,于是对时钟设计有了不少认识,可是在实际操作的时候还是遇到了很多麻烦,不过还好,虽然问题多多,最后也终于做出了这个程序,很简单的一个时钟程序,不过依然很高兴,毕竟是自己用VB做出的第一个程序,而且通过这次编程实习,我对VB编程知识也有了不少的了解,课程设计让我们学习与实践相结合,提高了我们对书本知识的理解和运用能力。锻炼了我的学习能力。在今后的学习中,还要继续加强自主学习与实践的能力。我相信对以后的工作之路也会有莫大的帮助,非常感谢能有这个锻炼的机会。四.参考文献 1. 龚沛曾.《VB程序设计简明教程(第二版)》,高等教育出版社,. . 《Visual Basic 课程设计案例精编》中国水利水电出版社 张勇等编4. 《Visual Basic使用大全》5. MSDN 帮助库指导教师___________(签字) 教研室主任__________(签字)