2016-04-28 51 views
1

我有這個程序,我不能得到它輸出我的輸入數字以及正確的點數以及相應的年級。由於某種原因,我的輸入值不會顯示,我的Chr(149)將不能正確輸出

實施例用於輸出應爲:
高等級********* 94
低品位******* 75
範圍** 19
平均***** *** 85

用「*」代表點是等級10

但由於某種原因,我得到** 0.00對所有我的價值觀的分歧。

Private Sub btnStats_Click(sender As Object, e As EventArgs) Handles btnStats.Click 
    If DataOk() Then 
     Dim max, min, sum As Double 
     Dim dots As String = "" 


     lstOutput.Items.Clear() 
     lstOutput.Items.Add("Student Letter Grade Summary") 
     lstOutput.Items.Add("Course - " & txtCourse.Text) 
     lstOutput.Items.Add("Semester - " & txtSemester.Text) 
     DisplaySummary(dots, max, min, sum) 
     ProcessSummary(max, min, sum) 

    End If 

End Sub 
Sub ProcessSummary(ByRef max As Double, ByRef min As Double, ByRef sum As Double) 
    Dim grade As Integer 

    min = 0 
    max = 100 
    For i As Integer = 0 To lstGrade.Items.Count - 1 
     grade = CInt(lstGrade.Items(i)) 
     If grade > min Then 
      min = grade 
     End If 
     If grade < max Then 
      max = grade 
     End If 
     sum += grade 
    Next 
End Sub 
Sub DisplaySummary(ByRef dots As String, ByRef max As Double, ByRef min As Double, ByRef range As Double) 
    lstOutput.Items.Clear() 
    lstOutput.Items.Add("High grade " & " " & LineOfDots(CType(max/10, String)) & max.ToString("n2")) 
    lstOutput.Items.Add("Low grade " & " " & LineOfDots(CType(min/10, String)) & min.ToString("n2")) 
    lstOutput.Items.Add("Range " & " " & LineOfDots(CType(max - min/10, String)) & (max - min).ToString("n2")) 
    lstOutput.Items.Add("Average " & " " & LineOfDots(CType(max + min/10, String)) & ((max + min)/2).ToString("n2")) 

End Sub 
Function LineOfDots(ByVal dots As String) As String 
    For i As Integer = 1 To lstGrade.Items.Count - 1 
     LineOfDots &= Chr(149) 
    Next 

    Return LineOfDots 
End Function 
+0

嗯。如果你在'DisplaySummary()'之前調用'ProcessSummary()',它可能會有所作爲... ... –

+0

* facepalm *好的,修正了起訴沒有出現的成績,但正確的點數沒有出現。擁有兩套眼睛總是更好。不過謝謝你! – Kyle

回答

1

變化LineOfDots()接收的整數和使用String Constructor這樣的:

Function LineOfDots(ByVal dots As Integer) As String 
    Return New String(Chr(149), dots) 
End Function 

那麼這裏將是如何稱呼它一個新的例子:

lstOutput.Items.Add("High grade " & LineOfDots(max/10) & " " & max.ToString("n2")) 
+0

好的謝謝,讓一切順利運作,除了範圍和平均水平。它輸出似乎是和無限量的點 – Kyle

+0

固定它。非常感謝! – Kyle

相關問題