Подпроцедура VB.net с использованием параметров - PullRequest
1 голос
/ 13 марта 2009

Я пытаюсь создать подпроцедуру DisplayAverage, которая принимает 3 целых числа в качестве параметров. Эта процедура должна найти среднее из этих 3 чисел и отобразить числа вместе с их средним значением в списке. Я знаю, что я делаю что-то не так, я просто не могу понять, что.

Private Sub btnAverage_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAverage.Click
    Dim a As Integer = CInt(txtone.Text)
    Dim b As Integer = CInt(txtTwo.Text)
    Dim c As Integer = CInt(txtThree.Text)
    Dim average As Double
    average = (a + b + c) / 3

    lstOutput.Items.Add(average.ToString())





End Sub

Sub DisplayMyName()
    lstOutput.Items.Add("David Whitney")
End Sub

Sub DisplayAverage()
    Dim a As Integer = CInt(txtone.Text)
    Dim b As Integer = CInt(txtTwo.Text)
    Dim c As Integer = CInt(txtThree.Text)
    Dim average As Double
    average = (a + b + c) / 3

    lstOutput.Items.Add("The average of " & a & " and " _
            & b & " and " & c & " is " & average)


End Sub

Private Sub btnAve_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAve.Click
    lstOutput.Items.Clear()
    DisplayMyName()

    Dim a As Integer = CInt(txtone.Text)
    Dim b As Integer = CInt(txtTwo.Text)
    Dim c As Integer = CInt(txtThree.Text)
    Dim average As Double
    average = (a + b + c) / 3

    lstOutput.Items.Add(average.ToString())

    DisplayAverage()



End Sub

Конечный класс

Ответы [ 2 ]

1 голос
/ 13 марта 2009

У вас есть код для усреднения, записанный несколько раз. Все, что вам действительно нужно сделать, это:

Private Sub btnAve_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAve.Click
    lstOutput.Items.Clear()
    lstOutput.Items.Add("David Whitney")
    Dim a,b,c As Float
    Try
        a = Convert.ToSingle(txtone.Text)
        b = Convert.ToSingle(txtTwo.Text)
        c = Convert.ToSingle(txtThree.Text)
    Catch ex As FormatException
        MessageBox.Show("Please enter a valid number for a, b, and c.", "Error")
        Exit Sub
    End Try

    Dim average As Double = (a + b + c) / 3

    lstOutput.Items.Add("The average of " & a & " and " _
        & b & " and " & c & " is " & average)
End Sub
0 голосов
/ 13 марта 2009

Я согласен, Крис, что вам нужен код в одном месте, но у меня не было бы его в событии нажатия кнопки. Поместите это в его собственную рутину, названную средней или подобной.

И есть лучший способ усреднения чисел, если вы используете .NET Framework 3.5 ... LINQ. Вы можете найти основы здесь: http://tinyurl.com/bd2zcq

Преимущество метода LINQ состоит в том, что вы можете усреднить столько чисел, сколько пожелаете, поэтому алгоритм имеет большое повторное использование. Возможно, вспомогательный класс?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...