感觉我写的代码比书讲的好多啦

分析:为了减少输入和增加试题内容的随机性,操作数和运算符通过随机函数Rnd产生,操作数的范围是1~10运算符1~4分别代表+、-、*、/。Rnd产生的数是在0~1之间的实数,为产生1~10的整数作为操作数,可通过Int(10*Rnd+1)表达式实现,运算符产生同理。

本例共需要除窗体外的5个控件,其中标签控件1个,文本框1个,命令按钮2个,图形框1个,有关控件设置:

默认控件名

设置的控件名

标题

文本

图形

说明

Name

Caption

Text

Picture

Label1

lblExp

空白

无定义

无定义

显示产生的题目

Text1

txtInput

无定义

空白

无定义

Command1

cmdOk

确定

无定义

无定义

每题结束

Command2

cmdMark

计分

无定义

无定义

最后记分

Picture1

Picture1

无定义

无定义

空白

显示题目和结果

由于本例有三个事件过程,为了便于事件过程中的数据共享,在事件过程前定义了窗体级变量:

Dim Num1 As Integer, Num2 As Integer       ‘存放两个操作数

Dim Sexp As String

Dim Result As Single                                                       ‘计算结果

Dim NOk As Integer, NError As Integer                     ‘统计计算正确与错误

本例通过三个事件过程:

(1)       通过产生随机数生成题目

Private Sub Form_Load()

Dim NOp As Integer, Op As String * 1                        ‘存放运算符

Num1 = Int(10 * Rnd + 1)                                               ‘产生1~10之间的操作数

Num2 = Int(10 * Rnd + 1)                                               ‘产生1~10之间的操作数

NOp = Int(4 * Rnd + 1)                                                    ‘产生1~4之间的运算符代码

Select Case NOp                         ‘将1~4之间的运算符代码转换成运算符,并进行四则运算

Case 1

Op = "+": Result = Num1 + Num2

Case 2

Op = "-": Result = Num1 - Num2

Case 3

Op = "*": Result = Num1 * Num2

Case 4

Op = "/": Result = Num1 / Num2

End Select

Sexp = Num1 & Op & Num2 & "="

lblExp = Sexp                                                            ‘显示生成题目

End Sub

(2)       在txtInput文本框中输入计算结果,单击“确定”按钮,在图形框显示正确与否

Private Sub cmdOk_Click()

If Val(txtInput) = Result Then                                                ‘输入的结果与计算机计算的结果相同

Picture1.Print Sexp; txtInput; Tab(10); "Y"                        ‘显示正确符号Y

NOk = NOk + 1                                                                            ‘累计计算正确数

Else

Picture1.Print Sexp; txtInput; Tab(10); "X"                        ‘显示计算错误符号 X

NError = NError + 1                                                                  ‘累计计算错误数

End If

txtInput = ""

Form_Load                                                                                  ‘下一个题目生成

End Sub

(3)       计算所得的成绩

Private Sub CmdMark_Click()

Picture1.Print "____________"

Picture1.Print "一共计算" & Int(NOk + NError) & "道题"

Picture1.Print "得分" & Int(NOk / (NOk + NError) * 100)

End Sub

Dim x%, y%, p%

Dim a(0 To 10) As Integer

Dim b(0 To 10) As Integer

Dim s(1 To 10) As Integer

Private Sub Form_Load()

For i = 1 To 10

Label1.Item(i).Caption = ""

Label2.Item(i).Caption = ""

Label3.Item(i).Caption = ""

Label4.Item(i).Caption = ""

Text1.Item(i).Visible = False

Command1.Visible = False

Label5.Item(i).Visible = False

Next

End Sub

Private Sub Command2_Click()

Randomize

For i = 1 To 10

s(i) = Int(4 * Rnd) + 1

x = Int(9 * Rnd) + 1

y = Int(9 * Rnd) + 1

Select Case s(i)

Case 1

a(i) = x

b(i) = y

Label2.Item(i).Caption = "+"

Case 2

x = Int(9 * Rnd) + 1

y = Int(9 * Rnd) + 1

a(i) = x

b(i) = y

If a(i) < b(i) Then

p = a(i)

a(i) = b(i)

b(i) = p

End If

Label2.Item(i).Caption = "-"

Case 3

a(i) = x

b(i) = y

Label2.Item(i).Caption = "*"

Case 4

a(i) = x

b(i) = y

If a(i) < b(i) Then

p = a(i)

a(i) = b(i)

b(i) = p

End If

If a(i) Mod b(i) <> 0 Then

i = i - 1

Else

Label2.Item(i).Caption = "/"

End If

End Select

Label1.Item(i).Caption = a(i)

Label3.Item(i).Caption = b(i)

Label4.Item(i).Caption = "="

Text1.Item(i).Text = ""

Text1.Item(i).Visible = True

Next

Command2.Visible = False

Command1.Visible = True

End Sub

Private Sub Command1_Click()

Dim u%

Dim q(1 To 10) As Integer

Dim r(1 To 10) As Integer

For i = 1 To 10

If Text1.Item(i).Text <> "" Then

'If CInt(Text1.Item(i).Text) = ture Then

r(i) = CInt(Text1.Item(i).Text)

Else

r(i) = 26

End If

Select Case s(i)

Case 1

q(i) = a(i) + b(i)

Case 2

q(i) = a(i) - b(i)

Case 3

q(i) = a(i) * b(i)

Case 4

q(i) = a(i) / b(i)

End Select

Label5.Item(i).Visible = True

If r(i) = q(i) Then

u = u + 10

Label5.Item(i).Caption = "正确"

