vb基础 vb实例教程 api调用 控件使用 经验技巧 数据库操作 算法及技术 vb源码下载
  杀毒频道 | 短信频道 | 网络电视 | 论文中心 | 学上网 | 学软件 | 网页特效 | 电脑基础 | 返回首页  
  NCRE | 软考 | CET | 职称英语 | 司法考试 | 报关员 | 公务员 | CATTI | CPA考试  
  Html教程 | Css教程 | Xml教程 | Asp教程 | Asp.net | Php教程 | Jsp教程 | Linux教程 | QQ技巧  
Photoshop Illustrator ImageReady Maya教程 3D Max教程 Lightscape Coredraw教程 Authorware Autocad教程 Freehand教程
Access教程 Mysql教程 Sql server Oracle教程 Word教程 Excel教程 Powerpoint Frontpage Asp.net源码 Php源代码
Flash教程 Fireworks Dreamweaver C#教程 outlook教程 系统安装 vbscript教程 Javascript Jsp源代码 Asp源代码
您的位置:首页 >> vb教程 >> 正文

小叮当也战江湖—VB实例七日谈(四)
文章来源:电脑爱好者  作者:赵江

第四天、打字练习程序

  小叮当:我说小蘑菇呀,前几分钟之前还看你在编程序,怎么现在又开始玩游戏了?
  小蘑菇:都是昨天定时程序的作用呀,我现在是编程10分钟,游戏50分钟,这样劳逸结合,安排的不错吧。
  小叮当:有你这么安排的吗?整个就是在浪费时间!别玩游戏了,今天教你一些什么呢?
  小蘑菇:最好是寓教于乐的程序最好,比如一边玩游戏一边学习的。
  小叮当:给我出难题?那就教你一个寓教于乐的程序,来制作一个打字练习程序怎么样?
  小蘑菇:真的?也好,我先看看再说。
  小叮当:OK,还是老规矩,先创建一些控件再说。

  1、新建一个工程,将Form1的Caption属性修改为“打字练习”,同时将MaxButton和MinButton两个属性都设置为“False”,这样在程序运行之后可以取消右上角的最小化和最大化按钮。

  2、添加一个Frame控件,将它的Caption属性设置为空,并且将BorderStyle属性设置为“0-None”,然后在这个Frame中添加1个Label控件。

  3、在Form1窗口中添加4个Label控件,其中两个Label控件的Caption属性分别设置为“得分”和“剩余”,另外两个Label控件的BackStyle和BorderStyle属性均设置为“1-Opaque”和“1-Fixed”,这样将使得它们以3D立体形式显示出来,最后分别将这两个Label控件的Caption属性设置为“0”和“200”。

  4、在Frame区域中再添加一个Label控件。

  5、在Form1窗口中添加一个Command Button控件,将它的Caption属性更改为“开始”。

  6、添加三个Timer控件,并将它的interval属性分别设置为100、1000和100。


  所有控件添加设置完成后应该如图所示。

  小蘑菇:看起来好复杂的样子,代码编写部分是不是也很繁琐?
  小叮当:说难不难,说简单也不简单。我们的目的是通过嵌套在Frame中的两个Label控件来随机显示字母,然后通过键盘输入字母,由程序检验输入的字母和显示的字母是否一样,如果一样则说明正确,可以加分,否则说明输入错误。其实最关键要把握住编程的思想,这个说起来就话长了,还是看看具体的源代码怎么写吧。

  1、双击Form1窗口,并选择“通用”对象,输入下面的通用代码:

  Option Explicit
  Dim score As Integer  /定义变量
  Dim speed As Integer  /定义变量


  2、编写init子程序(用于设置第一个出现的字母)

  Sub init()
  Label1.Caption = Chr(Int(Rnd * 26) + 49)  /设定Label1随机显示的字母
  speed = Int(Rnd * 100 + 100)    /设定Label1随机显示字母的速度
  Label1.Left = Int(Rnd * Frame1.Width)  /设定Label1代表字母出现的左边位置
  Label1.Top = Frame1.Top    /设定Label1代表字母出现的顶部位置
  End Sub


  3、编写init1子程序(用于第二个出现的字母)

  Sub init1()
  Label6.Caption = Chr(Int(Rnd * 26) + 97)  /设定Label2随机显示的字母
  speed = Int(Rnd * 100 + 100)  /设定Label2随机显示字母的速度
  Label6.Left = Int(Rnd * Frame1.Width)  /设定Label2代表字母出现的左边位置
  Label6.Top = Frame1.Top    /设定Label2代表字母出现的顶部位置

  End Sub
  4、双击“开始”按钮并输入下列代码:

  Private Sub Command1_Click()
  init    /调用init子程序
  Timer1.Enabled = True    /激活Time1控件
  Timer2.Enabled = True    /激活Time2控件
  Command1.Visible = False
  Label5.Caption = 200
  Label4.Caption = 0
  End Sub


  5、双击Form1窗口,并选择“KeyPress”对象,输入下面的用代码:

  Private Sub Form_KeyPress(KeyAscii As Integer)
  If Chr(KeyAscii) = Label1.Caption Then    /校验键盘输入字符和Label1显示的字符
  init
  score = score + 1  /得分加1
  Label4.Caption = score
  End If
  If Chr(KeyAscii) = Label6.Caption Then    /校验键盘输入字符和Label2显示的字符
  init1
  score = score + 1
  Label4.Caption = score    /Label4控件显示得分情况
  End If
  End Sub


  6、双击Form1窗口,并选择“Load”对象,输入下面的用代码:

  Private Sub Form_Load()
  Randomize
  Timer1.Enabled = False    /Time1控件失效
  Timer2.Enabled = False    /Time2控件失效
  End Sub

  7、双击Timer1控件并输入下列代码:

  Private Sub Timer1_Timer()
  Label1.Top = Label1.Top + speed
  If Label1.Top > Frame1.Height Then  /第一个字母超出屏幕范围的时候调用init子程序重新出现一个字母
  init
  End If
  Label6.Top = Label6.Top + speed
  If Label6.Top > Frame1.Height Then  /第二个字母超出屏幕范围的时候调用init1子程序重新出现一个字母
  init1
  End If
  End Sub


  8、双击Timer2控件并输入下列代码:

  Private Sub Timer2_Timer()
  Label5.Caption = Val(Label5.Caption) - 1  /扣除剩余个数中的一个
  If Val(Label5.Caption) <= 0 Then
  Timer1.Enabled = False    /剩余个数小于等于0的时候结束练习
  Label1.Caption = ""    /不显示字母
  Label6.Caption = ""
  Select Case score
  Case Is <= 80
  MsgBox vbCrLf + "别放弃,再来一次!"  /显示信息框
  Case Is < 120
  MsgBox vbCrLf + "成绩不错,加油!"
  Case Is < 150
  MsgBox vbCrLf + "再努力做的更好一些!"
  Case Is > 180
  MsgBox vbCrLf + "好厉害!最高分呀!"
  End Select
  Command1.Visible = True
  Label4.Caption = 0
  Label5.Caption = 200
  Timer1.Enabled = False
  Timer2.Enabled = False
  End If
  End Sub 


  上面就是全部的源代码了,你可以运行试试看。

       小蘑菇:呵呵,想测试我的打字速度?那还不是小菜一碟?
  小叮当:嘿嘿,别说大话,先运行一下再说。怎么样,得了多少分?还小菜一碟吗?


  小蘑菇:速度太快了,要是慢一点的话,我肯定能够得高分!
  小叮当:慢一点?慢一点怎么能体现出你的高超技术呢?其实速度可以通过init和init1程序来控制,只要将数值更改的小一些就可以轻轻松松的得到高分了。
  小蘑菇:我想到了一个好办法,先把速度降低,然后自己得一个高分,截图保存之后拿给朋友看看,让他们也测试一下,但是给他们的程序就是速度非常快的,这样就可以大大的刺激他们一下了,哈哈哈哈。

  小叮当:整天就想着这些损人不利己的事情,有空还是真正练习一下自己的指法比较好,省得到时候出丑呢!

[返回]

编程语言 web开发 数据库 网络技术 操作系统 服务器 网页设计 图形设计 办公软件 常用软件 学电脑

Copyright© www.bianceng.cn Powered by 编程入门网 All Rights Reserved.
关于本站 | 版权声明 | 联系我们 | 友情链接 |
编程入门网 版权所有