身体质量指数
VB视频教程前十课已经学习完了,今天索性亲自动手用VB写了一个小程序 - 身体质量指数,也叫体重指数,英文名叫Body mass index,简称BMI。灵感来自于我手机上同样一个计算BMI的程序,BMI公式已经在网上找好了,还找了一张BMI相关的图片。
我的设计步骤:
1.找到并运行VB(我用的是VB6.0中文企业版),首先新建一个“标准 EXE”,如果已经有做好的工程,可以在“现存”中打开。
2.在FORM1上添加两个TextBox控件,一个Picturebox控件,两个CommandButton,效果如下图。可以根据自己喜好布局。
3.更改控件的标题(Caption),更改完后添加一个"Image",在FORM1的任意位置添加都可以,加好后在“Image”属性窗口找到"Picture"选项,这里可以打开更改FORM的背景图片,然后添加两个Lable并且更改其Caption,我改的是“身高(CM)”“体重(KG)”。FORM最上端的“身体质量指数”“BMI测试”也是两个Lable控件,改下标题属性和字体就能达到下面截图效果。
4.上面的步骤做好后就可以编写代码了,编写代码这一步也可以在第二步的时候做。当然编写好代码后我们还要进行调试,尽量找出BUG。
BMI计算公式:BMI=体重/身高2
体重:单位:公斤 (Kg) 身高:单位:米 (M)
正常范围:18.5≤BMI < 24
体重过重:24≤BMI < 27
轻度肥胖:27≤BMI < 30
中度肥胖:30≤BMI < 35
重度肥胖:BMI≥35
下面是我写的代码,主要是加入了一些取值判断,比如不能为负数,不能小于或者大于莫数值。
Private Sub Command1_Click()
Dim x
If Text1.Text = "" Or Text2.Text = "" Then
Picture1.Print "请将数据填写完整"
Exit Sub
End If
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
If Text1.Text < 55 Or Text1.Text > 300 Then '解决当身高(TEXT1)不满足条件但
Picture1.Print vbCrLf; "身高取值范围:55-300" '体重满足(TEXT2)条件时点击计算
Command1.Enabled = False '显示结果的BUG.
Exit Sub '
End If '
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
x = Round(Val(Text2.Text / (Text1.Text / 100) ^ 2), 2)
Picture1.Cls
If 20 <= x And x <= 22 Then
Picture1.Print vbCrLf; "BMI值:" & x; vbCrLf; vbCrLf; "测试结果:最佳"
ElseIf 18.5 <= x And x < 20 Then
Picture1.Print vbCrLf; "BMI值:" & x; vbCrLf; vbCrLf; "测试结果:正常体重"
ElseIf 22 < x And x < 24 Then
Picture1.Print vbCrLf; "BMI值:" & x; vbCrLf; vbCrLf; "测试结果:正常体重"
ElseIf x < 18.5 Then
Picture1.Print vbCrLf; "BMI值:" & x; vbCrLf; vbCrLf; "测试结果:偏瘦"
ElseIf 24 <= x And x < 27 Then
Picture1.Print vbCrLf; "BMI值:" & x; vbCrLf; vbCrLf; "测试结果:体重超重"
ElseIf 27 <= x And x < 30 Then
Picture1.Print vbCrLf; "BMI值:" & x; vbCrLf; vbCrLf; "测试结果:轻度肥胖"
ElseIf 30 <= x And x < 35 Then
Picture1.Print vbCrLf; "BMI值:" & x; vbCrLf; vbCrLf; "测试结果:中度肥胖"
Else
Picture1.Print vbCrLf; "BMI值:" & x; vbCrLf; vbCrLf; "测试结果:重度肥胖"
End If
End Sub
Private Sub Command2_Click()
End
End Sub
Private Sub Text1_Change()
Picture1.Cls
If Text1.Text = "" Then
Picture1.Print vbCrLf; "身高取值不能为空"
Command1.Enabled = False
ElseIf Text1.Text < 55 Or Text1.Text > 300 Then
Picture1.Print vbCrLf; "身高取值范围:55-300"
Command1.Enabled = False
Else
Command1.Enabled = True
End If
End Sub
Private Sub Text2_Change()
Picture1.Cls
If Text2.Text = "" Then
Picture1.Print vbCrLf; "体重取值不能为空"
Command1.Enabled = False
ElseIf Text2.Text <= 0 Or Text2.Text > 600 Then
Picture1.Print vbCrLf; "体重取值范围:1-600"
Command1.Enabled = False
Else
Command1.Enabled = True
End If
End Sub
5.代码编写好后,就编译测试,看有无语法错误等。编译测试通过就可以生成EXE可执行文件。下图中,鼠标放在文本框显示身高取值范围:55-300这个效果是在文本框属性窗口中的ToolTipText里面设置或更改。
6.取值判断,身高取值范围我设置的是55-300厘米,世界上目前还没超过3米的人。
体重数值:这里我设置的范围是1-600公斤,目前世界上最重的人已经打破500公斤。
如果没有达到取值范围的要求,计算按钮将是灰色不可用的。
7.最终运行效果如下,欢迎大家指点。
(VB 身体质量指数BMI计算小程序)
虽然这样的小工具网上也有不少,但是用自己做出来的和使用别人做的感觉都不一样,小小的成就感吧,如果有同学需要可以给我留言。