Else

Label5.Item(i).Caption = "错误"

End If

Next

Label6.Visible = True

Label6.Caption = "您的成绩" + CStr(u) + "分"

End Sub

转载于:https://www.cnblogs.com/gengxiaochao/archive/2007/12/01/979095.html

晚上大龙哥带来了一本vb教程,由于好奇看了下相关推荐

  1. 国二vb计算机过的办法,国二计算机VB教程10.ppt

    国二计算机VB教程10 第10章 键盘与鼠标事件过程 本章内容: 10.1 KeyPress事件 10.2 KeyDown和KeyUp事件 10.3 鼠标事件 10.4 鼠标光标的形状 10.5 拖放 ...

  2. 【梅哥的Ring0湿润插入教程】第一课Windows内核/驱动编程概述及应用、商业驱动保护软件原理分析...

    [梅哥的Ring0湿润插入教程] Email:mlkui@163.com 转载请注明出处,谢绝喷子记者等,如引起各类不适请自觉滚J8蛋! 第一课Windows内核/驱动编程概述及应用. 商业驱动保护软 ...

  3. 【梅哥的Ring0湿润插入教程】【番外篇四】抓取盛大GPK驱动保护文件及简略逆向...

    [梅哥的Ring0湿润插入教程] Email:mlkui@163.com 转载请注明出处,谢绝喷子记者等,如引起各类不适请自觉滚J8蛋! 番外篇四:抓取盛大GPK驱动保护文件及简略逆向 [湿润前言] ...

  4. 【梅哥的Ring0湿润插入教程】【番外篇二】秒杀网游Lanucher直接开客户端

    [梅哥的Ring0湿润插入教程] Email:mlkui@163.com 转载请注明出处,谢绝喷子记者等,如引起各类不适请自觉滚J8蛋! 番外篇二:秒杀网游Lanucher直接开客户端 [湿润前言] ...

  5. vb教材笔记_金文老师vb教程笔记(完整版).doc

    金文老师vb教程笔记(完整版) 金文老师vb教程笔记 vasual basic 程序开发环境 第一章visual basic 的启动与退出 启动vb的四种方法: 使用"开始"菜单中 ...

  6. 【梅哥的Ring0湿润插入教程】第二课:Ring0实现读写SSDT

    [梅哥的Ring0湿润插入教程] Email:mlkui@163.com 转载请注明出处,谢绝喷子记者等,如引起各类不适请自觉滚J8蛋! 第二课:Ring0实现读写SSDT 随着驱动保护技术的逐步成熟 ...

  7. 【梅哥的Ring0湿润插入教程】重磅第三课:Ring0下的PE Loader及重加载内核秒杀一切内核级钩子(上篇)...

    [梅哥的Ring0湿润插入教程] Email:mlkui@163.com 转载请注明出处,谢绝喷子记者等,如引起各类不适请自觉滚J8蛋! 第三课:Ring0下PE Loader及重加载内核绕过一切内核 ...

  8. 两虎相争将带来优质的互联网搜索服务 --- 我看Google归来!

    两虎相争将带来优质的互联网搜索服务 --- 我看Google归来! 近期盛传Google重新进入中国市场,尤其是其互联网搜索业务.包括笔者在内的众多中国网民对此很是兴奋,大家很期待google重新归来 ...

  9. xp的服务器系统怎么安装win7系统教程,怎么在xp系统下安装win7双系统教程

    很多小伙伴跟着网上一些教程学习在xp系统下安装win7双系统,结果失败了,百思不得其解,不知道到底自己到底错在哪里,那么,怎么在xp系统下安装win7双系统?下面快启动小编就为大家分享详细的图文教程, ...

最新文章

  1. python 2.6.6安装MySQL-python模块
  2. Excel 2010单元格中设置表头
  3. Linux课程---11、Linux中软件安装和调试
  4. Oracle 表连接方式(内连接/外连接/自连接) 详解
  5. 阿里云IoT何云飞:智物Cloud AIoT Native 为何能让设备智能更快一步
  6. 关于MySQL字符集和校对集问题
  7. python爬虫记录时间_Python新手写爬虫全过程记录分析
  8. Chrome 开发工具 Workspace 使用
  9. MDK472a(Keil4)注册不成功问题
  10. 用计算机装扮校园图片,第4课装扮我们的校园——在场景中运用图形元件教学设计.doc...
  11. Eventbus 使用方法和原理分析
  12. awx文件解析,运用NCL处理风云卫星2E的AWX格式数据的总结
  13. Linux连接Internet
  14. access无法 dolby_Win10专业版装不了dolby该怎么办?Win10 dolby音效驱动安装教程
  15. C#学习 - 关于Single()
  16. 基于django的图书商城管理系统毕业设计源码110938
  17. 塞林格《麦田里的守望者》读后感
  18. 汉诺塔系列问题: 汉诺塔II、汉诺塔III、汉诺塔IV、汉诺塔V、汉诺塔VI、汉诺塔VII
  19. Media.Metrics简介
  20. 每个程序员都应当知道的编译器优化知识

热门文章

  1. Linux 启动流程学习
  2. 如何在Hadoop2上远程调试MapReduce
  3. 【A little interesting】LeetCode 437. Path Sum III
  4. RIP路由协议的理解
  5. Tensorflow 中添加正则化项
  6. 【luogu4145】 上帝造题的七分钟2 / 花神游历各国 [线段树]
  7. phpstrom常用配置
  8. 封装一个操作文件的函数
  9. 使用UML工具分析类图与类的关系-bouml(java和C++)
  10. 《How to debug PS4 game》