请帮我用VB编一个交通灯,很简单的

设计一个交通灯程序。初始状态如图一,在5秒之后绿灯闪烁,然后绿灯变黄灯,2秒之后,黄灯变红灯,红灯则变为绿灯。如图二。然后也是5秒之后,绿灯闪烁,然后绿灯变黄灯,2秒之后... 设计一个交通灯程序。初始状态如图一,在5秒之后绿灯闪烁,然后绿灯变黄灯,2秒之后,黄灯变红灯,红灯则变为绿灯。如图二。然后也是5秒之后,绿灯闪烁,然后绿灯变黄灯,2秒之后,黄灯变红灯,红灯则变为绿灯,又回到初始状态。周而复始。、

图一就是这样,图二红绿灯交换下就行了。
展开
 我来答
zengwanbo
2011-12-29 · 超过30用户采纳过TA的回答
知道答主
回答量:80
采纳率:0%
帮助的人:44.1万
展开全部
用VB编写“红绿灯”程序

  平时我们在过马路的时候常常会看到指挥交通的红绿灯,它的权利可大了,要是我们可以控制它就好了,虽然在现实生活中办不到,就让我们编写一个虚拟的红绿灯程序,也来过过控制红绿灯的瘾。

  下面我们就开始编写吧。

  第一件事当然是新建一个工程,然后引入所需控件。在“红绿灯”程序中,我们需要用到的控件有:OptionButton(选项按钮)、Image(图像框)及Timer(时钟)控件。引入两个OptionButton,其中Option1的Caption设置为“红灯”,Option2的Caption设置为“绿灯”;Image1的Picture属性设置为红灯图片,选择一张红灯图片(读者可以自己创建一个红灯及绿灯图片)。设计好的程序界面如图1。

  好了,现在我们开始添加程序代码。

  我们要求程序能够通过我们所选择的是红灯或绿灯来显示相应的图像,实现的原理就是当我们单击“红灯”时显示红灯图片,单击“绿灯”时显示绿灯图片,只要用户准备好这两张图片后,要实现这个功能就非常的容易了。其具体的程序代码如下:

  双击Option1(即红灯)控件,添加如下代码:(黑体部分为系统自动生成的代码,下同)
  Private Sub Option1_Click()
  ′显示红灯图片
  On Error GoTo LoadErr ′当载入图片发生错误时跳到LoadErr处
  If Option1.Value=True Then ′当单击了Option1控件时
  Image1.Picture=LoadPicture(″C:\Windows\Desktop\red.jpg″) ′载入red.jpg图片,并显示在Image1控件中。
  End If
  LoadErr: ′设置捕获错误标签
  If Err.Number=53 Then ′当发生错误时
   MsgBox Err.Description,vbOKOnly+vbCritical,″错误″ ′显示错误信息
  End If
  End Sub

  上面一段代码中有一句“On Error Goto LoadErr”,该句是用作捕获程序错误的,当程序执行过程中发生了错误则跳到处理错误语句处执行。在这段代码中,如果在载入图片时发生了错误(通常是所要载入的文件不存在或路径错误)则跳到LoadErr处执行LoadErr后的程序代码。

  在VB中,所有的程序错误都是用数字表示的,如53则表示未找到文件的错误码,其实要知道哪个错误码表示哪种错误也并不难,当你在VB中运行这个程序时,如果出现了错误,会有一个错误的提示框,在该提示框中则有该错误的错误码。如果我们没有在该段程序中加入“On Error Goto LoadErr”语句及给出错误的文件名或文件路径的话,则会出现如图2所示的提示框。

  LoadPicture是载入图片的函数,其中第一个参数则是所要载入图片的完整路径,当然在本例中这个路径是固定了的,所要想使其路径随程序路径的变化而变化则需要使用App.Path值,可以写成Image1.Picture=LoadPicture(App.Path&″\red.jpg″),其中App.Path返回的值则是程序所在的路径,当然red.jpg必须放在程序所在的同一目录中。

  双击Option2(即绿灯)控件,添加如下代码:

  Private Sub Option2_Click()
  ′显示绿灯图片
  On Error GoTo LoadErr ′当载入图片发生错误时跳到LoadErr处
  If Option2.Value=True Then ′当单击了Option2控件时
  Image1.Picture=LoadPicture(″C:\Windows\Desktop\green.jpg″) ′载入green.jpg图片,并显示在Image1控件中。
  End If
  LoadErr: ′设置标签
  If Err.Number=53 Then ′当发生错误时
   MsgBox Err.Description,vbOKOnly+vbCritical,″错误″ ′显示错误信息
  End If
  End Sub

  OK!现在我们就可以单击F5键运行一下,看看我们自制的“红绿灯”程序吧。点击一下“绿灯”看看,红灯变成绿灯了吧?再试试红灯,怎样?现在我们就可以控制红绿灯了吧。

  如何才能让“红绿灯”自动更换呢?要实现这个功能也非常简单,只要加入Timer(时钟)控件,将Timer1的Interval设置为3000(即3秒)。其原理就是每隔3秒更换一种图片,这样便实现了自动更换。

  双击Timer1控件,添加如下代码:

  Private Sub Timer1_Timer()
  ′实现自动化
  If Option1.Value=True Then ′如果当前显示的是红灯
   Option2.Value=True ′使Option2被选中,执行Option2中的代码(即显示绿灯)
  Else
   Option1.Value=True ′使Option1被选中,执行Option1中的代码(即显示红灯)
  End If
  End Sub

  单击F5键运行一下,每隔3秒钟即换一种颜色显示。就这么几句代码就实现了自动化,简单吧?
