2015-11-20 116 views
-1

我是新的visual basic,我使用Visual Studio 2008快速版。VB.NET - 如何計算從文本框的值的平均值

我需要創建一個程序來計算等級/平均值。

我需要爲每個文本框重複if/then/else語句嗎?

請參考下面的鏈接圖片以供參考。

enter image description here

我不知道如何來平均這些值。

我需要創建許多重複的條件語句嗎?

+0

雨嗨 - 歡迎堆棧溢出(SO) - 請大家看看這個頁面的時候[問] - 這是非常有幫助的說明如何提出好的問題 - 通常SO是人誰也寫了一些代碼,仍然有問題 - 在谷歌搜索「等級計算器」有很多有用的結果 - 適應代碼,以滿足您的需求,如果您仍然有問題 - 發佈一個新的問題,包括代碼,你到目前爲止,你想要它做什麼,它實際上做了什麼,以及你得到的任何錯誤。 –

+1

無論您使用何種語言或如何獲取輸入,計算平均值都是一樣的。將這些值相加,除以值的數量,即可得到平均值。你有什麼特別的困難呢? –

回答

0

我會建議從幾個if語句開始,每個向變量添加1個點,如果該文本框具有值。對每個文本框重複該語句。

然後,加起來每個文本框的值。

最後,將每個文本框的值的總和除以包含值的文本框的數量,您可以使用前面的if/then語句來計算該值。

因此,在計算按鈕的點擊事件,它可能看起來像這樣(寫在vb.net):

Dim Count as Integer = 0 
If txtMath.text <> "" Then Count += 1 
If txtEnglish.text <> "" Then Count += 1 
If txtScience.text <> "" Then Count += 1 
If txtFilipino.text <> "" Then Count += 1 
If txtPE.text <> "" Then Count += 1 

Dim Sum as decimal = (txtmath.text + txtenglish.text + txtScience.text + txtFilipino.text + txtPE.text)/Count 
+2

添加文本不會添加數值,而是將它們連接起來,因此不會給出預期的結果(並且使用Option Strict On將不會編譯) – Sehnsucht

+0

對不起,我半睡着了。我不記得那些是否會隱式轉換...在這種情況下,顯然我們需要將Convert.toint32(...)放在每個文本值的周圍,以將它們轉換爲數值... – schizoid04

1

試試這個。

Dim tbList As TextBox() = {txtMath, txtEnglish, txtScience, txtFilipino, txtPE} 
      Dim Ave As Double = 0 

      For Each item In tbList 

       If item.Text = Nothing Then 

        item.Text = "0" 

       End If 

       Ave += Val(item.Text) 

      Next 

      Ave = Ave/tbList.Length 

      lb_Average.Text = Ave.ToString