试图拉出一个大于200的数组中的所有数字并显示

时间:2016-04-30 07:20:42

标签: vb.net

早上好,我有一个愚蠢的问题,我已经在这20个小时了,我需要一点帮助 我有一个包含15个名字和数字的数组。我有平均值,我需要找出有多少条目超过200并显示在标签中。

我所拥有的不起作用:

Public Shared _intSizeOfArray As Integer = 14
Public Shared _strLastName(_intSizeOfArray) As String
'Private _strFirstName(_intSizeOfArray) As String
Public Shared _intCholesterolLevel(_intSizeOfArray) As Integer

Private Sub frmPatientCholesterollevels_Load(sender As Object, e As EventArgs) Handles MyBase.Load

    '   This Load event reads the patient text file And initializes an instance
    '   of the StreamReader object.

    '   Declare Variables.
    Dim objReader As IO.StreamReader
    Dim strPatients As String = "patients.txt"
    Dim intCount As Integer = 0
    Dim strFileError As String = "The file is not available. 
        Please restart the application when the file is availble"

    '   Verify the patient.txt file exists.
    If IO.File.Exists(strPatients) Then
        objReader = IO.File.OpenText(strPatients)

        '   Read the file line by line until the file is completed.
        Do While objReader.Peek <> -1
            _strLastName(intCount) = objReader.ReadLine()
            '_strFirstName(intCount) = objReader.ReadLine()
            _intCholesterolLevel(intCount) = Convert.ToInt32(objReader.ReadLine())
            intCount += 1
        Loop
        objReader.Close()
    Else
        MsgBox(strFileError, , "Error")
        Close()
    End If

End Sub

Private Sub btnLabResults_Click(sender As Object, e As EventArgs) Handles btnLabResults.Click

    '   This Click Event displays the number of patients who have an elevalted Cholesterol
    '   level over 200 and displays the information in the results form and copies the information
    '   to a USB Drive and a second text file located at e:\consult.txt.  It also displays the
    '   average cholesterol rate of the complete patient text file.

    '   Declare variables.
    Dim intPatientAverage As Double
    Dim intEvelatedLevel As Integer


    For intIAverage As Integer = 0 To _intCholesterolLevel.Length - 1
        intPatientAverage = intPatientAverage + _intCholesterolLevel(intIAverage)
    Next
    intPatientAverage = intPatientAverage / _intCholesterolLevel.Length
    For intIEvelated As Integer = 0 To _intCholesterolLevel.Length - 1
        intEvelatedLevel = intEvelatedLevel < 200(intIEvelated)
    Next




    'display the labels with the results

    lblAveragePatients.Text = "The Average Cholesterol Level for Today is: " &
        FormatNumber(intPatientAverage, 1) & "."
    lblElveatedLevel.Text = "The Number of Patients With a Cholesterol Level Above 200 is: " &
        FormatNumber(intEvelatedLevel, 1) & "."

End Sub

Thank you for any suggestions you can give me.  

罗恩牧师

1 个答案:

答案 0 :(得分:0)

我想说这个循环中的逻辑需要一些工作。 :)

For intIEvelated As Integer = 0 To _intCholesterolLevel.Length - 1
    intEvelatedLevel = intEvelatedLevel < 200(intIEvelated)
Next

试试这个。

    For intIEvelated As Integer = 0 To _intCholesterolLevel.Length - 1
        Dim patientCholesterolLevel As Integer = _intCholesterolLevel(intIEvelated)
        If patientCholesterolLevel > 200 Then
            intEvelatedLevel += 1
        End If
    Next

希望它应该有效。