广州市双宝电子科技有限公司_
2024-11-19 广告
广州市双宝电子科技股份有限公司,数10年来贯彻人、车、物三位一体的综合安全管理理念。帮助企业进行厂区人车智能管理、提高厂区工作效率。我们本身就有一条专注、专业的售后团队,持着「积极创新、勇于开拓、满足顾客、团队合作」的理念,力争打造为安全防... 点击进入详情页
本回答由广州市双宝电子科技有限公司_提供
VBasic菜鸟
2011-12-30 · TA获得超过145个赞
知道小有建树答主
回答量:75
采纳率:0%
帮助的人:57.9万
展开全部
在窗体上按上下左右的顺序画四个Shape控件,再放置一个Timer控件,然后在代码窗口粘贴如下代码,运行即可。

Dim a As Integer
Dim b As Boolean

Private Sub Form_Load()
Shape1.BackStyle = 1
Shape2.BackStyle = 1
Shape3.BackStyle = 1
Shape4.BackStyle = 1
Shape1.Shape = 3
Shape2.Shape = 3
Shape3.Shape = 3
Shape4.Shape = 3
Shape1.BackColor = vbRed
Shape2.BackColor = vbRed
Shape3.BackColor = vbGreen
Shape4.BackColor = vbGreen
a = 0
b = True
Timer1.Interval = 1000
End Sub

Private Sub Timer1_Timer()
a = a + 1
If a = 10 Then a = 0: b = Not b
If b = True Then
Shape1.BackColor = vbRed
Shape2.BackColor = vbRed
If a <= 5 Or a = 7 Then
Shape3.BackColor = vbGreen
Shape4.BackColor = vbGreen
ElseIf a = 6 Then
Shape3.BackColor = vbBlack
Shape4.BackColor = vbBlack
ElseIf a > 7 Then
Shape3.BackColor = vbYellow
Shape4.BackColor = vbYellow
End If
Else
Shape3.BackColor = vbRed
Shape4.BackColor = vbRed
If a <= 5 Or a = 7 Then
Shape1.BackColor = vbGreen
Shape2.BackColor = vbGreen
ElseIf a = 6 Then
Shape1.BackColor = vbBlack
Shape2.BackColor = vbBlack
ElseIf a > 7 Then
Shape1.BackColor = vbYellow
Shape2.BackColor = vbYellow
End If
End If
End Sub
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式