小月设计了一个VB程序,用于对全班55名同学的体质调查分析,该程序能将55名同学的身高与体重录入到数据库中,之后通过如图所示的VB应用程序计算出这些同学的BMI指数,并按BMI指数从小到大进行排序,并显示这些学生的体质情况。 注:BMI指数的计算公式为:BMI=体重(千克)除以身高(米)的平方(kg/m2)。 BMI<18.5为偏瘦(表明营养不足);BMI=18.5~24.9为体重正常;BMI=25~29.9为超重;BMI>30为肥胖。
该VB应用程序的代码如下:
Dim stuBMI(1 To 55) As Single
Dim stuName(1 To 55) As String
Private Sub Command1_Click()
Dim k As Integer, i As Integer, j As Integer
Dim t1 As Single, t2 As String
Dim Results As String
For i = 1 To 54
For j = i + 1 To 55
If stuBMI(j) < stuBMI(k) then ②
Next j
If k<>I Then
t1 = stuBMI(i): stuBMI(i) = stuBMI(k): stuBMI(k) = t1
t2 = stuName(i): stuName(i) = stuName(k): stuName(k) = t2
End If
Next i
List1.AddItem "姓名" + vbTab + "BMI指数" + vbTab + "结果"
For i = 1 To 55
If stuBMI(i) < 18.5 Then
Results = "偏瘦"
ElseIf stuBMI(i) >= 18.5 And stuBMI(i) < 25 Then
Results = "正常"
ElseIf stuBMI(i) >= 25 And stuBMI(i) < 30 Then
Results = "超重"
Else
Results = "肥胖"
End If
List1.AddItem stuName(i) + vbTab + str(stuBMI(i)) + vbTab + Results
Next i
End Sub
Private Sub Form_load()
Dim conn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim strSQL As String
Dim i As Integer
conn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + App.Path + "\Student.accdb"
conn.Open
strSQL = "SELECT * FROM Student"
Set rs.ActiveConnection = conn
rs.Open strSQL
i = 0
Do While Not rs.EOF
i = i + 1
stuName(i) = rs.Fields("StuName")
stuBMI(i) = Round(rs.Fields("Weight") / rs.Fields("height") ^ 2, 1)
rs.MoveNext
Loop
rs.Close
conn.Close
Set rs = Nothing
Set conn = Nothing
End Sub