2015-11-20 141 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