当前位置:编程学习 > VB >>

用VB编程 “儿童认识钟表”?? 约50行

1.目的
培养学生综合利用VB语言进行程序设计的能力,主要是利用VB的标准控件和基本绘图进行设计。
2.基本要求
■如图1所示,在窗体上添加3个文本框,2个命令按钮,并画一个表盘。
■再在窗体上添加一个时钟控件,用来实现钟表的计时。
■程序运行时,钟表开始计时,表盘上的3个指针按计时规律进行顺时针旋转,参考图1。
■在3个文本框中分别输入时、分、秒,单击“显示指定时间”按钮,表盘上的指针按给定时间显示,如图2。
■单击“恢复时钟”按钮,时钟又恢复为正常计时。

注:本题是一道很容易的题,主要是为了掌握标准控件和常用绘图方法的使用,只要掌握教材中的相关知识,就能顺利完成。
3.创新要求

三、设计方法和基本原理
1.问题描述
程序界面可以参考上图,对程序界面上控件的属性要进行设置,以便形成一个良好的界面,在彻底掌握基本语句的基础上,进一步学习程序结构如何安排更合理、更有效,参考教材中相应的例题,编写合理的程序代码。
2.问题的解决方案
①设计程序界面
参考上述给出的界面,完成窗体界面的设计。注意,在表盘的圆心部位有代表时、分、秒的3条初始直线。如果有自己的思路和想法,也可以自行设计窗体界面,但必须保证完成本任务。
②编写代码
本任务的代码不多,也不困难。编写代码时要注意程序的合理性。
四、主要技术问题的描述
本题中较为困难的是Shape和Timer控件的使用。这类问题的相关资料可以从参考书中或网络中找到,请同学们发挥主观能动性,真正自己动手写写程序,相信你一定会从中得到乐趣。
五、参考资料
★ Visual Basic 程序设计教程 及 Visual Basic 实验教程
★ VB6.0程序员指南
★ VB6.0控件参考手册
★ MSDN中文版,课程设计网站上提供的其它资料。
六、设计部分的评分标准(本题难度为d级,综合时要乘系数0.75)
基本完成了“基本要求” (项目符号为“■”的5项内容)60~80分
基本要求全部完成,且界面或功能有较明显的创新80~90分
原理有创新,且完成部分90~100分

[注:最后得分是根据本部分得分(占最大比例)以及课程设计期间纪律、设计报告书、答辩情况综合得出]
答案:
程序源代码 
  Option Explicit
  DefDbl A-Z
  Private Sub Form_Load()
  timer1.Interval = 100
  Width = 4000
  Height = 4000
  Left = Screen.Width \ 2 - 2000
  Top = (Screen.Height - Height) \ 2
  End Sub
  Private Sub Form_Resize()
  Dim i, Angle
  Static flag As Boolean
  If flag = False Then
    flag = True
  For i = 0 To 14
  ’画出表盘12个点和时、分、秒共15个LINE
    If i > 0 Then Load Line1(i)
    Line1(i).Visible = True
    Line1(i).BorderWidth = 5
    Line1(i).BorderColor = RGB(0, 128, 0) ’设置LINE的粗细和颜色
    Next i
   End If
  For i = 0 To 14
    Scale (-1, 1)-(1, -1)
    Angle = i * 2 * Atn(1) / 3
    Line1(i).X1 = 0.9 * Cos(Angle)
    Line1(i).Y1 = 0.9 * Sin(Angle)
    Line1(i).X2 = Cos(Angle)
    Line1(i).Y2 = Sin(Angle)
    Next i
   End Sub
  Private Sub timer1_Timer()
  Const HH = 0
  Const MH = 13
  Const SH = 14
  Dim Angle
  Static LS
  If Second(Now) = LS Then Exit Sub
  LS = Second(Now)
  Angle = 0.5236 * (15 - (Hour(Now) + Minute(Now) / 60))’设置时针
  Line1(HH).X1 = 0
  Line1(HH).Y1 = 0
  Line1(HH).X2 = 0.3 * Cos(Angle)
  Line1(HH).Y2 = 0.3 * Sin(Angle)
  Angle = 0.1047 * (75 - (Minute(Now) + Second(Now) / 60))’设置分针
  Line1(MH).X1 = 0
  Line1(MH).Y1 = 0
  Line1(MH).X2 = 0.7 * Cos(Angle)
  Line1(MH).Y2 = 0.7 * Sin(Angle)
  Angle = 0.5236 * (75 - Second(Now))
  ’设置秒针
  Line1(SH).X1 = 0
  Line1(SH).Y1 = 0
  Line1(SH).X2 = 0.8 * Cos(Angle)
  Line1(SH).Y2 = 0.8 * Sin(Angle)
  form1.Caption = Str(Now())
  '窗口显示精确的日期和数字化的时间
  End Sub

上一个:VB编程和C语言到底先学哪个比较好?
下一个:想学好VB编程需要先具备那些方面的电脑知识?

CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,